Portal dla miłośników motoryzacji

Jakie znaczenie miała maszyna Turinga? Maszyna Turinga: opis i przykłady maszyn Turinga

Kto, zapożycząc pomysł od Emila Posta, wpadł na niego, jak się uważa, w 1936 roku. Pomimo dość złożonej formalnej definicji, pomysł jest w zasadzie prosty. Aby to zrozumieć, przespacerujmy się po stronach Wikipedii.

Przede wszystkim trafiamy na stronę, która tak naprawdę nazywa się: „Maszyna Turinga”.

Maszyna Turinga

Maszyna Turinga (MT)- abstrakcja matematyczna przedstawiająca ogólną maszynę liczącą. Zostało zaproponowane przez Alana Turinga w 2010 roku w celu sformalizowania koncepcji algorytmu.

Maszyna Turinga jest rozwinięciem modelu maszyny skończonej i zgodnie z tezą Churcha-Turinga jest w stanie symulować (przy odpowiednim programie) dowolną maszynę, której działaniem jest przejście z jednego stanu dyskretnego do drugiego.

Maszyna Turinga zawiera nieskończoność w obu kierunkach wstążka, podzielony na komórki i urządzenie sterujące ze skończoną liczbą stanów.

Urządzenie sterujące może poruszać się po taśmie w lewo i w prawo, czytać i zapisywać w komórkach znaki jakiegoś skończonego alfabetu. Wyróżnia się wyjątkowo pusty symbol wypełniający wszystkie komórki taśmy, z wyjątkiem tych z nich (ostatnia liczba), na których zapisywane są dane wejściowe.

Urządzenie sterujące zawiera tabela przejściowa, który reprezentuje algorytm, wykonalny biorąc pod uwagę Maszynę Turinga. Każda reguła z tabeli instruuje maszynę, w zależności od aktualnego stanu i symbolu obserwowanego w bieżącej komórce, aby zapisała do tej komórki nowy symbol, przeszła do nowego stanu i przesunęła się o jedną komórkę w lewo lub w prawo. Niektóre stany Maszyny Turinga można oznaczyć jako terminal, a przejście do któregokolwiek z nich oznacza koniec pracy, zatrzymanie algorytmu.

Nazywa się maszyną Turinga deterministyczny, jeśli każda kombinacja stanu i symbolu wstążki w tabeli odpowiada co najwyżej jednej regule, oraz niedeterministyczny W przeciwnym razie.

Zatem maszyna Turinga jest matematyczną abstrakcją, spekulatywną konstrukcją ludzkiego umysłu: nie istnieje w naturze. Czy istnieje? Od razu przychodzi mi na myśl sposób działania żywej komórki. Przynajmniej dwa przykłady.

1. Do produkcji białek w komórce za pomocą złożonego enzymu – polimerazy RNA – odczytywana jest informacja z DNA, będącego rodzajem taśmy informacyjnej maszyny Turinga. Tutaj jednak komórki samej taśmy nie są przepisywane, ale poza tym proces jest bardzo podobny: polimeraza RNA osiada na DNA i porusza się wzdłuż niego w jednym kierunku, syntetyzując jednocześnie nić RNA – kwas nukleinowy podobny do DNA. Gotowy RNA po oddzieleniu od enzymu przenosi informację do organelli komórkowych, w których produkowane są białka.

2. Proces korygowania błędów w DNA jeszcze bardziej przypomina maszynę Turinga – jej naprawę. Tutaj polimeraza DNA wraz z innymi białkami porusza się wzdłuż taśmy DNA i odczytuje jej obie połowy (jak wiadomo, genomowy DNA to dwie splecione nici, które niosą tę samą informację). Jeśli informacje w połówkach nie są zgodne, polimeraza DNA pobiera jedną z nich jako próbkę i „poprawia” drugą.

Ta analogia nie jest nowa i na Wikipedii jest również opisana w artykule „Komputer molekularny”:

komputer molekularny

Obliczenia biomolekularne Lub komputery molekularne czy nawet DNA – lub RNA – informatyka – wszystkie te terminy pojawiły się na styku tak różnorodnych nauk, jak genetyka molekularna i technologia komputerowa.

Obliczenia biomolekularne to zbiorcza nazwa różnych technik związanych w taki czy inny sposób z DNA lub RNA. W obliczeniach DNA dane są reprezentowane nie w postaci zer i jedynek, ale w postaci struktury molekularnej zbudowanej na podstawie helisy DNA. Rolę oprogramowania do odczytu, kopiowania i zarządzania danymi pełnią specjalne enzymy.

Podstawą całego systemu przechowywania informacji biologicznej, a co za tym idzie komputerów DNA, jest zdolność atomów wodoru wchodzących w skład związków azotowych (adeniny, tyminy, cytozyny i guaniny) do wzajemnego przyciągania się w określonych warunkach, tworząc wiązania niewartościowe pary. Z drugiej strony substancje te mogą wiązać się walencyjnie z kombinacjami cząsteczki cukru (dezoksyrybozy) i fosforanu, tworząc tak zwane nukleotydy. Nukleotydy z kolei łatwo tworzą polimery o długości dziesiątek milionów zasad. W tych supercząsteczkach fosforan i dezoksyryboza pełnią rolę struktury nośnej (występują naprzemiennie w łańcuchu), a związki azotowe kodują informację.

Cząsteczka okazuje się kierunkowa: zaczyna się od grupy fosforanowej, a kończy na dezoksyrybozie. Długie łańcuchy DNA nazywane są niciami, krótkie nazywane są oligonukleotydami. Każdej cząsteczce DNA odpowiada inny DNA – tzw. dopełnienie Watsona-Cricka. Ma przeciwny kierunek niż pierwotna cząsteczka. Przyciąganie adeniny do tyminy i cytozyny do guaniny skutkuje powstaniem słynnej podwójnej helisy, która umożliwia podwojenie DNA podczas reprodukcji komórek. Problem podwajania rozwiązuje się za pomocą specjalnego białka enzymatycznego - polimerazy. Synteza rozpoczyna się dopiero wtedy, gdy do DNA przyłącza się fragment jej uzupełnienia.Właściwość ta jest aktywnie wykorzystywana w biologii molekularnej i informatyce molekularnej. W swej istocie DNA+polimeraza jest implementacją maszyny Turinga składającej się z dwóch taśm i programowalnego panelu sterowania. Konsola odczytuje dane z jednej taśmy, przetwarza je według jakiegoś algorytmu i zapisuje na innej taśmie. Polimeraza odczytuje także sekwencyjnie dane początkowe z jednej taśmy (DNA) i na jej podstawie tworzy taśmę jakby z wynikami obliczeń (dodatek Watsona-Cricka).

Nieco fantastyczne perspektywy tylko podsycają naszą ciekawość. Tymczasem nie odkryliśmy jeszcze wszystkiego na temat maszyny Turinga. Jak pamiętacie, w artykule na Wikipedii nazywano to rozszerzeniem skończonej maszyny stanów. Co to jest maszyna o skończonych stanach? Na szczęście jest do niego link. Przechodząc przez to, dowiadujemy się, że:

Maszyna stanu

Automaty abstrakcyjne tworzą podstawową klasę modeli dyskretnych, zarówno jako model sam w sobie, jak i jako podstawowy element maszyn Turinga, automatów z pamięcią przechowującą, maszyn o skończonych stanach i innych transformatorów informacji.

Z każdą definicją wkraczamy coraz bardziej w sferę czystej matematyki. Język staje się bardziej rygorystyczny, pojawiają się definicje formalne, składające się z symboli matematycznych. Jeśli pójdziemy dalej, dotrzemy do teorii algorytmów i teorii obliczalności. Po stronach Wikipedii można wędrować długo, jednak lepiej zaopatrzyć się w wodę i żywność na wypadek zawędrowania na pustynię aksjomatów i definicji, lub przynajmniej wiarygodnych linków do podręczników matematyki, na przykład http:/ /www.mccme.ru/free-books/, czy artykuły z magazynu Potential ;)

Mam nadzieję, że dzięki temu wyjaśnieniu stanie się dla ciebie trochę jaśniejsze, czym dokładnie jest maszyna Turinga?

Wróćmy do historii tego terminu.

Tak więc, jak już wspomnieliśmy, Alan Turing opowiedział światu o swojej maszynie w 1937 roku w tak zwanej Tezie Churcha-Turinga. Artykuł „Alan Turing” opowie nam o Alanie Turingu, pierwszym hakerze i pionierze informatyki, jak napisano na tablicy pamiątkowej w hotelu, w którym się urodził. Nie podamy tutaj pełnego tekstu artykułu, ale sam w sobie nie jest on zbyt szczegółowy.

Alana Turinga

Turinga, Alana Mathesona(23 czerwca 1912 - 7 czerwca 1954) - angielski matematyk, logik, kryptograf, wynalazca Maszyny Turinga.

Sam artykuł zawiera więcej na temat pracy Turinga: oprócz tekstu o maszynie Turinga, który podamy później, mówi się, że pracował on nad „problemem zamrożenia” (Zabawne, prawda? Nie było jeszcze komputerów , ani system Windows, ale wystąpił już problem z zawieszaniem się.); bohaterska historia o tym, jak Turing złamał kod Enigmy podczas II wojny światowej i w ten sposób ocalił Wielką Brytanię; fakt, że jest twórcą teorii sztucznej inteligencji, a także wzmianka o słynnym teście Turinga. Dziś test ten nie jest już tak często wykorzystywany jako przesłanka powieści science fiction, ale problem człowieka w maszynie zawsze pozostanie klasyką, podobnie jak powieści Izaaka Asimowa i Stanisława Lema.

Pomimo swojej staromodnej natury, test Turinga pojawił się w nieoczekiwany sposób we współczesnym świecie komunikacji internetowej. Na przykład możesz natknąć się na tekst dialogu pomiędzy dwoma użytkownikami ICQ, z których jeden jest „botem”, a zadaniem jest ustalenie, który z nich. Lub nieznany użytkownik, być może robot ICQ, może zapukać do Twoich drzwi. Poznajesz go? Studiując teorię, być może uda ci się zastosować test Turinga na czas i nie dać się oszukać. Możesz rozpocząć naukę od odpowiedniego artykułu w Wikipedii, a następnie skorzystać z linków podanych na końcu artykułu:

Próba Turinga

Próba Turinga- test zaproponowany przez Alana Turinga w 1950 roku w artykule „Maszyny komputerowe i inteligencja” mający na celu sprawdzenie, czy komputer jest inteligentny w ludzkim znaczeniu tego słowa.

Sędzia (człowiek) koresponduje w języku naturalnym z dwoma rozmówcami, z których jeden jest osobą, drugi jest komputerem. Jeśli sędzia nie jest w stanie wiarygodnie określić, kto jest kim, komputer zdał egzamin. Zakłada się, że każdy z rozmówców dąży do tego, aby być rozpoznawanym jako osoba. Aby badanie było proste i uniwersalne, korespondencja sprowadza się do wysyłania SMS-ów.

Korespondencja powinna odbywać się w kontrolowanych odstępach czasu, aby sędzia nie mógł wyciągać wniosków na podstawie szybkości udzielania odpowiedzi. (W czasach Turinga komputery reagowały wolniej niż ludzie. Teraz ta zasada jest konieczna, ponieważ reagują znacznie szybciej niż ludzie.)

Inspiracją dla testu była gra salonowa, w której goście próbowali odgadnąć płeć osoby znajdującej się w innym pokoju, zapisując pytania i czytając odpowiedzi. W oryginalnym sformułowaniu Turinga osoba musiała udawać osobę odmiennej płci, a test trwał 5 minut. Zasady te nie są obecnie uważane za konieczne i nie stanowią części specyfikacji testu.

Turing zaproponował test, który miał zastąpić bezsensowne pytanie „czy maszyna może myśleć?” na bardziej konkretny.

Turing przewidział, że komputery w końcu zdadzą jego test. Wierzył, że do 2000 roku komputer z 1 miliardem bitów pamięci (około 119 MB) będzie w stanie oszukać sędziów w 30% przypadków w 5-minutowym teście. Ta przepowiednia się nie sprawdziła. (To prawda, że ​​podczas pierwszego konkursu Loebnera program komputerowy „PC Therapist” na komputerze IBM PC 386 był w stanie wprowadzić w błąd 5 z 10 sędziów, ale jego wynik nie został uznany i w 1994 r. konkurs został utrudniony.) Turing przewidzieli również, że połączenie „myśląca maszyna” nie będzie uważane za oksymoron, a szkolenie komputerowe będzie odgrywać ważną rolę w tworzeniu potężnych komputerów (z czym zgadza się większość współczesnych badaczy).

Jak dotąd żaden program nie zbliżył się do zdania testu. Programy takie jak ELIZA czasami sprawiały, że ludzie wierzyli, że rozmawiają z daną osobą, jak miało to miejsce w nieformalnym eksperymencie o nazwie AOLiza. Ale takie „sukcesy” nie oznaczają zdania testu Turinga. Po pierwsze, osoba uczestnicząca w takich rozmowach nie miała podstaw sądzić, że rozmawia z programem, podczas gdy w prawdziwym teście Turinga osoba aktywnie próbuje ustalić, z kim rozmawia. Po drugie, udokumentowane przypadki zwykle mają miejsce na czatach, takich jak IRC, gdzie wiele rozmów jest fragmentarycznych i pozbawionych znaczenia. Po trzecie, wielu użytkowników IRC używa angielskiego jako drugiego lub trzeciego języka, a bezsensowną reakcję programu można prawdopodobnie przypisać barierze językowej. Po czwarte, wielu użytkowników nie wie nic o Elizie i podobnych programach i nie potrafi rozpoznać całkowicie nieludzkich błędów popełnianych przez te programy.

Co roku odbywa się konkurs programów mówiących, a najbardziej ludzki, zdaniem jurorów, zostaje nagrodzony Nagrodą Loebnera. Dodatkową nagrodą jest program, który zdaniem jurorów przejdzie test Turinga. Nagroda ta nie została jeszcze przyznana.

Najlepszy wynik w teście Turinga uzyskał program A.L.I.C.E. 3-krotne zwycięstwo w teście (w latach 2000, 2001 i 2004).

Spinki do mankietów

  • Turing A. M. Maszyny liczące i inteligencja. // W: Hofstader D., Dennett D. Oko umysłu. - Samara: Bakhrakh-M, 2003. - s. 47-59.
  • Książka w języku angielskim: Roger Penrose „Nowy umysł cesarza”.
  • Artykuł Alana Turinga:
    • Alan Turing, „Maszyny komputerowe i inteligencja”, Mind, tom. LIX, nie. 236, październik 1950, s. 236. 433-460.
    • Online:
  • Artykuł G. Oppy'ego i D. Dowe'a na temat testu Turinga z Stanford Encyclopedia of Philosophy (w języku angielskim)
  • „Test Turinga: 50 lat później” stanowi przegląd 50 lat pracy nad Testem Turinga z perspektywy roku 2000.

Wróćmy jeszcze raz do maszyny Turinga. Z fragmentu artykułu o Alanie Turingu wynika, że ​​koncepcja maszyny Turinga została po raz pierwszy zaproponowana w ramach tzw. Teza Churcha-Turinga:

Fragment artykułu z Wikipedii „Alan Turing”

Każda intuicyjnie obliczona funkcja jest częściowo obliczona lub, równoważnie, obliczona przez jakąś maszynę Turinga.

Alan Turing zaproponował (znaną jako teza Churcha-Turinga), że każdy algorytm w intuicyjnym znaczeniu tego słowa można przedstawić za pomocą równoważnej maszyny Turinga. Wyjaśnienie pojęcia obliczalności w oparciu o koncepcję maszyny Turinga (i innych równoważnych koncepcji) otworzyło możliwość rygorystycznego udowodnienia algorytmicznej nierozwiązywalności różnych problemów masowych (czyli problemów znalezienia ujednoliconej metody rozwiązywania określonej klasy problemy, których warunki mogą różnić się w pewnych granicach). Najprostszym przykładem algorytmicznie nierozwiązywalnego problemu masy jest tak zwany problem stosowalności algorytmu (zwany także problemem zatrzymania). Składa się ona z następujących elementów: należy znaleźć ogólną metodę, która pozwoliłaby dla dowolnej maszyny Turinga (określonej przez jej program) i dowolnego stanu początkowego taśmy tej maszyny określić, czy działanie maszyny będzie zakończyć się w skończonej liczbie etapów lub będzie trwać w nieskończoność.

W artykule zatytułowanym „The Church-Turing Thesis” piszą o nim tak:

Teza Churcha-Turinga

Teza Churcha-Turinga- fundamentalne stwierdzenie dla wielu dziedzin nauki, takich jak teoria obliczalności, informatyka, cybernetyka teoretyczna itp. Stwierdzenie to zostało sformułowane przez Alonzo Churcha i Alana Turinga w połowie lat trzydziestych XX wieku.

W swojej najbardziej ogólnej formie stwierdza, że ​​każda intuicyjnie obliczona funkcja jest częściowo obliczalna lub równoważnie obliczona przez jakąś maszynę Turinga.

Tezy Churcha-Turinga nie można rygorystycznie udowodnić ani obalić, ponieważ ustanawia ona „równość” pomiędzy ściśle sformalizowanym pojęciem funkcji częściowo obliczalnej a nieformalnym pojęciem „funkcji intuicyjnie obliczalnej”.

Teza z fizyki Churcha-Turinga czyta: Dowolną funkcję, którą można obliczyć za pomocą urządzenia fizycznego, można obliczyć za pomocą maszyny Turinga.

Z tego skrzyżowania można przejść na przykład w stronę teorii obliczalności. Możesz też spróbować dowiedzieć się, kim jest ten tajemniczy Kościół, z którym Alan Turing wysunął swoją tezę.

Uniwersalna maszyna Turinga

Uniwersalna maszyna Turinga zwaną maszyną Turinga, która może zastąpić dowolną maszynę Turinga. Otrzymawszy program i dane wejściowe jako dane wejściowe, oblicza odpowiedź, jaką maszyna Turinga, której program został podany jako dane wejściowe, obliczyłaby na podstawie danych wejściowych.

Definicja formalna

Program dowolnej deterministycznej maszyny Turinga można zapisać przy użyciu skończonego alfabetu składającego się z symboli stanów, nawiasów, strzałek itp.; oznaczmy ten alfabet maszynowy jako Σ 1 (\ Displaystyle \ Sigma _ (1)). Następnie uniwersalna maszyna Turinga U dla alfabetycznej klasy samochodów Σ 2 (\ Displaystyle \ Sigma _ (2)) I k taśmy wejściowe nazywane są maszyną Turinga k+1 taśma wejściowa i alfabet Σ 1 ∪ Σ 2 (\ Displaystyle \ Sigma _ (1) \ Puchar \ Sigma _ (2)) tak, że jeśli złożysz wniosek o pierwszy k nagrywa wartość wejściową i dalej k+1 jest zatem poprawnie napisanym kodem jakiejś maszyny Turinga U da taką samą odpowiedź, jaką uzyskałaby w przypadku tych danych wejściowych M 1 (\ displaystyle M_ (1)) lub będzie działać przez czas nieokreślony, jeśli M 1 (\ displaystyle M_ (1)) nie poprzestanie na tych danych.

Twierdzenie o uniwersalnej maszynie Turinga stwierdza, że ​​taka maszyna istnieje i modeluje inne maszyny o co najwyżej kwadratowym spowolnieniu (to znaczy, jeśli oryginalna maszyna wyprodukowała T kroków, to uniwersalny nie będzie już więcej produkował pkt 2). Dowód tego twierdzenia jest konstruktywny (zbudowanie takiej maszyny nie jest trudne, wystarczy ją dokładnie opisać). Twierdzenie zostało zaproponowane i udowodnione przez Turinga w latach 1936-37.

Implementacja oprogramowania w języku programowania Delphi jest dość prosta. Jedną z takich realizacji można znaleźć na stronie http://kleron.ucoz.ru/load/24-1-0-52. Istnieje możliwość pobrania i zapisania do pliku Excel.

Niedeterministyczna maszyna Turinga

Probabilistyczna maszyna Turinga

Uogólnienie deterministycznej maszyny Turinga, w której z dowolnego stanu i wartości na taśmie maszyna może wykonać jedno z kilku (możemy policzyć, bez utraty ogólności, dwa) możliwych przejść, a wybór dokonywany jest probabilistycznie (rzucając monetą).

Probabilistyczna maszyna Turinga jest podobna do niedeterministycznej maszyny Turinga, ale zamiast niedeterministycznego przejścia maszyna wybiera jedną z opcji z pewnym prawdopodobieństwem.

Istnieje również alternatywna definicja:

Probabilistyczna maszyna Turinga to deterministyczna maszyna Turinga, która dodatkowo posiada sprzętowe źródło losowych bitów, których dowolną liczbę może np. „zamówić” i „załadować” na osobną taśmę, a następnie wykorzystać w zwykły sposób w obliczeniach dla MT.

Klasa algorytmów, które kończą się w czasie wielomianowym na probabilistycznej maszynie Turinga i zwracają odpowiedź z błędem mniejszym niż 1/3, nazywana jest klasą BPP.

Do tej pory wygodnie było nam odwoływać się do doświadczenia programisty, mówiąc o algorytmach, programach, interpreterach, wykonywaniu krok po kroku itp. To pozwoliło nam zignorować szczegóły konstrukcji pewnych algorytmów pod pretekstem, że czytelnik łatwo je odtworzy (lub przynajmniej uwierzy, że nie każdy czytelnik w swoim życiu napisał interpretator Pascala w Pascalu).

Ale w niektórych przypadkach to nie wystarczy. Niech np. chcemy udowodnić nierozstrzygalność algorytmiczną jakiegoś problemu, którego definicja nie mówi nic o programach (w tym podrozdziale udowodnimy np. nierozstrzygalność problemu równości słów w półgrupach zdefiniowanych przez generatory i relacje). Zwykle robi się to w ten sposób. Pokazujemy, że problem zatrzymania sprowadza się do tego problemu. W tym celu modelujemy działanie dowolnego algorytmu pod kątem rozpatrywanego problemu (co to oznacza, będzie jasne z poniższego przykładu). Jednocześnie ważne jest dla nas, aby definicja algorytmu była jak najprostsza.

Więc nasz plan jest taki. Opiszemy w miarę prosto definiowalną klasę maszyn (można ją wybierać na różne sposoby; posłużymy się tzw. maszynami Turinga), następnie zadeklarujemy, że na takiej maszynie można obliczyć każdą funkcję obliczeniową, a następnie pokażemy, że kwestia zatrzymanie maszyny Turinga można sprowadzić do kwestii równości słów w półgrupie.

Inny powód, dla którego ważne są proste modele obliczeniowe (istnieje wiele różnych typów maszyn Turinga, maszyn adresowych itp.) wiąże się z teorią złożoności obliczeniowej, kiedy zaczynamy się interesować czas realizacji programy. Ale to pytanie wykracza poza klasyczną teorię algorytmów.

Maszyny Turinga: definicja

Maszyna Turinga ma nieskończoność w obu kierunkach taśma, podzielony na kwadraty ( komórki). Każda komórka może zawierać jakiś symbol z ustalonego (dla danej maszyny) skończonego zbioru tzw alfabet tej maszyny. Jeden ze znaków alfabetu jest podświetlony i nazywany jest „spacją”; zakłada się, że początkowo cała taśma jest pusta, czyli wypełniona spacjami.

Maszyna Turinga może zmienić zawartość taśmy za pomocą specjalnego czytnika i zapisu. głowy, który porusza się wzdłuż taśmy. W każdej chwili głowa znajduje się w jednej z cel. Maszyna Turinga otrzymuje od głowy informację o tym, jaki symbol widzi i w zależności od tego (oraz od swojego stanu wewnętrznego) decyduje, co zrobić, czyli jaki symbol zapisać w bieżącej komórce i gdzie się potem poruszać (po lewej, dobrze lub pozostań na miejscu). Jednocześnie zmienia się także stan wewnętrzny maszyny (zakładamy, że maszyna, nie licząc taśmy, posiada skończoną pamięć, czyli skończoną liczbę stanów wewnętrznych). Musimy także uzgodnić, gdzie zaczynamy i kiedy kończymy pracę.

Zatem, aby zdefiniować maszynę Turinga, należy określić następujące obiekty:

Tabela przejść jest ułożona w następujący sposób: dla każdej pary wskazana jest potrójna. Tutaj przesunięcie jest jedną z liczb -1 (w lewo), 0 (w miejscu) i 1 (w prawo). Zatem tablica przejść jest funkcją typu S x A -> S x A x (-1,0,1) zdefiniowaną na tych parach, w których stan nie jest ostateczny.

Pozostaje opisać zachowanie maszyny Turinga. W każdym momencie jest jakiś konfiguracja, na który składa się zawartość taśmy (formalnie rzecz biorąc, zawartość taśmy to dowolne odwzorowanie Z -> A), aktualne położenie głowicy (pewna liczba całkowita) oraz aktualny stan maszyny (element S). Przekształcenie konfiguracji w następną odbywa się według naturalnych praw: patrzymy w tabelę, co należy zrobić dla danego stanu i dla danego symbolu, czyli dowiadujemy się o nowym stanie maszyny, zmieniamy symbol na wskazany, a następnie przesuń głowicę w lewo, w prawo lub pozostaw ją na miejscu. Ponadto, jeśli nowy stan jest jednym z ostatecznych, praca maszyny kończy się. Pozostaje uzgodnić, w jaki sposób przekazujemy informacje na wejście maszyny i co jest uważane za wynik jej pracy. Załóżmy, że alfabet maszyny oprócz spacji zawiera znaki 0 ​​i 1 (i ewentualnie inne znaki). Dane wejściowe i wyjściowe maszyny będą skończonymi ciągami zer i jedynek (słowa binarne). Słowo wejściowe zapisuje się na pustej taśmie, głowicę maszyny umieszcza się w pierwszej komórce, maszynę doprowadza się do stanu początkowego i uruchamia. Jeśli maszyna się zatrzyma, wynikiem będzie słowo binarne, które można odczytać zaczynając od pozycji głowy i przesuwając się w prawo (aż pojawi się znak inny niż 0 i 1).

Zatem każda maszyna Turinga definiuje pewną funkcję częściową na słowach binarnych. Wywoływanie wszystkich takich funkcji jest rzeczą naturalną obliczalne na maszynach Turinga.

Maszyny Turinga: dyskusja

Oczywiście nasza definicja zawiera wiele szczegółowych szczegółów, które można zmienić. Na przykład taśma może być nieskończona tylko w jednym kierunku. Do samochodu możesz dać dwie wstążki. Możemy wziąć pod uwagę, że maszyna może albo napisać nową postać, albo się poruszyć, ale nie jedno i drugie. Możesz ograniczyć alfabet, biorąc pod uwagę, że musi mieć dokładnie 10 znaków. Możesz zażądać, aby na taśmie na końcu nie było nic poza wynikiem pracy (pozostałe komórki muszą być puste). Wszystkie powyższe i wiele innych zmian nie zmieniają klasy funkcji obliczalnych na maszynach Turinga. Oczywiście są też pewne nieszkodliwe zmiany. Na przykład, jeśli zabronisz samochodowi poruszać się w lewo, radykalnie zmieni to sytuację, w zasadzie taśma stanie się bezużyteczna, ponieważ powrót do starych nagrań nie będzie już możliwy.

Skąd wiesz, które zmiany są nieszkodliwe, a które nie? Najwyraźniej potrzebne jest tu choć trochę doświadczenia w praktycznym programowaniu na maszynach Turinga. Po tym można już sobie wyobrazić możliwości maszyny bez przepisywania całego programu, a kierując się jedynie przybliżonym opisem. Jako przykład opiszemy maszynę, która podwaja słowo wejściowe (tworzy słowo XX, jeśli na wejściu było słowo X).

Jeśli maszyna zobaczy spację (słowo wejściowe jest puste), przestaje działać. Jeżeli nie, zapamiętuje aktualny znak i stawia znak (w alfabecie oprócz znaków 0 i 1 pojawią się także ich „zaznaczone warianty” oraz ). Następnie przesuwa się w prawo do pustej komórki, po czym zapisuje tam kopię zapamiętanego symbolu. Następnie przesuwa się w lewo, aż zostanie zaznaczona; Zakopując się w znaku, cofa się i zapamiętuje kolejny znak, i tak dalej, aż przepisze całe słowo.

Mając pewne doświadczenie, za tymi wszystkimi zwrotami można dostrzec konkretne fragmenty programu dla maszyny Turinga. Przykładowo słowa „pamięta symbol i porusza się w prawo” oznaczają, że istnieją dwie grupy stanów, jedna dla sytuacji, gdy zostaje zapamiętane zero, druga, gdy zostaje zapamiętana jedynka, a w ramach każdej grupy ruch do prawo jest zaprogramowane na pierwszą pustą komórkę.

Mając trochę więcej doświadczenia, możesz zrozumieć, że w tym opisie jest błąd; nie ma mechanizmu zatrzymania, gdy kopiowane jest całe słowo, ponieważ kopie znaków nie różnią się od znaków oryginalnego słowa. Jasne jest również, jak poprawić błąd: musisz wpisać znaki specjalne i jako kopie, a na ostatnim etapie usunąć wszystkie znaki.

77 . Pokaż, że funkcję odwracającą, która odwraca słowo wstecz, można obliczyć na maszynie Turinga.

Kolejny przykład nieformalnego rozumowania: wyjaśnijmy, dlaczego nie można używać dodatkowych znaków innych niż 0, 1 i znak pusty. Niech będzie maszyna z dużym alfabetem złożonym z N znaków. Zbudujmy nową maszynę, która będzie symulować działanie starej, ale każda komórka starej będzie odpowiadać blokowi k komórek nowej. Rozmiar bloku (liczba k) zostanie ustalony w taki sposób, aby w bloku można było zakodować wszystkie znaki dużego alfabetu za pomocą zer i jedynek. Oryginalne znaki 0 ​​, 1 i spacja zostaną zakodowane jako 0, po których następują (k-1) puste znaki, 1, po którym następują (k-1) puste znaki i grupa k pustych znaków. Najpierw należy odsunąć litery słowa wejściowego o odległość k, co można zrobić bez dodatkowych symboli (po dotarciu do litery zewnętrznej odsuń ją, następnie po dotarciu do kolejnej przesuń ją, a skrajną jeden i tak dalej); musisz tylko zrozumieć, że koniec słowa można zidentyfikować jako pozycję, po której następuje więcej niż k pustych znaków. Oczywiście w tym procesie musimy przechowywać w pamięci pewną skończoną ilość informacji, więc jest to możliwe. Po tym można już krok po kroku symulować działanie oryginalnej maszyny i do tego wystarczy również skończona pamięć (czyli skończona liczba stanów), ponieważ tylko małe sąsiedztwo głowicy symulowanej maszyny dla nas ważne. Na koniec musimy ponownie skompresować wynik.

Na zakończenie dyskusji przedstawiamy obiecany powyżej argument na rzecz faktu, że każdą funkcję obliczalną można obliczyć na maszynie Turinga. Niech istnieje funkcja, którą osoba może obliczyć. Jednocześnie musi naturalnie używać ołówka i papieru, ponieważ ilość informacji ilość, jaką może przechowywać „w swoim umyśle”, jest ograniczona. Załóżmy, że pisze na osobnych kartkach papieru. Oprócz aktualnego arkusza, po prawej stronie znajduje się stos papierów, a po lewej stos; Możesz włożyć bieżący arkusz do dowolnego z nich po zakończeniu pracy z nim i wziąć następny z drugiego stosu. Mężczyzna ma ołówek i gumkę. Ponieważ bardzo małe litery nie są widoczne, liczba wyraźnie rozróżnialnych stanów arkusza jest skończona i możemy założyć, że w każdym momencie na arkuszu zapisana jest jedna litera z jakiegoś skończonego (choć bardzo dużego) alfabetu. Człowiek też ma skończoną pamięć, więc jego stan jest elementem jakiegoś skończonego zbioru. W tym wypadku można sporządzić jakąś tabelkę, w której będzie zapisane, jak zakończy się jego praca na kartce o danej treści, rozpoczęta w danym stanie (co będzie na kartce, w jakim stanie będzie dana osoba) i z której paczki zostanie pobrany następny arkusz). Jest teraz jasne, że ludzkie działania dokładnie odpowiadają działaniu maszyny Turinga z dużym (ale skończonym) alfabetem i dużą (ale skończoną) liczbą stanów wewnętrznych.

Maszyna Turinga (MT)- wykonawca abstrakcyjny (abstrakcyjna maszyna licząca). Zasugerowano Alana Turinga V 1936 sformalizować koncepcję algorytm.

Maszyna Turinga jest przedłużeniem maszyna skończona i wg Teza Churcha-Turinga, jest w stanie symulować wszystkie inne executory (poprzez określenie reguł przejścia), które w jakiś sposób realizują proces obliczeń krok po kroku, w którym każdy krok obliczeń jest dość elementarny.

Projekt maszyny Turinga

Maszyna Turinga jest nieskończona w obu kierunkach. wstążka(Możliwe są maszyny Turinga, które mają kilka nieskończonych taśm), podzielone na komórki i urządzenie sterujące, zdolny do bycia w jednym z zbiór stanów. Liczba możliwych stanów urządzenia sterującego jest skończona i precyzyjnie określona.

Urządzenie sterujące może poruszać się po taśmie w lewo i w prawo, czytać i zapisywać symbole jakiegoś skończonego alfabetu w komórkach taśmy. Wyróżnia się wyjątkowo pusty symbol wypełniający wszystkie komórki taśmy, z wyjątkiem tych z nich (ostatnia liczba), na których zapisywane są dane wejściowe.

Urządzenie sterujące działa zgodnie z zasady przejściowe, które reprezentują algorytm, wykonalny tę maszynę Turinga. Każda reguła przejścia instruuje maszynę, w zależności od aktualnego stanu i symbolu obserwowanego w bieżącej komórce, aby zapisała nowy symbol do tej komórki, przeszła do nowego stanu i przesunęła się o jedną komórkę w lewo lub w prawo. Niektóre stany maszyny Turinga można oznaczyć jako terminal, a przejście do któregokolwiek z nich oznacza koniec pracy, zatrzymanie algorytmu.

Nazywa się maszyną Turinga deterministyczny, jeśli każda kombinacja stanu i symbolu wstążki w tabeli odpowiada co najwyżej jednej regule. Jeśli istnieje para „symbol wstążki – stan”, dla której istnieją 2 lub więcej instrukcji, taką maszynę nazywa się maszyną Turinga niedeterministyczny .

Opis maszyny Turinga

Konkretną maszynę Turinga definiuje się poprzez wyszczególnienie elementów zbioru liter alfabetu A, zbioru stanów Q oraz zbioru reguł, według których maszyna działa. Mają one postać: q i a j →q i1 a j1 d k (jeżeli głowa znajduje się w stanie q i, a w obserwowanej komórce jest wpisana litera a j, to głowa przechodzi do stanu q i1, w komórce zostaje zapisane a j1 zamiast j głowa wykonuje ruch d k, który ma trzy możliwości: jedna komórka w lewo (L), jedna komórka w prawo (R), pozostań na miejscu (N)). Do każdej możliwej konfiguracji jest dokładnie jedna zasada. Nie ma żadnych zasad tylko dla stanu końcowego, w którym samochód się zatrzymuje. Dodatkowo należy określić stan końcowy i początkowy, początkową konfigurację na taśmie oraz położenie głowicy maszyny.

Przykład maszyny Turinga

Podajmy przykład MT do mnożenia liczb system liczb jednoargumentowych. Maszyna działa według następującego zestawu zasad:

Zestaw reguł

Zestaw reguł

q 0 × → q 1 × R

q 6 × → q 7 ×R

q 2 × → q 3 × L

q 3 1 → q 4 aR

q 4 × → q 4 ×R

Pomnóżmy, używając MT 3 przez 2 w systemie jednostek:

Protokół wskazuje stan początkowy i końcowy MT, wstępną konfigurację na taśmie oraz położenie głowicy maszyny (symbol podkreślony).

Kompletność Turinga

główny artykuł: Kompletność Turinga

Można powiedzieć, że maszyna Turinga to najprostsza maszyna licząca z pamięcią liniową, która zgodnie z zasadami formalnymi przetwarza dane wejściowe za pomocą sekwencji działania elementarne.

Elementarność działań polega na tym, że akcja zmienia tylko niewielki fragment danych w pamięci (w przypadku maszyny Turinga tylko jedną komórkę), a liczba możliwych akcji jest skończona. Pomimo prostoty maszyny Turinga, potrafi ona obliczyć wszystko to, co da się obliczyć na dowolnej innej maszynie wykonującej obliczenia za pomocą sekwencji elementarnych działań. Ta właściwość nazywa się kompletność.

Jednym z naturalnych sposobów udowodnienia, że ​​algorytmy obliczeniowe, które można zaimplementować na jednej maszynie, można zaimplementować na innej, jest symulacja pierwszej maszyny na drugiej.

Imitacja jest następująca. Na wejście drugiej maszyny podawany jest opis programu (zasad działania) pierwszej maszyny. D i dane wejściowe X, który powinien był dotrzeć na wejście pierwszej maszyny. Należy opisać taki program (zasady działania drugiej maszyny), aby w wyniku obliczeń wynik okazał się taki sam, jak to, co zwróciłaby pierwsza maszyna, gdyby otrzymała dane na wejściu X.

Jak powiedziano, na maszynie Turinga można symulować (poprzez określenie reguł przejścia) wszystkie inne executory, które w jakiś sposób realizują proces obliczeń krok po kroku, w którym każdy krok obliczeń jest dość elementarny.

Na maszynie Turinga możesz symulować Samochód Poczty, normalne algorytmy Markowa oraz dowolny program dla zwykłych komputerów, który konwertuje dane wejściowe na dane wyjściowe przy użyciu pewnego algorytmu. Z kolei maszynę Turinga można symulować za pomocą różnych abstrakcyjnych modułów wykonawczych. Nazywa się wykonawców, dla których jest to możliwe Turinga w komplecie(Turing ukończony).

Istnieją programy dla zwykłych komputerów, które symulują działanie maszyny Turinga. Należy jednak zauważyć, że ta symulacja jest niekompletna, ponieważ maszyna Turinga zawiera abstrakcyjną nieskończoną taśmę. Niekończącej się taśmy z danymi nie można w pełni zasymulować na komputerze ze skończoną pamięcią (całkowita pamięć komputera - RAM, dyski twarde, różne zewnętrzne nośniki danych, rejestry i pamięć podręczna procesora itp. - może być bardzo duża, ale zawsze jednak skończona ).

Warianty maszyny Turinga

Model maszyny Turinga można rozszerzyć. Można rozpatrywać maszyny Turinga z dowolną liczbą taśm i taśmy wielowymiarowe z różnymi ograniczeniami. Jednak wszystkie te maszyny są kompletne w technologii Turinga i są modelowane przez zwykłą maszynę Turinga.

Maszyna Turinga działająca na półnieskończonej taśmie

Jako przykład takich informacji rozważmy następujące twierdzenie: Dla każdej maszyny Turinga istnieje równoważna maszyna Turinga działająca na półnieskończonej taśmie.

Rozważmy dowód podany przez Yu.G. Karpova w książce „Teoria automatów”. Dowód tego twierdzenia jest konstruktywny, to znaczy podamy algorytm, za pomocą którego dla dowolnej maszyny Turinga można skonstruować równoważną maszynę Turinga o zadeklarowanej właściwości. Najpierw losowo numerujemy komórki taśmy roboczej MT, czyli ustalamy nowe miejsce informacji na taśmie:

Następnie przenumerowujemy komórki i zakładamy, że symbol „*” nie występuje w słowniku MT:

Na koniec zmieńmy maszynę Turinga podwajając liczbę jej stanów i zmieńmy przesunięcie głowicy odczytująco-zapisującej tak, aby w jednej grupie stanów działanie maszyny było równoważne jej działaniu w zacienionej strefie, a w inna grupa stanów, w których maszyna będzie działać tak, jak oryginalna maszyna działa w niezacienionym obszarze. Jeżeli podczas pracy w trybie MT pojawi się symbol „*”, oznacza to, że głowica odczytowo-zapisowa osiągnęła granicę strefy:

Początkowy stan nowej maszyny Turinga jest ustawiony w jednej lub drugiej strefie, w zależności od tego, gdzie na oryginalnej taśmie w pierwotnej konfiguracji znajdowała się głowica odczytowo-zapisująca. Oczywiście po lewej stronie znaczników ograniczających „*” taśma nie jest używana w równoważnej maszynie Turinga.

Postanowiłem wyjaśnić ludzkości zasadę obliczeń algorytmicznych. Faktem jest, że pan Turing był prorokiem ery komputerów, więc po prostu nie mógł powstrzymać się od powiedzenia ludziom, czym jest algorytm. Wymyślił więc abstrakcyjną maszynę, która została nazwana jego imieniem. To znaczy nazwisko. Ale uporządkujmy to...

Esencja w prostych słowach

Należy od razu zauważyć ważną kwestię: maszyna Turinga jest urządzeniem wyłącznie spekulacyjnym. Nic takiego nie istnieje w przyrodzie. Istnieją jednak modele komputerowe. Nawet te aktywne. Ale oni są niczym więcej niż modelami.

Dlaczego? Przedmiotem dyskusji jest bowiem niekończąca się taśma, której pełne fizyczne istnienie na tym etapie rozwoju nauki i technologii możliwe jest jedynie teoretycznie.

Taśma składa się z komórek, przypominających łańcuch ogniw. Komórki zawierają dane, na przykład znaki alfabetu. No cóż, albo zera i jedynki. Ogólnie rzecz biorąc, wszystko, co nadaje się do automatycznego przetwarzania. Odbywa się to za pomocą ruchomej części maszyny.

Jak to działa

Ruchomą częścią jest czytelnik i pisarz. Jakiś rodzaj urządzenia zdolnego do odczytania zawartości komórek, zapisania w nich czegoś własnego i, co najważniejsze, działania zgodnie z otrzymanymi wynikami.

Co więcej, maszyna może przesuwać tylko jedną komórkę na raz. Prawo, lewo, wszędzie tam, gdzie jest to konieczne do wykonania obliczeń. Tutaj coś dodałeś - musisz się poruszyć, aby coś zabrać. A następnie złóż go ponownie. I tak tak długo, jak to konieczne, aż do zakończenia zadania. Taśma jest nieskończona, jest wystarczająco dużo opcji dla każdej operacji.

W istocie Alan Turing właśnie chciał podkreślić, że każde obliczenie, niezależnie od stopnia jego złożoności, można przeprowadzić etapami, krok po kroku, rozbijając problem na elementarne składowe. To jest istota algorytmu.

Różne warianty

Początkujący cybernetycy spojrzeli na maszynę Turinga i zdali sobie sprawę, że nie ma na co narzekać. Rzeczywiście programy komputerowe należy budować w oparciu o algorytmy - wykonywanie instrukcji krok po kroku.

Jednocześnie sława Alana Turinga prześladowała wielu, a naśladowcy zaczęli, jak mówią, dostrzegać jej przebłyski. Zaczęli wymyślać wielowymiarowe maszyny Turinga, z wieloma taśmami, „pół-nieskończonymi” itp.

Postaramy się choć trochę rozjaśnić ten chaos i rozważyć realne opcje dla omawianego urządzenia.

  1. Niedeterministyczny- jest to maszyna Turinga, która działa na opisanej powyżej taśmie z komórkami zgodnie z sytuacją, która pojawia się na danym etapie obliczeń. Innymi słowy, tam gdzie musi się udać, tam właśnie pójdzie.
  2. Deterministyczny- taki, który zawiera szczegółowe instrukcje. Na przykład, jeśli w komórce, w której znajduje się maszyna wykonująca, wpisana jest litera A, to musisz przejść do sąsiedniej, z literą B, czy tego chcesz, czy nie.
  3. Pełny- potrafi obliczyć wszystko, co można obliczyć krok po kroku. Potrafi nawet symulować maszynę w maszynie, emulatorze, który opisuje algorytmami działanie innego podobnego urządzenia.
  4. uniwersalny- zdolny do wszystkiego, co może zrobić każdy wariant maszyny Turinga. Ogólnie rzecz biorąc, dowolny, nawet jeszcze nie wynaleziony. Oczywiście, że jest kompletny.

Praktyczne korzyści

Oczywiście algorytm jest bardziej złożoną koncepcją niż zwykłe przesuwanie wykonania krok po kroku w przestrzeni jednowymiarowej. W końcu możliwe jest rozgałęzianie, zapętlanie, cofanie się i używanie podprogramów.

Ponadto w praktyce nie da się symulować nieskończonej liczby komórek zawierających dane, choćby ze względu na ograniczone możliwości sprzętu komputerowego.

Istnieją jednak programy symulujące maszyny Turinga przeznaczone do nauczania studentów. Początkujących programistów zachęca się do opracowywania różnych algorytmów, na przykład wyszukiwania, zmiany, dodawania, przestawiania liter w komórkach.

W rezultacie zalety maszyny Turinga są dokładnie takie, jakie zamierzył jej twórca, prorok ery komputerów: wyraźna demonstracja istoty obliczeń algorytmicznych.

Poprzednie publikacje:

Ostatnia edycja: 2013-04-01 10:58:05

Tagi materiałowe: ,

symulator do nauki uniwersalnego wykonawcy

Co to jest?

Symulator Maszyny Turinga jest modelem szkoleniowym uniwersalnego executora (abstrakcyjnej maszyny obliczeniowej), zaproponowanym w 1936 roku przez A. Turinga w celu wyjaśnienia pojęcia algorytmu. Zgodnie z tezą Turinga dowolny algorytm można zapisać jako program na maszynę Turinga. Udowodniono, że maszyna Turinga jest równoważna w swoich możliwościach maszynie Posta i zwykłym algorytmom Markowa.

Maszyna Turinga składa się z wózka (głowicy czytającej i piszącej) oraz taśmy bez końca podzielonej na komórki. Każda komórka taśmy może zawierać znak z jakiegoś alfabetu A=(a 0 ,a 1 ,…,a N ) . Każdy alfabet zawiera znak spacji, który jest oznaczony jako 0 lub Λ. Podczas wprowadzania poleceń spację zastępuje się znakiem podkreślenia „_”.

Maszyna Turinga to automat sterowany za pomocą stołu. Wiersze tabeli odpowiadają znakom wybranego alfabetu A, a kolumny stanom maszyny Q=(q 0 ,q 1 ,…,q M ) . Maszyna Turinga w chwili rozpoczęcia swojej pracy znajduje się w stanie q1. Stan q 0 jest stanem końcowym: po jego osiągnięciu maszyna kończy pracę.

W każdej komórce tabeli, odpowiadającej pewnemu symbolowi a i i pewnemu stanowi q j, znajduje się polecenie składające się z trzech części:

  1. znak z alfabetu A;
  2. kierunek ruchu: > (w prawo),
  3. nowy stan maszyny

Aktualności

  1. Falina I.N. Temat „Maszyna Turinga” na szkolnym kursie informatyki (inf.1september.ru).
  2. Mayer R.V. Maszyny pocztowe i Turinga (komp-model.narod.ru).
  3. Pilshchikov V.N., Abramov V.G., Vylitok A.A., Goryachaya I.V. Maszyna Turinga i algorytmy Markowa. Rozwiązywanie problemów, M.: MSU, 2006.
  4. Bekman I.N. Informatyka. Wykład 7. Algorytmy (profbeckman.narod.ru)
  5. Sołowiew A. Matematyka dyskretna bez wzorów (lib.rus.ec)
  6. Erszow SS Elementy teorii algorytmów, Czelabińsk, Centrum Wydawnicze SUSU, 2009.
  7. Varpakhovsky F.L. Elementy teorii algorytmów, M: Prosveshchenie, 1970.
  8. Vereshchagin N.K., Shen A. Funkcje obliczeniowe, M: MTsNMO, 1999.

Co z tym zrobić?

Na górze programu znajduje się pole edytora, w którym w dowolnej formie można wprowadzić stan problemu.

Wstążka przesuwa się w lewo i w prawo za pomocą przycisków znajdujących się po jej lewej i prawej stronie. Klikając dwukrotnie komórkę wstążki (lub klikając prawym przyciskiem myszy), możesz zmienić jej zawartość.

Korzystanie z menu Wstążka możesz zapisać stan taśmy w buforze wewnętrznym i przywrócić taśmę z bufora.

W polu Alfabet Określone zostaną znaki wybranego alfabetu. Do wprowadzanych znaków automatycznie dodawana jest spacja.

Program wpisany jest w tabeli znajdującej się na dole okna. Pierwsza kolumna zawiera znaki alfabetu i jest wypełniana automatycznie. Pierwsza linia zawiera listę wszystkich możliwych stanów. Możesz dodawać i usuwać kolumny (stany) tabeli za pomocą przycisków znajdujących się nad tabelą.

Wpisując polecenie do komórki tabeli, należy najpierw wprowadzić nowy znak, następnie kierunek przejścia i numer stanu. Jeśli znak zostanie pominięty, domyślnie pozostaje on niezmieniony. Jeśli numer stanu zostanie pominięty, domyślnie stan maszyny nie ulegnie zmianie.

Zaraz na polu Komentarz Możesz dodawać dowolne komentarze do rozwiązania. Najczęściej wyjaśnia, co oznacza każdy stan maszyny Turinga.

Program może być wykonywany w sposób ciągły (F9) lub etapowo (F8). Polecenie, które zostanie teraz wykonane, jest podświetlone na zielonym tle. Szybkość wykonania można regulować za pomocą menu Prędkość.

Problemy z maszyną Turinga można zapisywać w plikach. Zapisywany jest stan zadania, alfabet, program, komentarze i stan początkowy taśmy. Kiedy zadanie jest ładowane z pliku i zapisywane w pliku, stan taśmy jest automatycznie buforowany.

Jeśli zauważysz błąd lub masz sugestie, uwagi, skargi, prośby lub oświadczenia, napisz.

Wymagania techniczne

Program działa pod systemami operacyjnymi danej linii Okna na każdym nowoczesnym komputerze.

Licencja

Program jest darmowy do użytku niekomercyjnego. Kod źródłowy programu nie jest rozpowszechniany.

W programie pojawia się” jak jest”, czyli autor nie ponosi żadnej odpowiedzialności za wszelkie możliwe skutki jego wykorzystania, w tym za straty moralne i materialne, awarie sprzętu, obrażenia fizyczne i psychiczne.

W przypadku zamieszczania programu na innych stronach internetowych wymagany jest link do oryginalnego źródła.

  1. 1) publikacja materiałów w jakiejkolwiek formie, w tym zamieszczanie materiałów w innych serwisach WWW;
  2. 2) rozpowszechnianie materiałów niekompletnych lub zmienionych;
  3. 3) włączenie materiałów do zbiorów na dowolnych nośnikach;
  4. 4) uzyskiwanie korzyści handlowych ze sprzedaży lub innego wykorzystania materiałów.

Pobranie materiałów oznacza akceptację warunków niniejszej umowy licencyjnej.

Pobierać

Po rozpakowaniu archiwum program jest sprawny i nie wymaga żadnych dodatkowych instalacji.