Czy w tym systemie przepisywania można uzyskać ciąg znaków?


11

Przepisanie systemu jest zestaw reguł w postaci . Jeśli zastosujemy tę regułę do łańcucha , zastąpimy dowolny podciąg in podciągiem i odwrotnie.A↔BwAwB

Biorąc pod uwagę początkowy ciąg możemy wyprowadzić w systemie według następujących reguł:AAABBBAAB

  • A↔BA
  • BABA↔AABB
  • AAA↔AB
  • BA↔AB

Czy jest na to ogólny algorytm?


Byłbym wdzięczny, gdybyś mógł dodać więcej tagów do tego pytania lub zmienić zestaw reguł, aby wyglądał fajniej.
— Daniil

1
@JD Myślę, że ogólnie tego problemu z przepisywaniem nie można rozwiązać, ponieważ można modelować maszynę Turinga z takim systemem przepisywania i problemem pochodnym == problem z zatrzymaniem w TM
— Daniil

@JD ah, to ma sens, powinienem przeczytać więcej na ten temat, dzięki!
— Daniil

@Daniil i przyszli czytelnicy: nierozstrzygalnym problemem jest problem z korespondencją pocztową .
— jmad

Jest to zasadniczo idea algorytmu Markowa.
— vonbrand

Odpowiedzi:


7

Zauważ, że parzystość liczby nie zmienia się. Ponieważ jeden ciąg zawiera nieparzystą liczbę a drugi parzysty, nie są one osiągalne.AA

Wierzę ogólnie (w przypadku dowolnego zestawu reguł, a nie konkretnego przykładu), jest to prawdopodobnie nierozstrzygalny problem. Jeśli przekształcenia są jednokierunkowe (tj. Reguły postaci ), tak jest, na przykład patrz: Tag System .A→BA


1
Tak, IIRC, jest nierozstrzygalny, ponieważ możesz modelować bazę TM z określonym zestawem reguł przepisywania.
— Daniil
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.