-
Path: news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!n
peer01.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media
.com!postnews.google.com!y11g2000yqm.googlegroups.com!not-for-mail
From: Mariusz Marszałkowski <m...@g...com>
Newsgroups: pl.comp.programming
Subject: Algorytm do rozstrzygania problemu stopu dowolnej MT
Date: Thu, 19 Aug 2010 12:53:55 -0700 (PDT)
Organization: http://groups.google.com
Lines: 68
Message-ID: <7...@y...googlegroups.com>
NNTP-Posting-Host: 89.229.34.123
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
X-Trace: posting.google.com 1282247636 12493 127.0.0.1 (19 Aug 2010 19:53:56 GMT)
X-Complaints-To: g...@g...com
NNTP-Posting-Date: Thu, 19 Aug 2010 19:53:56 +0000 (UTC)
Complaints-To: g...@g...com
Injection-Info: y11g2000yqm.googlegroups.com; posting-host=89.229.34.123;
posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.8)
Gecko/20100722 Firefox/3.6.8,gzip(gfe)
Xref: news-archive.icm.edu.pl pl.comp.programming:186599
[ ukryj nagłówki ]Kilka tygodni temu pokazałem algorytm który dla
każdego automatu skończonego, a więc także dla
każdej maszyny turinga ze skończoną taśmą,
rozwiązuje problem stopu.
Istnieje wiele algorytmów które rozstrzygają problem
stopu na automacie skończonym, przypomnijmy
jeden algorytm:
1) Wpisujemy A <-- 0
2) Wpisujemy B <-- ilość stanów maszyny
3) Wykonujemy jedną instrukcję automatu skończonego
4) Jeśli automat osiągnął warunek stopu to:
a) TAK
b) zakończ
5) Wpisujemy A <-- A + 1
6) Jeśli A > B to:
a) NIE
b) zkończ
7) Wróć do 3
Dowód poprawności: W wyniku wykonania programu
na automacie skończonym zmienia się jego stan.
W automacie skończonym stan poprzedni determinuje
stan następny. Po wykonaniu większej ilości instrukcji
niż jest stanów, przynajmniej jeden stan pojawił się
dwa razy, a więc doszło do wiecznego zapętlenia.
Ciekawe czy dla każdej maszyny turinga z nieskończoną (jednostronnie
bądź obustronnie) taśmą także istnieje jeden algorytm,
który rozstrzyga czy maszyna zatrzyma się, czy zapętli
w nieskończoność? Program działa dla maszyn turinga które
mają dowolną ale ograniczoną ilość stanów i ilość wartości
w komórce:
Algorytm rozstrzygający problem stopu po każdym wykonaniu
instrukcji zapamiętuje w tablicy szóstkę:
(P_o,P_n,S_o,S_n,V_o,_V_n)
P_o - pozycja głowicy (względem poz. startowej) przed wykonaniem
instrukcji
P_n - pozycja głowicy po wykonaniu instrukcji
S_o - stan maszyny przed wykonaniem instrukcji
S_n - stan maszyny po wykonaniu instrukcji
V_o - wartość w komórce przed wykonaniem instrukcji
V_n - wartość w komórce po wykonaniu instrukcji
Mogą zdarzyć się 3 rzeczy:
1) Podczas symulowania instrukcji w tablicy mogą pojawić się dwie
identyczne permutacje szóstek obok siebie - oznacza to że
algorytm się pętli w nieskończoność.
2) Zakres komórek odwiedzanych przez głowicę poszerzył się
w lewo lub w prawo (tzn głowica ustawiła się na komórce pierwszy
raz), a istnieje zapamiętany identyczny ciąg względnych zmian przed
poprzednim poszerzeniem.
3) Został osiągnięty warunek stopu.
Ze skończoności ilości stanów w komórce i z skończoności ilości
stanów maszyny wynika, że maszyna albo trywialnie się zapętli, albo
zacznie trywialnie rozszerzać zakres zmienionych przez
siebie komórek.
Jeśli algorytm jest poprawny, to pozostał nierozstrzygnięty tylko
ostatni problem, czyli problem stopu maszyny z dowolnymi danymi.
Pozdrawiam
Następne wpisy z tego wątku
- 19.08.10 21:22 Maciej Sobczak
- 20.08.10 02:15 Mariusz Marszałkowski
- 20.08.10 04:56 Jacek Czerwinski
- 20.08.10 06:43 Marcin 'Qrczak' Kowalczyk
- 20.08.10 08:50 Segmentation Fault
- 20.08.10 13:08 bartekltg
- 20.08.10 19:50 Mariusz Marszałkowski
- 21.08.10 07:52 Marcin 'Qrczak' Kowalczyk
- 21.08.10 09:53 Segmentation Fault
- 21.08.10 11:10 bartekltg
- 21.08.10 14:40 Mariusz Marszałkowski
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-12-04 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2024-12-04 Czy policjantów należy ROZBROIĆ?
- 2024-12-03 Tymoteusz Sz.
- 2024-12-03 Re: Prezydent ułaskawia: Prezydent USA Biden (D) ułaskawia syna własnego
- 2024-12-03 Re: Tani dodatkowy sim do smartwacha
- 2024-12-03 Wróblewo => Analityk finansowy <=
- 2024-12-03 Praktyczny test GPS...
- 2024-12-02 Tak się sprzedają elektryczne woldzwageny ;-)
- 2024-12-02 Akumulator do Hyundai
- 2024-12-02 Olsztyn => Sales Specialist <=
- 2024-12-02 Poznań => Technical Artist <=
- 2024-12-02 Bieruń => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-02 Kraków => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2024-12-02 Chrzanów => Team Lead / Tribe Lead FrontEnd <=
- 2024-12-02 Białystok => Delphi Programmer <=