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.ABwAwB

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

  • ABA
  • BABAAABB
  • AAAAB
  • BAAB

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 .ABA


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.