home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / spezial / 21 / artikel.asc < prev    next >
Encoding:
Text File  |  1991-05-03  |  52.5 KB  |  1,189 lines

  1. Automaten und Sprachen der Informatik
  2.  
  3. von Burkhard R. Wittek
  4.  
  5. Komplexitätsstufen von Sprachen und Automaten zwischen Datenverarbei-
  6. tung und Künstlicher Intelligenz - zwischen FastFood der Automaten-
  7. theorie und der Kochkunst á la Bocuse der Künstlichen Intelligenz
  8.  
  9. Der Ausdruck "Künstliche Intelligenz" oder englisch "artificial intel-
  10. ligence" ist inzwischen in aller Munde. Jedermann, der schon einmal
  11. einen Computer zu Gesicht bekommen hat, glaubt, darunter etwas zu ver-
  12. stehen oder gebraucht ihn, ohne einmal wirklich nachgefragt zu haben,
  13. was eigentlich damit gemeint ist. Weil die Beantwortung dieser Frage
  14. in Wirklichkeit aber gar nicht so leicht ist, macht man den Umweg und
  15. erklärt, was eine Maschine überhaupt tun kann.
  16.  
  17. Dieser Umweg über die Frage, was Maschinen überhaupt tun können, macht
  18. einen auf eine Schwierigkeit aufmerksam. Denn im Spektrum zwischen
  19. ganz einfachen Maschinen (zum Beispiel eine Kaffee- oder Pfeffermühle)
  20. über kompliziertere (zum Beispiel ein Auto oder ein Rasenmäher) bis
  21. hin zum großen Bruder der künstlichen Intelligenz, der natürlichen
  22. Intelligenz, ist es ein sehr weiter Weg. Und wer ihn geht, weiß nicht,
  23. wie und wann er am Ziel ankommen wird. Denn in vielen Fällen läßt es
  24. sich gar nicht oder nur sehr schwer angeben, worin die höhere Komple-
  25. xität von Stufe zu Stufe eigentlich besteht.
  26.  
  27. Ein Ausweg aus dieser Misere ist aber die Tatsache, daß man immer an-
  28. geben kann, wofür man eine bestimmte Maschine gebrauchen kann - sei es
  29. nun eine Kaffemühle, ein Auto oder unsere natürliche Intelligenz. Und
  30. in gleicher Weise ergeht es uns mit dem Computer. Auch bei ihm kann
  31. wenigstens gesagt werden, wofür wir ihn einsetzen können und welchen
  32. Nutzen er uns bringen kann, wenn wir auch nicht immer klar sehen, wie
  33. wir ihn diesem Nutzen zuführen sollen: wie wir also ein bestimmt es
  34. Programm schreiben müssen, daß der Computer so funktioniert, wie man
  35. es sich vorgestellt hat.
  36.  
  37. In diesem Sinne läßt sich die Maschine "Computer" in vier unterschied-
  38. liche Sprachstufen einteilen. Auf jeder Stufe kann dieser bestimmte
  39. Aufgaben erfüllen, bestimmte andere Aufgaben dagegen nicht. Auf der
  40. untersten Stufe sind es nur sehr elementare Aufgaben, auf der nächst
  41. höheren besitzt der Computer bereits eine gewisse Merkfähigkeit, d.h.
  42. er hat einen elementaren Speicher, wodurch die durch ihn zu erledigen-
  43. den Aufgaben schon komplizierter sein können.
  44.  
  45. Auf der höchsten Stufe ist der Computer dann universell einsetzbar,
  46. d.h. sein Speicher ist so groß, daß er jede ausreichend beschriebene
  47. Aufgabe erfüllen kann. Ein Computer mit einem universellen Sprachum-
  48. fang ist das Modell des heutigen Rechenautomaten, einer universellen
  49. Maschine also, die wiederum die Basis für die sogenannte Künstliche
  50. Intelligenz abgeben soll.
  51.  
  52. Um verstehen zu können, was den Hintergrund Künstlicher Intelli-
  53. genz ausmacht oder ausmachen soll, wird es hier um die Sprachstufen
  54. gehen, die zu solchen Maschinen führen, auf denen Künstliche Intelli-
  55. genz möglich sein soll.
  56.  
  57. Allen Sprachstufen, von denen es insgesamt vier gibt, ist ein in Tur-
  58. bo-Pascal geschriebener Interpreter gewidmet. Dieser soll jedem Inte-
  59. ressierten erlauben, jeweils eigene Programme zu diesen Automaten und
  60. Sprachstufen zu entwickeln und ablaufen zu lassen.
  61.  
  62.  
  63. Automatentheorie, Regeln und Zeichenketten
  64.  
  65. Die Beschäftigung mit Sprachen und Sprachumfängen sind Thema der Auto-
  66. matentheorie. Dort werden dann Computer einfach nur Automaten genannt.
  67. Man kann das Ganze dann auch so nennen: Die Automatentheorie beschäf-
  68. tigt sich mit den Möglichkeiten und Grenzen der automatischen Reali-
  69. sierbarkeit von natürlicher Intelligenz, wobei hier Intelligenz alles
  70. umfaßt, was Nachdenken erfordert: also das Erringen des Nobelpreises
  71. für Mathematik ebenso wie das Errechnen des maximal verfügbaren Bud-
  72. gets für den nächsten Schallplattenkauf. Hintergrund dieser automati-
  73. schen Realisierbarkeit von natürlicher Intelligenz sind die formalen
  74. Sprachen.
  75.  
  76. Formale Sprachen sind Mengen aus Regeln und Grundzeichen.
  77. Die Regeln besagen dabei, wie aus diesen verfügbaren Grundzeichen Zei-
  78. chenket ten gebildet werden können, oder sie können entscheiden, wel-
  79. che Zeichenketten zu einer bestimmten Sprache gehören und welche
  80. nicht. Oder nochmals anders gesagt: Die Regeln, die eine bestimmte
  81. Sprache ausmachen, können zur Analyse und zur Synthese von Zeichenket-
  82. ten verwendet werden. Bei der Analyse wird eine bestimmte Zeichenkette
  83. auf ihre Bestandteile reduziert. Sind die Bestandteile Elemente der
  84. Grundzeichen, dann gehört die Zeichenkette zu der Sprache, die durch
  85. die Regeln beschreibbar ist; sind sie nicht Elemente der Grundzei-
  86. chen, dann gehört die Zeichenkette nicht zu dieser Sprache. Bei der
  87. Synthese wird umgekehrt vorgegangen: Die Regeln bilden aus den Grund-
  88. zeichen Zeichenketten, und alle Zeichenketten, die aus den Grundzei-
  89. chen durch Anwendung der Regeln gebildet werden können, gehören zu
  90. dieser Sprache. Folglich, da die Kombinationsmöglichkeiten zwischen
  91. Grundzeichen und Regeln endlos zu sein scheinen, kann eine anscheinend
  92. nicht-abbrechende Menge von Wörtern einer bestimmten Sprache erzeugt
  93. werden. Je nach Komplexitätsstufe der Sprache, das heißt ihrer Regeln,
  94. ist also die Anzahl der erzeugbaren Wörter kleiner oder größer - bis
  95. hin zu universellen Sprachen, von denen man glaubt, daß in ihnen sogar
  96. natürliche Intelligenz höherer Stufe darstellbar sei.
  97.  
  98. Man kann eine solche Realisation von Sprachen auch Algorithmus nennen.
  99. Denn auch Algorithmen sind solche formalen Grammatiken, durch die Ein-
  100. gabedaten eindeutig Ausgabedaten zugeordnet werden. Entsprechen die
  101. Eingabedaten über Regeln (die Be
  102. fehle des Programms) den Grundzeichen, also den Zeichen, die vom zuge-
  103. hörigen Algorithmus verarbeitet werden können, dann kann die Folge der
  104. Eingabedaten als ein Wort der Sprache betrachtet werden, die durch den
  105. Algorithmus realisiert wird. Folglich stellen auch alle Algorithmen,
  106. die auf Computern abgelaufen sind oder jemals ablaufen werden,
  107. Sprachen dar, die durch eine bestimmte Zahl von Regeln und Grundzei-
  108. chen definiert sind.
  109.  
  110.  
  111. Korrespondenz zwischen Sprachstufen und Automat
  112.  
  113. Kommen wir nun aus dem Reich der künstlichen Intelligenzen zurück in
  114. die Realität maschineller Hausmannskost. Die spartanische Realität der
  115. Informatik besteht darin, daß wir es bei unseren Computern mit soge-
  116. nannten universellen Automaten zu tun haben. Dies besagt in einer Art
  117. intuitiver, also keineswegs bis ins Letzte gewissen, Überzeugung, daß
  118. jede Rechenvorschrift oder jedes Programm, das auf irgendeinem be-
  119. stimmten universellen Automaten ausführbar ist, auch auf jedem ander
  120. en universellen Automaten ausführbar sein muß. Da wir nicht alle Pro-
  121. gramme auf allen Computern ausprobieren können, um dieser Überzeugung
  122. ganz sicher sein zu können - so wie man auch nicht ausprobieren kann,
  123. ob alle Kochrezepte in allen Küchen realisierbar sind -, spricht man
  124. von einer nur intuitiven Gewißheit: das heißt einfach nur, daß bislang
  125. keine Ausnahme von dieser ungeschriebenen Regel bekannt geworden ist.
  126.  
  127. Jedoch gibt es unterhalb der Grenze dieser universellen Automaten sol-
  128. che Automaten, auf denen nur ganz bestimmte Programme ausführbar sind.
  129. Hier seien sie einfach der Reihe nach aufgezählt: Der berühmteste uni-
  130. verselle Automat ist die sogenannte Turing-Maschine. Unterhalb dieser
  131. Maschine gibt es folgende Automaten: der linear beschränkte Automat,
  132. der Keller-Automat und unter diesen der endliche Automat mit und der
  133. endliche Auto mat ohne Ausgabe. Diese Automaten und ihr Bezug zu den
  134. entsprechenden Spachen der Automatentheorie können anhand der soge-
  135. nannten Chomsky-Hierarchie dargestellt werden:
  136.  
  137. Chomsky-Typ  Sprachen-Typ                 Automaten-Typ
  138. -----------------------------------------------------------
  139.  Typ-0       allgemeine Sprache           Turing-Maschine
  140.              (rekursiv-aufzählbar)
  141.  Typ-1       Kontextsensitive
  142.              linear beschränkte Sprachen  Automat
  143.  Typ-2       Kontextfreie Sprachen        Kellerautomat
  144.  Typ-3       Reguläre Sprachen            endlicher Automat
  145.                                           mit/ohne Ausgabe
  146.  
  147. Wir werden nun jede dieser Sprachen und Maschinen von der einfachsten
  148. bis zur universellen Stufe betrachten. Dabei wird insbesondere auf die
  149. Struktur der auf diesen ablauffähigen Programme bzw. Sprachen und de-
  150. ren Grammatiken eingegangen.
  151.  
  152.  
  153. Sprach- und Grammatikformen der Automaten
  154.  
  155.  
  156.  I)  DIE SPRACHEN
  157.  
  158. In der Welt aller Kochrezepte und aller Küchen lassen sich unter-
  159. schiedliche Schwierigkeitsgrade unterscheiden. In der Welt der Spra-
  160. chen und Grammatiken ist das ähnlich: Es lassen sich insgesamt vier
  161. Sprachstufen unterscheiden. Mit wachsender Komplexität und Umfang sind
  162. das die regulären Sprachen, die kontextfreien Sprachen, die kontext-
  163. sensitiven Sprachen.und die unbeschränkt-allgemeinen Sprachen (d.h.
  164. die rekursiv-aufzählbaren). In der Automatentheorie wird gezeigt, daß
  165. in diesen Grammatiken von Stufe zu Stufe unterschiedliche Regelformen
  166. zur Anwendung kommen. Jeder dieser Stufen oder Sprachen und Regelfor-
  167. men entspricht dann genau ein Automat. Das sind dann mit wachsender
  168. Komplexität die schon genannten Automaten: der endliche Automat
  169. mit/ohne Ausgabe, der Kellerautomat, der linear beschränkte Automat
  170. und die Turing-Maschine.
  171.  
  172. Zum besseren Verständnis beginnen wir einfach mit dem Begriff der
  173. Regel und stellen dann die verschiedenen Regelformen bezüglich der
  174. unterschiedlichen Sprachstufen vor.
  175.  
  176. Eine Regel ist ganz allgemein eine bestimmte, für einen konkreten Fall
  177. festgelegte Handlungsanweisung. Sie verbindet zwei Aussagen miteinan-
  178. der unter dem Primat der Wenn-dann-Beziehung: "Wenn .x, dann y". Eine
  179. Regel ist damit eine Handlungsvorschrift, wie sie in Kochrezepten oder
  180. Computerprogrammen vorkommt. Es sind Handlungsanleitungen, die mehr
  181. oder weniger mechanisch ausgeführt werden sollen, also eine Sache ge-
  182. nau für Computer und manche Köche. Eine Regel sagt: Wenn das und das
  183. der Fall ist, dann tue dieses. Man könnte sie also auch mit einer if-
  184. oder case-Anweisung irgendeiner Programmiersprache identifizieren. Auf
  185. einer sehr primitiven Basis sind Regeln Anweisungen der Form:
  186.  
  187.           A -> B.
  188.  
  189. Diese Regel sagt aus: "Wenn A, dann B" bzw. "Aus A folgt B" bzw. "Wer
  190. A hat, der hat auch B" bzw. "Aus A kann man B ableiten" usw.
  191. Es ist also einfach wichtig zu wissen, was gemeint ist, wenn man von
  192. Regeln spricht; und daß es sich dabei auch um Handlungsanweisungen
  193. handeln kann, wie sie in Computerprogrammen oder Kochbüchern vorkom-
  194. men.
  195.  
  196.  
  197. Reguläre Sprachen
  198.  
  199. Die regulären Sprachen sind für Maschinen mechanische Hausmannskost.
  200. Es ist die elementarste Stufe der Sprachen überhaupt, die von Compu-
  201. tern verarbeitet werden. Sie verfügen nur über rechts- und linksrekur-
  202. sive Regeln (genauer: rechts- und linkslineare Regeln). Rechts- und
  203. linksrekursive bzw. -lineare Regeln besitzen folgende Form:
  204.  
  205. rechtsrekursive Regel:       A ->  aA
  206. linksrekursive Regel:        B ->  Bb
  207.  
  208. Bei diesen Regeln kommt es nicht auf die Groß- und Kleinbuchstaben
  209. selbst an und nicht darauf wie sie heißen, sondern wichtig ist nur,
  210. daß auf der linken Regelseite nur Großbuchstaben und daß auf der rech-
  211. ten Seite der ersten Regel ein Klein buchstabe links vom Großbuchsta-
  212. ben (rechtslinear) bzw. auf der rechten Seite der zweiten ein Klein-
  213. buchstabe rechts vom Großbuchstaben (linkslinear) stehen muß.
  214. Bei den Großbuchstaben handelt es sich um sogenannte nicht-terminale
  215. Symbole (bzw. Variable), also um die Elemente VN = {A,B}; bei den
  216. Kleinbuchstaben um sogenannte nicht-terminale Symbole (bzw. Konstan-
  217. te), also um die Elemente VT = {a,b}.
  218.  
  219. Nicht-terminale und terminale Symbole unterscheiden sich darin, daß
  220. die ersteren so lange durcheinander ersetzt werden müssen, bis die
  221. entstehende Zeichenfolge nur noch aus terminalen Symbolen besteht.
  222. Mithilfe der obigen beiden Regelformen sieht das folgendermaßen aus:
  223.  
  224. Man verfügt über eine Anzahl von Regeln, zum Beispiel der folgenden
  225. Art:
  226.  
  227.    A -> a  B -> b A -> Aa  B -> Ab  S -> Ba
  228.  
  229. Mithilfe dieses Regelapparates P lassen sich folgende Zeichenketten
  230. erzeugen oder analysieren:
  231.  
  232.   S => Ba => Aba => Aaba => Aaaba => aaaba
  233.   aaaaba => Aaaaba => Aaaba => Aaba => Aba => Ba => S
  234.  
  235. Im ersten Fall wurde ausgehend vom Start-Symbol S durch schrittweise
  236. Regel-Anwendung eine Zeichenfolge erzeugt; im zweiten Fall wurde eine
  237. beliebige Zeichenfolge durch Anwendung des Regelapparates bis auf das
  238. Start-Symbol S reduziert. Im er sten Fall handelt es sich daher um
  239. eine Synthese (Generierung), im zweiten um eine Analyse von Zeichen-
  240. folgen. Kann im Laufe einer Analyse einer Zeichenfolge durch keine der
  241. möglichen Regel-Anwendungen das Start-Symbol S erreicht werden, so
  242. können genau zwei Fälle vorliegen:
  243.  
  244. Erstens kann es sein, daß der vorliegende konkrete Regelapparat P
  245. nicht in der Lage ist, diese Zeichenfolge zu analysieren; dann muß ein
  246. anderer Regelapparat P' aus rechts- und linksrekursiven Regeln gefun-
  247. den werden, der diese Aufgabe erledigt.
  248. Zweitens besteht aber auch die Möglichkeit, daß eine Zeichenfolge vor-
  249. liegt, die durch keinen möglichen Regelapparat von links- und rechts-
  250. rekursiven Regeln analysiert werden kann. In diesem Fall ist der Be-
  251. reich von Wörtern und Sprachen, der durch links- und rechtsrekursive
  252. Regeln erfaßt werden kann, überschritten.
  253.  
  254. Damit haben die regulären Sprachen, die auf der Basis von links- und
  255. rechtsrekursiven Regeln darstellbar sind, nur einen begrenzten und
  256. endlichen Umfang. Eine dieser regulären Sprachen kann jeweils durch
  257. einen solchen Regelapparat P beschrieben werden. Für die Veranschauli-
  258. chung dieser regulären Sprachen reichen die sogenannten endlichen Au-
  259. tomaten A mit bzw. ohne Ausgabe vollkommen aus. Man kann dafür auch
  260. sagen: L(G) = L(A), das heißt: Die Sprache L über G ist gleich der
  261. Sprache L über A. Oder: Die durch eine Grammatik der Form
  262.  
  263.   G = [VT, VN, P, S]
  264.  
  265. symbolisierte Sprache ist gleich der Sprache, die aufgrund derselben
  266. Regeln durch einen Automaten A mit bzw. ohne Ausgabe überprüft bzw.
  267. erzeugt werden kann. Eine solche Grammatik ist folglich ein Quatrupel
  268. der Form G = [VT, VN, P, S] und besteht aus der Menge der terminalen
  269. Symbole VT, der Menge der nicht-terminalen Symbole VN, dem Regelappa-
  270. rat P und dem Start-Symbol S.
  271.  
  272.  
  273. Grenzen der regulären Sprachen und Sprachumfang der endlichen Automa-
  274. ten mit bzw. ohne Ausgabe
  275.  
  276. So wie bestimmte Kochrezepte in bestimmten, schlecht ausgestatteten
  277. Küchen in keiner Weise Anleitung zur Herstellung einer leckeren Mahl-
  278. zeit sein können, gibt es auch bestimmte formale Sprachen, die auf der
  279. Basis von links- und rechtsrekursiven Regeln nicht dargestellt werden
  280. können. Es sind Sprachen höherer Komplexität. Die Grenzen der regulä-
  281. ren Sprachen sind aber zugleich die Grenzen des endlichen Automaten
  282. mit bzw. ohne Ausgabe. Denn, man erinnere sich, es gilt ja: L(G) =
  283. L(A).
  284.  
  285. Deshalb soll hier nun eine solche Sprache angegeben werden, die über
  286. die regulären Sprachen und den Sprachumfang dieser endlichen Automaten
  287. hinausgeht. Eine solche Sprache ist zum Beispiel die Sprache mit der
  288. Form:
  289.  
  290.   L(G) = {x|x=anbn, n E N}
  291.  
  292. über dem Alphabet E = {a, b}. Worte dieser Sprache sind Zeichenfolgen,
  293. die stets über dieselbe Anzahl von a- und b-Elementen verfügen: ab,
  294. aabb, aaabbb, usw. Um die Worte dieser Sprache L(G) = {x|x=anbn, n E
  295. N} erzeugen bzw. analysieren zu können, müßte dieser Automat in der
  296. Lage sein, sich die Anzahl der a-Elemente zu merken, um sie anschlie-
  297. ßend auf die b-Elemente zu übertragen. Diese Aufgabe leitet zu den
  298. kontextfreien Sprachen und dem zugehörigen Kellerautomat über.
  299.  
  300.  
  301. Kontextfreie Sprachen
  302.  
  303. Die kontextfreien Sprachen verfügen nicht nur über links- und rechts-
  304. rekursive Regeln (genauer: links- und rechtslineare Regeln), sondern
  305. zusätzlich über die zentralrekursive Regel. Damit können in kontext-
  306. freien Grammatiken insgesamt drei Re gelformen auftreten:
  307.  
  308. linksrekursive Regel:      A -> A a
  309. rechtsrekursive Regel:     A -> a A
  310. zentralrekursive Regel:    A -> a A b
  311.  
  312. Auch hier kommt es nicht auf die Bezeichnung von Klein- und Großbuch-
  313. staben an, sondern darauf, daß links nur ein Großbuchstabe und niemals
  314. Kleinbuchstaben stehen dürfen und rechts die Verteilung von Kleinbuch-
  315. staben wie eben angegeben erfolgen kann; genau genommen darf aber
  316. rechts der Regeln eine beliebige Folge von terminalen und nicht-termi-
  317. nalen Symbolen stehen.
  318.  
  319. Mit Hilfe dieser drei Regelformen läßt sich für die Sprache
  320.  
  321.   L(G) = {x|x=anbn, n E N}
  322.  
  323. eine Regelbeschreibung und damit eine Grammatik finden. Der zu dieser
  324. Sprache gehörige Regelapparat P besitzt nur zwei Regeln, die
  325. folgendermaßen lauten:
  326.  
  327.       A -> ab      A -> aAb
  328.  
  329. Die Wörter dieser Sprache werden also zentral von der Mitte her gebil-
  330. det oder so analysiert, daß zunächst von der Mitte ausgehend stets ein
  331. a- und ein b-Element entfernt wird. Durch die Entfernung immer nur
  332. eines a- und eines b-Elements wird sichergestellt, daß nur solche
  333. Zeichenfolgen als Wörter dieser Sprache analysiert werden können, die
  334. aus gleich vielen a- und b-Elementen bestehen:
  335.  
  336.   aaaabbbb  ->  aaabbb  ->  aabb  ->  ab  ->  A
  337.   A ->  ab  ->  aabb  ->  aaabbb  -> aaaabbbb  ->  ...
  338.  
  339. Ein Kellerautomat analysiert eine solche Zeichenfolge, indem er für
  340. jedes gelesene a-Element einen Eintrag in einem speziellen Speicherbe-
  341. reich macht. Wenn er schließlich zum Lesen der b-Elemente kommt,
  342. löscht er für jedes gelesene b-Element eines der gespeicherten a-Ele-
  343. mente, bis weder ein weiteres b-Element gelesen noch ein weiteres a-
  344. Element noch gelöscht werden muß. In jedem anderen Fall wäre entweder
  345. dieser spezielle Speicherbereich nach dem Lesen aller b-Elemente noch
  346. nicht leer oder der Speicherbereich wäre bereits leer, ohne daß alle
  347. b-Elemente bereits gelesen wurden. In diesen letzten beiden Fällen
  348. würde der Kellerautomat die Verarbeitung der Zeichenfolge vorzeitig
  349. abbrechen. Mit diesem Abbruch würde er dann anzeigen, daß das Eingabe-
  350. wort nicht zu dieser Grammatik gehört.
  351.  
  352. Hintergrund der oben eingeführten Sprache
  353.  
  354.   L(G) = {x|x=anbn, n E N}
  355.  
  356. ist eine kontextfreie Grammatik, die durch Kellerautomaten dargestellt
  357. werden kann. Der Grund dieser Fähigkeit des Kellerautomaten liegt dar-
  358. in begründet, daß dieser eine gewisse Merkfähigkeit besitzt, der an
  359. einen Stack erinnert: Das heißt, er kann sich durch Lesen und soge-
  360. nanntes Abkellern der a-Elemente ihre Zahl merken, um sie anschließend
  361. feldweise mit den b-Elementen zu vergleichen. Folglich darf man davon
  362. ausgehen, daß die kontextfreien Grammatiken einschließlich der Gram-
  363. matiken der regulären Sprachen zum Sprachumfang des Kellerautomaten
  364. gehören. Es sollte damit gezeigt werden, daß für diesen Fall folgende
  365. Beziehung Gültigkeit hat:
  366.  
  367.   L(G) = L (KA).
  368.  
  369. Es besteht also Übersetzbarkeit zwischen kontextfreien Sprachen
  370. und dem Kellerautomat.
  371.  
  372.  
  373. Grenzen der kontextfreien Sprachen und Sprachumfang des Kellerautomaten
  374.  
  375. Zwar besitzt der Kellerautomat einen größeren Sprachumfang als der
  376. endliche Automat mit und ohne Ausgabe; jedoch kann auch für den Kel-
  377. lerautomaten eine Sprache angegeben werden, für die dieser Automat
  378. keinen Akzeptor darstellt. Eine solche Sprache hat zum Beispiel mit
  379. dem Alphabet E = {a, b, c} folgende Form:
  380.  
  381. L(G) = {x|x=anbncn, n E N}.
  382.  
  383. Die Worte dieser Sprache sind beispielsweise
  384. abc, aabbcc, aaabbbccc, usw. Diese Worte besitzen stets die
  385. gleiche Zahl an a-, b- und c-Elementen.
  386.  
  387. Beim Kellerautomaten rührt die Nicht-Akzeptanz dieser Sprache vom Bau
  388. seines Speichers her; denn er wird beim Lesen der a-Elemente deren
  389. Anzahl in seinem Speicher vermerken, um sie dann auf die folgenden b-
  390. Elemente zu übertragen. Dies hat a ber zur Folge, daß er danach keine
  391. Möglichkeit mehr besitzt, die verbleibenden c-Elemente zu überprüfen,
  392. denn nach Überprüfung der b-Elemente ist durch Löschen der a-Elemente
  393. dieser Speicher wieder leer.
  394.  
  395. Diese Schwierigkeit betrifft in gleicher Weise die kontextfreien Spra-
  396. chen. Denn durch die bei diesen zur Anwendung kommenden Regelformen
  397. können lediglich die gleiche Anzahl der a- und b-Elemente durch
  398. gleichzeitiges Streichen je eines Elem entes von jeder Art überprüft
  399. werden. Auch hier bleibt anschließend keine Möglichkeit mehr, die An-
  400. zahl der c-Elemente zu testen.
  401.  
  402. Daraus ergibt sich die Folgerung, daß eine Sprache der allgemeinen
  403. Form L(G) = {x|x=anbncn, n E N} über dem Alphabet E= {a, b, c} weder
  404. durch das Regelsystem kontextfreier Grammatiken noch durch die Vorge-
  405. hensweise eines Kellerautomaten dar gestellt werden kann.
  406.  
  407.  
  408. Kontextsensitive Sprachen
  409.  
  410. Die Sprache mit der allgemeinen Wortform "anbncn" gehört zu den kon-
  411. textsensitiven Sprachen. Diese Sprachen zeichnen sich dadurch aus, daß
  412. auf der rechten und linken Regelseite beliebig viele terminale
  413. und/oder nicht-terminale Symbole stehen dürfen. Damit können kontext-
  414. sensitive Grammatiken Regeln enthalten, die nur umgebungsabhängig an-
  415. gewendet werden können. Damit liegen für die kontextsensitiven Spra-
  416. chen und ihre Regeln keine Einschränkungen mehr vor - allerdings mit
  417. Ausnahme der einen, daß bei der Analyse von Zeichenfolgen das Wort
  418. stets kürzer und bei der Synthese bzw. Generierung das Wort stets län-
  419. ger werden muß.
  420.  
  421. Und um nochmals das Beispiel des Kochs zu traktieren: Auch er darf nur
  422. weitere Zutaten in die Brühe hineinwerfen und kann keine mehr heraus-
  423. holen, und dennoch muß das Ganze zu einer geschmackvollen Suppe werden
  424. - ansonsten könnte seine Karriere ein jähes Ende nehmen.
  425.  
  426. Die allgemeinen Regelformen in kontextsensitiven Grammatiken haben
  427. daher folgendes Aussehen:
  428.  
  429. linksrekursive Regeln:      A   -> Aa
  430. rechtsrekursive Regeln:     B   -> bB
  431. zentralrekursive Regeln:    A   -> aAb
  432. kontextsensitive Regeln:    aA  -> Aa
  433.                             Aa  -> Aa
  434.                             aAb -> Aa
  435.  
  436. Ein Regelapparat, der die oben angeführte Sprache mit der allgemeinen
  437. Wortform "anbncn" analysieren bzw. generieren kann, hat auf der Basis
  438. der terminalen und nicht-terminalen Symbole VT und VN die Form P:
  439.  
  440.       VT = {a, b, c,}    VN = {A, B, S}
  441.  
  442.       P:  S -> aB    S -> aSA
  443.           B -> bc    cA -> Ac
  444.           BA -> bBc
  445.  
  446. Mit Hilfe dieses Regelapparats kann die oben angegebene Sprache analy-
  447. siert oder deren Worte generiert werden. Dazu ein Beispiel:
  448.  
  449. S => aSA => aaSAA -> aaaBAA => aaabBcA => aaabBAc =>
  450.   => aaabbbBcc => aaabbbccc
  451.  
  452.   aaabbbccc => aaabbBcc => aaabBAc => aaabBcA => aaaBAA =>
  453.   => aaSAA => aSA => S
  454.  
  455. Es läßt sich nun zeigen, daß für jede kontextsensitive Grammatik eine
  456. "Turing-Maschine" im Sinne eines linear beschränkten Automaten exi-
  457. stiert, so daß gilt:
  458.  
  459.   L(G) = L(LA);
  460.  
  461. denn der linear beschränkte Automat geht so vor, daß er zunächst durch
  462. elementeweises Löschen von links nach rechts die Anzahl der a- und b-
  463. Elemente miteinander vergleicht. Folgt auf das zuletzt gelöschte b-
  464. Element ein c-Element und ist dann ebenso kein a-Element mehr vorhan-
  465. den, dann stimmt die Zahl der a- und b-Elemente überein. Dasselbe Ver-
  466. fahren wird nach Wiederauffüllen der a- und b-Elemente dann auf die b-
  467. und c-Elemente angewandt. Folgt schließlich auf das letzte c-Element
  468. ein Leerzeichen und ist dann auch kein b-Element mehr vorhanden, dann
  469. ist gezeigt, daß die Anzahlen aller drei Elemente übereinstimmen. Das
  470. analysierte Wort gehört damit zu dieser Sprache L(G).
  471.  
  472.  
  473. Differenzierung in linear beschränkten Automaten und Turing-Maschine
  474.  
  475. Der linear beschränkte Automat unterscheidet sich von einer Turing-
  476. Maschine darin, daß er ein zweiseitig beschränktes Band besitzt. Die
  477. Turing-Maschine besitzt hingegen nur ein einseitig beschränktes Band.
  478. Dadurch besitzt sie den allgemeinsten Sprachumfang. Nach intuitivem
  479. Verständnis dürfte es daher keine Grammatik zu einer Wortform geben,
  480. die nicht durch eine Turing-Maschine darstellbar ist. Denn auf glei-
  481. chem Wege wie oben beschrieben könnte von einer Turing-Maschine auch
  482. die Sprache mit der Wortform anbncndn über dem Alphabet E = {a, b, c,
  483. d} berechenbar sein usw. Desgleichen könnte eine kontextsensitive
  484. Grammatik gefunden werden, die diese Aufgabe erfüllt. Folglich kann
  485. man auf dieser vierten Stufe der Sprachen innehalten, zurückschauen
  486. und sich ruhig zurücklehnen. Denn für jeden möglichen Fall scheint
  487. eine Lösung bereitzustehen und auffindbar zu sein. Deshalb bleibt an
  488. dieser Stelle auch nur noch eines zu tun: einen Interpreter für alle
  489. diese gefundenen Maschinen und Sprachen zu entwickeln und vorzustel-
  490. len. Das soll nun geschehen, und zwar gesondert für jede Maschine.
  491.  
  492.  
  493.  
  494. II)  DIE AUTOMATEN
  495.  
  496. Der endliche Automat ohne Ausgabe
  497.  
  498. Ein endlicher Automat ohne Ausgabe wird durch drei Mengen definiert:
  499. durch das Eingabealphabet E, seine Zustände S und die Überführungs-
  500. funktion. Das Eingabealphabet umfaßt diejenigen Zeichen, die der Auto-
  501. mat liest und verarbeitet. Die Menge der Zustände S umfaßt diejenigen
  502. Zustände, die der Automat im Laufe seiner Verarbeitung einnimmt. Zu
  503. dieser Menge gehören auch der Anfangszustand und die Menge der Endzu-
  504. stände.
  505.  
  506. Das Programm eines solchen Automaten besteht aus dreiteiligen Regeln
  507. mit folgender Form:
  508.  
  509.           si,  ai,  sj
  510.  
  511. Der Parameter si bezeichnet die Regelnummer. Dabei bilden alle Regeln
  512. mit derselben Ordnungszahl i zusammen einen Maschinenzustand. Der
  513. Parameter ai stellt die Aktion dar. Er stimmt im aktuellen Zustand si
  514. mit dem Eingabealphabetszeichen a uf dem Leseband überein. Der Parame-
  515. ter sj steht für eine neue Regel, zu der von der aktuellen Regel aus
  516. verzweigt werden soll. Er steht also für eine Verzweigungsregel.
  517.  
  518. Die Zeichenverarbeitung eines endlichen Automaten ohne Ausgabe erfolgt
  519. in folgender Weise: Bevor die neue Regel sj ermittelt werden kann,
  520. wird das Leseband um ein Feld nach links bewegt. Dann wird vom Lese-
  521. band das neue Zeichen ai gelesen und zusammen mit der Nummer sj der
  522. aktuellen Regel eine neue Regel gesucht. Wird eine solche Regel aus
  523. der Kombination von sj und ai gefunden, wird diese Regel die neue ak-
  524. tuelle Regel, während das Leseband erneut um ein Feld nach links be-
  525. wegt wird usw. Mit der Verzweigungsregel sj der nun aktuellen Regel
  526. beginnt dieser Verarbeitungszyklus von Neuem. Der endliche Automat muß
  527. also in seinem Regelapparat P von Verarbeitungsschritt zu Verarbei-
  528. tungsschritt eine Regel finden, die in den ersten beiden Parametern
  529. eine Kombination aus Verweisungsregel der bisher aktuellen Regel und
  530. dem neu eingelesenen Eingabealphabetszeichen darstellt.
  531.  
  532. Ist diese Regel vorhanden, kann der Automat zu dieser neuen Regel
  533. übergehen und seinen Verarbeitungsprozeß fortsetzen; wenn nicht,
  534. bricht der Automat die Bearbeitung des Lesebandes vorzeitig ab. Bei
  535. Abbruch des Verarbeitungsprozesses hat sich dann gezeigt, daß die auf
  536. dem Leseband niedergeschriebene Zeichenfolge nicht zu der im Regelap-
  537. parat des Automaten beschriebenen Grammatik gehört.
  538.  
  539. Diese sehr elementare Weise der Verarbeitung von Zeichen eines Einga-
  540. bealphabets kann für einen Automaten mithilfe des Cartesischen Pro-
  541. dukts zwischen eingelesenem Zeichen und angezieltem Maschinenzustand
  542. beschrieben werden. Das Cartesische P rodukt beschreibt in diesem Fall
  543. die Überführungsfunktion u und hat für den endlichen Automaten A ohne
  544. Ausgabe folgende Form:
  545.  
  546.           u:   E x S -> S
  547.  
  548. Damit läßt sich der endliche Automat A ohne Ausgabe durch folgendes
  549. Quintupel A beschreiben: A = (E, S, u, sa, S), Dabei ist E das Einga-
  550. bealphabet, S die Menge der Maschinenzustände, u die Überführungsfunk-
  551. tion, sa der oder die Anfangszustände und S die Menge der Endzustände.
  552.  
  553.  
  554. Als Realisierung eines endlichen Automaten ohne Ausgabe kann man sich
  555. folgende Anordnung vorstellen: Der Automat benötigt als Instanzen eine
  556. Eingabe- und eine Verarbeitungseinheit. Als Eingabeeinheit verwendet
  557. man ein Leseband. Es hat sehr große Ähnlichkeit mit dem
  558. Schreibband eines Morsegerätes. Für dieses Leseband gilt wie beim Mor-
  559. segerät die Bedingung, daß es sich nur von rechts nach links bewegen
  560. kann. Dieses Band besteht zudem aus linear angeordneten Feldern, auf
  561. denen jeweils ein Zeichen des Eingabealphabets eingezeichnet sein
  562. kann. Alle mit den Zeichen des Eingabealphabets beschrifteten Felder
  563. ergeben von links nach rechts gelesen das Eingabewort. Alle übrigen
  564. Felder des Bandes sind leer oder tragen die Beschriftung mit einem
  565. Leerzeichen. Über diesem Leseband ist ganz links ein Lesekopf (L-Kopf)
  566. angebracht. Dieser Lesekopf liest stets das Zeichen des unter ihm be-
  567. findlichen Feldes. Danach wird das Leseband um eine Stelle nach links
  568. gerückt, während mithilfe des gelesenen Zeichens und der Verweisungs-
  569. nummer im Regelapparat des Automaten der neue Zustand des Automaten
  570. ermittelt wird.
  571.  
  572. Programm zum endlichen Automaten ohne Ausgabe
  573.  
  574. Für einen endlichen Automaten ohne Ausgabe kann auf der obigen Regel-
  575. form basierend folgendes kleines Programm mit dem Namen DUAL.A angege-
  576. ben werden:
  577.  
  578.  
  579. 000,1,000    ; PROGRAMM: Test auf 1er-Gruppen, die max. durch eine
  580. 000,0,010    ;            Null getrennt sind
  581. 010,1,000    ;  "010" ist elementare if-Anweisung: wenn 1, dann "000"
  582. 010,s,030    ;                                     wenn 0, dann "030"
  583. 030,s,030    ; "s" ist Stopp-Zeichen
  584.  
  585.  
  586. Der Text nach dem Semikolon stellt dabei einen Kommentar dar, der beim
  587. Einlesen in den Programmeditor nicht berücksichtigt wird.
  588.  
  589. Die Aufgabe des Programms besteht darin, Gruppen von Eins-Elementen
  590. danach zu testen, ob sie nur durch ein Leer-Element (hier die Null)
  591. getrennt sind. Die Bandinschrift vor Verarbeitungsbeginn kann damit
  592. folgendes Aussehen aufweisen:
  593.  
  594.   11111011111111110110111110s
  595.  
  596. Das "s" symbolisiert den Stop-Zustand. Vor Arbeitsbeginn steht der
  597. Lesekopf über der ersten linken Eins. Mit sukzessiver Kopfbewegung
  598. nach rechts wird Regel um Regel des Programms abgearbeitet. Gelingt
  599. die Verarbeitung im Ganzen, so wird de r gesamte Prozeß im Zustand "s"
  600. abgeschlossen. Damit gehört dieses Wort zu der durch den Regelapparat
  601. symbolisierten Sprache.
  602.  
  603.  
  604. Der endliche Automat mit Ausgabe
  605.  
  606. Zwischen den endlichen Automaten mit und ohne Ausgabe besteht kein
  607. wesentlicher Unterschied. Der wichtigste Unterschied besteht allein
  608. darin, daß der endliche Automat mit Ausgabe zusätzlich über eine Aus-
  609. gabeeinheit verfügt.
  610. Die Ausgabeeinheit verfügt über ein Ausgabeband, auf dem in Abhängig-
  611. keit von Automatenzustand und eingelesenem Zeichen ein Ausgabezeichen
  612. feldweise eingetragen wird. Das Ausgabeband ist folglich identisch mit
  613. dem Leseband, nur daß über dies em statt einem Lese- ein Schreibkopf
  614. (S-Kopf) fest angebracht ist. Auch dieses Ausgabeband kann nur von
  615. rechts nach links bewegt werden, so daß die Ausgabezeichen auf ihm von
  616. links nach rechts eingetragen werden.
  617.  
  618. Aufgrund des zusätzlichen Bandes ist der endliche Automat mit Ausgabe
  619. durch folgende Mengen definiert: Diese sind neben dem Eingabealphabet
  620. E und der Menge der Zustände S (einschließlich der Anfangs- und Endzu-
  621. stände) das Ausgabealphabet Z.
  622. Zusätzlich gibt es bei diesem Automaten neben der Überführungsfunktion
  623. u die Ausgabefunktion g. Ebenso wie die Funktion u kann die Funktion g
  624. als Cartesisches Produkt dargestellt werden: Sie gibt an, aufgrund
  625. welcher spezifischen Cartesisch en Produktbildung der Automat eine
  626. Ausgabe erzeugt.
  627. Jedoch wird in der Literatur die Ausgabefunktion nicht näher festge-
  628. legt, da hierbei Unterschiede auftreten können. Je nach Festlegung
  629. spricht man von einem Mealy-, einem Moore- oder einem trivialen bzw.
  630. Medwedew-Automaten. Gemäß dieser Reih enfolge haben diese drei endli-
  631. chen Automaten mit Ausgabe folgende zu unterscheidenden Ausgabefunk-
  632. tionen:
  633.  
  634.         g: E x S -> Z
  635.         g: S     -> Z
  636.         g: E     -> Z
  637.  
  638. Damit kann der endliche Automat mit Ausgabe durch die folgende Menge M
  639. beschrieben werden: M = (E, S, Z, u, g, sa).
  640.  
  641. Dabei ist E das Eingabealphabet, S die Menge der Zustände, Z das Aus-
  642. gabealphabet und sa der Anfangszustand, während u die bereits bekannte
  643. Überführungsfunktion und g die Ausgabefunktion darstellt. Damit be-
  644. sitzt der endliche Automat mit Ausgabe eine vierteilige Regelform:
  645.  
  646.           si,  ah,  zk,  sj
  647.  
  648. Die Regelnummer ist si, die Verzweigungsnummer sj. Die Variable ah
  649. stellt das Einlesezeichen dar, zk das Ausgabezeichen, das von der Ma-
  650. schine im Zustand si und beim Einlesen von ak ausgegeben wird.
  651.  
  652. Beim endlichen Automaten mit Ausgabe steht im Zentrum des Interesses
  653. die Frage, welches Wort nach einem erfolgreichen Programmlauf auf dem
  654. Schreibband ausgegeben wird. Dabei korrespondiert die Grammatik der
  655. Eingabesprache einer anderen Grammatik als Ausgabesprache: Es wird ein
  656. Wort der Worteingabe-Grammatik genqau einem anderen der Ausgabe-Gram-
  657. matik zugeordnet. Gehört hier das Eingabewort nicht zur Grammatik der
  658. Eingabesprache, so kann ihm auch keines der Ausgabe-Sprache zugeordnet
  659. werden. Das heißt beide Sprachen stehen in einem maschinellen Überset-
  660. zungsverhältnis zueinander, das man allerdings auf der Basis solcher
  661. Sprachen nur mit einer sehr elementaren Übersetzungsbeziehung verglei-
  662. chen kann.
  663.  
  664. Programm zum endlichen Automaten mit Ausgabe
  665.  
  666. Dieses sehr bescheidene Programm UMKEHR.M für den endlichen Automaten
  667. mit Ausgabe basiert auf der zu diesem Automaten eingeführten Regel-
  668. form:
  669.  
  670.  
  671. 000,1,0,000  ; PROGRAMM: Umkehrung der Ein-/Ausgabe
  672. 000,0,1,000
  673. 000,s,s,000
  674.  
  675.  
  676. Es hat zur Aufgabe, Einer- und Null-Elementgruppen des Eingabebandes
  677. in Null- und Einer-Elementgruppen zu verkehren, so daß zwischen Einga-
  678. be- und Ausgabeband ein komplementäres Wortverhältnis bezüglich der
  679. Symbole Eins und Null besteht. Zu Arbeitsbeginn hat das Leseband zum
  680. Beispiel folgende Inschrift:
  681.  
  682.   111110001111001110000s
  683.  
  684. Nach der Verarbeitung dieser Bandinschrift durch das Programm UMKEHR.M
  685. steht auf dem Schreibband das komplementäre Wort:
  686.  
  687.   000001110000110001111s
  688.  
  689. Damit wird die Verarbeitung im Zustand s, dem Stop-Fall, beendet. Die
  690. viereckigen Zeichen dienen als Leerzeichen.
  691.  
  692.  
  693. Der Keller-Automat
  694.  
  695. Die endlichen Automaten mit und ohne Ausgabe können nur relativ zu
  696. einem bestimmten Maschinenzustand einen Zeichenvergleich zwischen Ma-
  697. schinenzustand und eingelesenem Zeichen durchführen. Da sie über eine
  698. Merkfähigkeit nur bezüglich des unmittelbar vom Leseband gelesenen
  699. Zeichens verfügen, also keinen darüber hinausgehenden Speicher besit-
  700. zen, sind sie nicht in der Lage, ein Zeichen für einen späteren Verar-
  701. beitungsschritt "aufzubewahren". Endliche Automaten mit und ohne Aus-
  702. gabe sind insofern vergleichbar mit schlechten Köchen. Sie verfügen
  703. nicht über Vorräte für schlechte Zeiten.
  704.  
  705. Beim Kellerautomaten ist das anders: Er besitzt einen sogenannten Kel-
  706. ler. Auch er hat wie der endliche Automat mit Ausgabe zwei Bänder: ein
  707. Leseband mit einem darüber angebrachten Lesekopf (L-Kopf), das feld-
  708. weise nur von links nach rechts bewegt werden kann, und ein zweites
  709. Band, der sogenannte Keller, der von ihm als Speicherband, d.h. als
  710. Lese- und Schreibband, verwendet werden kann. Über ihm ist ein
  711. Schreib-Lese-Kopf (SL-Kopf) angebracht. Das Kellerband hat ein unteres
  712. Ende, während es nach oben offen ist. Es kann in beiden Richtungen
  713. bewegt werden.
  714.  
  715. Das Kellerband funktioniert genau wie ein Stack: Der Automat kann im-
  716. mer nur ganz oben auf dem Kellerband ein Zeichen einfügen, und er kann
  717. auch immer nur das oberste der "abgekellerten" Zeichen lesen und lö-
  718. schen, niemals aber ein darunterliegendes.
  719.  
  720. Ein Kellerautomat kann damit durch die folgende Menge KA beschrieben
  721. werden:
  722.  
  723.         KA = (E, S, K, sa, ka, u, S)
  724.  
  725. Dabei ist E das Eingabealphabet, S die Menge der Zustände, K das Kel-
  726. leralphabet, sa der Anfangszustand, ka das Kellerstartzeichen, S die
  727. Menge der Endzustände und u die Überführungsfunktion. Es ist dabei zu
  728. beachten, daß das leere Zeichen k
  729. ein Element von E ist und damit auch nicht in einem Eingabewort vor-
  730. kommen kann. Dagegen gehört das leere Zeichen zur Menge K. Der SL-Kopf
  731. kann es auf das Speicherband schreiben, um damit ein über das Leseband
  732. eingegebenes und abgespeichertes Zeichen wieder zu löschen.
  733.  
  734. Genauer müßte man sagen: Es gibt kein leeres Zeichen, sondern nur
  735. eine Kellerbandbewegung ohne Zeichenverarbeitung bzw. das Löschen
  736. eines Zeichens des Kelleralphabets plus einer Bandbewegung.
  737.  
  738. Die Überführungsfunktion des Kellerautomaten hat die Form:
  739.  
  740.         u:  (E U |φ|) x S x K -> S x K*
  741.  
  742. Sie hat folgende Bedeutung: Es wird ein geordnetes Tripel (ei, sj,
  743. ku), bestehend aus einem Zeichen des Eingabebandes, dem aktuellen Zu-
  744. stand des Automaten und einem auf dem Kellerband unter dem SL-Kopf
  745. eingetragenen Zeichen, in das geordnete Paar (sn,t) überführt; dabei
  746. ist sn der neue Zustand und t als Element von K* ein Wort, das durch
  747. eine Verkettung des letzten Eingabezeichens mit dem zuletzt abgekel-
  748. lerten Zeichen gebildet und durch das oberste Kellerzeichen ersetzt
  749. wird.
  750.  
  751. Zu Beginn der Abarbeitung befindet sich der Kellerautomat im Zustand
  752. sa, der Lesekopf steht über dem linken Zeichen des Lesebandes und der
  753. SL-Kopf über dem untersten Zeichen ka des Kellers. Steht bei der Bear-
  754. beitung eines Eingabewortes W un ter dem Lesekopf das Zeichen ej, un-
  755. ter dem SL-Kopf das Zeichen ku und befindet sich der Kellerautomat
  756. gerade im Zustand sj, dann kann es zu folgenden Vorgängen kommen:
  757.  
  758. 1)  falls es in u kein Tripel (ei,sj,ku) oder (φ, sj, ku)
  759.     gibt, bleibt der Kellerautomat stehen;
  760. 2)  falls es in u eine Zuordnung (ei, sj, ku) -> (sn, kt)
  761.     gibt, dann geht der Kellerautomat in den Zustand sn
  762.     über, ku wird durch kt ersetzt und das Eingabeband um
  763.     ein Feld nach links bewegt; dann steht der SL-Kopf über
  764.     dem letzten Zeichen von kt;
  765. 3)  falls die obige Zuordnung statt ei das leere Zeichen φ
  766.     bzw.  kein Zeichen enthält, erfolgen dieselben Vorgänge
  767.     wie zuvor, außer daß das Eingabeband nicht bewegt wird;
  768. 4)  falls auf der rechten Seite einer Zuordnung das Paar
  769.     (sn,φ) steht, so geht der Kellerautomat in den Zustand
  770.     sn über und schreibt das Zeichen φ auf das Kellerband;
  771.     er löscht also das dort stehende Zeichen ku und bewegt
  772.     danach das Kellerband um ein Feld nach oben;
  773. 5)  falls sn ein Element aus Σ ist und das Speicherband
  774.     leer ist, bleibt der Kellerautomat stehen.
  775.  
  776. Ein Eingabewort W E E* [Soll heißen: "W ist ELEMENT von E*"] aus der
  777. Sprache L(KA) gehört demnach dann zu einem Kellerautomaten KA, wenn
  778. dieser beginnend auf dem linken Zeichen von W und auf dem untersten
  779. Feld des leeren Speicherbandes eine Reihe von Zuständen durchläuft und
  780. schließlich auf dem am weitesten rechts stehenden Zeichen des Wortes W
  781. stehen bleibt, dabei der Kellerspeicher leer ist und KA einen Endzu-
  782. stand aus der Menge Σ erreicht hat.
  783.  
  784. Programm zum Keller-Automaten
  785.  
  786. Dieses Programm mit dem Namen ÄQUI.K, was für "Äquivalenz" steht, hat
  787. die Aufgabe, zwei Einser-Gruppen auf gleiche Länge zu testen. Ist dies
  788. nicht der Fall, bricht die Keller-Maschine die Verarbeitung vorzeitig
  789. ab. Das Programm hat folgende Struktur:
  790.  
  791.  
  792. 000,1,k,1,010  ; PROGRAMM: Test, ob zwei Eins-Zahlengruppen gleiche
  793. 010,1,1,1,010  ;           Länge besitzen
  794. 010,0,1,■,020  ; "■" steht für leeres Zeichen
  795. 020,0,1,■,020
  796. 020,s,k,k,020
  797.  
  798.  
  799. Zur Strukturierung dieser Regeln sei nochmals verdeutlichend gesagt:
  800. Die erste Zahlenspalte ist der aktuelle Zustand der Maschine, die
  801. zweite das auf dem Leseband und die dritte Spalte das auf dem Keller-
  802. band momentan gelesene bzw. eingetrag ene Zeichen, während in der
  803. vierten Spalte das auf dem Kellerband einzutragende Zeichen und in der
  804. fünften Spalte die Verzweigungsregel enthalten ist.
  805.  
  806. Die Turing-Maschine (der linear beschränkte Automat)
  807.  
  808. Da der Unterscheid zwischen Turing-Maschine und linear beschränktem
  809. Automaten einfach darin besteht, daß der zweitere ein zweiseitig be-
  810. grenztes Band besitzt (siehe das "Turing"-Programm in der Zeitschrift
  811. "PASCAL International" 4/88, Seite 75ff), während alle anderen Funk-
  812. tionen dieselben sind, wird hier ausschließlich die Turing-Maschine
  813. besprochen werden.
  814.  
  815. Die Turing-Maschine verfügt nur noch über ein Band, das zugleich als
  816. Schreib- und Leseband (SL-Band) verwendet wird. Während dieses Band
  817. der Turing-Maschine auf seiner linken Seite begrenzt ist, ist es auf
  818. seiner rechten als beliebig lang aufzufassen. Es kann von der Turing-
  819. Maschine beliebig weit nach rechts und wieder nach links bewegt wer-
  820. den. Über ihm ist ein Schreib-Lese-Kopf (SL-Kopf) angebracht, durch
  821. den der Automat Zeichen in jedes in endlicher Zeit erreichbare Feld
  822. setzen, löschen oder durch Gehen zum benachbarten Feld nach rechts oder
  823. links übergehen kann.
  824.  
  825. Damit kann die Turing-Maschine immer einen bestimmten Bereich seines
  826. Bandes als Speicherabschnitt verwenden. Die Turing-Maschine ist damit
  827. nicht darauf angewiesen, immer nur das oberste abgekellerte Zeichen
  828. vom Speicher zu holen. Vielmehr k önnen beliebige Zeichen vom Band
  829. gelesen und gelöscht werden. Damit besitzt die Turing-Maschine gegen-
  830. über dem Kellerautomaten ein Speicherband, auf dem jederzeit an belie-
  831. biger Stelle notierte Zeichen zugänglich sind und beliebig Zeichen
  832. gelöscht und gesetzt werden können.
  833.  
  834. Diese von Alan M.Turing im Jahre 1936 beschriebene Maschine diente ihm
  835. dazu, die Unentscheidbarkeit gewisser mathematischer Sätze der Arith-
  836. metik zu zeigen. Sie wurde als elementarer Vorgänger Großvater der
  837. heutigen Rechenmaschinen. Er hatte mit diesem Maschinenkonzept sozusa-
  838. gen als Nebenprodukt zu seinen eigentlichen Zielen eine Form eines
  839. universellen Rechenautomaten erfunden.
  840.  
  841. Eine Turing-Maschine T ist durch folgende Menge bestimmt:
  842.  
  843.         T = (E, S,B, sa, Σ, u)
  844.  
  845. Dabei bezeichnet E die Menge der Bandzeichen, S die Menge der internen
  846. Zustände der Maschine, B die Menge der Kopfbewegungen über dem
  847. Schreib-Lese-Band (SL-Band), sa den Anfangszustand, Σ die Menge der
  848. Endzustände und u die Überführungsfunktion. Die Überführungsfunktion
  849. hat dabei die folgende Form:
  850.  
  851.         u:  (ei, sj) -> (ep, sq, br)
  852.  
  853. Diese Funktion sagt aus, daß die Maschine aufgrund eines bestimmten
  854. Zustands und eines bestimmten gelesenen Bandzeichens in einen neuen
  855. Zustand übergeht, indem br E B [Soll heißen: "br ist Element von B"]
  856. durchgeführt wird, das heißt es wird eine neue Bandbeschriftung an der
  857. betreffenden Stelle erzeugt oder der Schreib-Lese-Kopf um eine Feld-
  858. stelle nach rechts oder links bewegt. In diesem neuen Feld liegt dann
  859. die Eingabe ep im Zustand sq vor. Wenn die Turing-Maschine denn Zu-
  860. stand
  861.  
  862.   sr E Σ [Soll heißen: "sr ist Element von Σ"]
  863.  
  864. erreicht, bleibt sie stehen.
  865.  
  866. Bei einer Turing-Maschine steht im Zentrum die Frage, ob der Verarbei-
  867. tungsprozeß nach endlicher Zeit abbricht und dabei ein Endzustand der
  868. zugehörigen Grammatik erreicht wurde. Ist der Verarbeitungsprozeß ab-
  869. gebrochen, ohne daß dieser Endzustand erreicht wurde, so liegt ein
  870. Eingabewort vor, das nicht Element der über der Grammatik erzeugbaren
  871. Wortmenge ist. Bricht jedoch der Verarbeitungsprozeß nicht ab - ja
  872. dann ist die Frage, ob er überhaupt jemals abbricht. Wenn nicht, dann
  873. wird es nicht feststellbar sein, ob er überhaupt jemals abbricht und
  874. das Eingabewort Wort der über der Grammatik bildbaren Wortmenge ist.
  875. Wenn ja, dann ist er abgebrochen und es ist je nach Abbruchsstelle
  876. genau dies feststellbar: ob das Eingabewort zu dieser Grammatik gehört
  877. oder nicht.
  878.  
  879. Programme zur Turing-Maschine (linear-beschränkten Automaten)
  880.  
  881. Hier seien nun verschiedene Programme vorgestellt. Das erste ist ein
  882. besonders für den linear-beschränkten Automaten geeignetes Programm,
  883. das zur Zeichensuche dient. Die Verarbeitung beginnt irgendwo zwischen
  884. zwei Einsen auf dem Schreib-Les e-Band, um sukzessive die Position der
  885. nächst liegenden ersten Eins zu finden. Das Band hat vor Arbeitsbeginn
  886. folgendes Aussehen:
  887.  
  888.       000000000000000010000000000000000000000100000000
  889.  
  890. Das zugehörige Programm besitzt folgenden Regelapparat:
  891.  
  892.  
  893. 000,0,1,010  ; PROGRAMM: Suche der nächsten rechts oder links
  894. 010,1,l,020  ;           stehenden Eins
  895. 020,0,l,030
  896. 030,0,1,040
  897. 040,1,r,050
  898. 050,0,r,050
  899. 050,1,0,060
  900. 060,0,r,070
  901. 070,1,s,200  ; Ende rechts
  902. 070,0,1,100
  903. 100,1,l,110
  904. 110,0,l,110
  905. 110,1,0,120
  906. 120,0,l,130
  907. 130,1,s,200  ; Ende links
  908. 130,0,1,040
  909.  
  910.  
  911. Das nächste Programm dient der Addition zweier Einser-Zahlengruppen.
  912. Das zweite hat die Aufgabe, zwei Zahlengruppen voneinander abzuziehen.
  913. Es dient der Subtraktion. Das erste Programm mit dem Titel ADDIE-
  914. REN.TUR besitzt folgende Struktur:
  915.  
  916.  
  917. 000,0,r,000  ;  PROGRAMM: Addition zweier Einsen-Zahlengruppen
  918. 000,1,r,010
  919. 010,1,r,010
  920. 010,0,r,020
  921. 020,1,r,020
  922. 020,0,l,040
  923. 040,1,0,040  ; Eins der zweiten Zahl in Null verwandelt
  924. 040,0,l,050
  925. 050,1,l,050
  926. 050,0,1,060  ; die Null zwischen den Zahlen in Eins verwandelt
  927. 060,1,l,070
  928. 070,1,l,070
  929. 070,0,s,070
  930.  
  931.  
  932. Vor Arbeitsbeginn hat das Band zum Beipsiel folgende Struktur, wobei
  933. der SL-Kopf irgendwo auf den links stehenden Nullen steht:
  934.  
  935.         |
  936.   000000000001111111111011111000000000
  937.  
  938. Die Addition erfolgt nun so, daß die Null zwischen den Einsergruppen
  939. in eine Eins verwandelt wird, wobei zuvor noch die am weitesten rechts
  940. stehende Eins in Null verwandelt wurde. Das Ergebnis in diesem Falle
  941. wäre dann die Zahl 15 gewesen, wobei der SL-Kopf über der ersten Null
  942. nach der letzten rechten Eins stehen bleibt. Das zweite Programm mit
  943. dem Titel MINUS.TUR besitzt folgende Struktur:
  944.  
  945.  
  946. 000,*,l,001  ; PROGRAMM: Subtraktion zweier Einsen-Zahlengruppen
  947. 001,1,0,002
  948. 002,0,l,003
  949. 003,1,l,003
  950. 003,*,l,004
  951. 004,0,l,004
  952. 004,1,0,005
  953. 005,0,l,006
  954. 006,*,r,017
  955. 006,1,r,007
  956. 007,0,r,007
  957. 007,*,r,008
  958. 008,1,r,008
  959. 008,0,l,009
  960. 009,1,0,002
  961. 009,*,l,010
  962. 010,0,l,010
  963. 010,1,0,011
  964. 011,0,r,011
  965. 011,*,r,012
  966. 012,0,r,012
  967. 012,*,r,013
  968. 013,1,r,013
  969. 013,*,1,014
  970. 014,1,l,014
  971. 014,*,l,015
  972. 015,0,l,015
  973. 015,*,l,016
  974. 016,0,l,016
  975. 016,1,0,011
  976. 016,*,r,017
  977. 017,0,1,018
  978. 018,1,r,017
  979. 017,*,r,019
  980. 019,0,1,020
  981. 019,*,r,021
  982. 020,1,r,019
  983. 021,1,r,021
  984. 021,*,s,021
  985.  
  986.  
  987. Hier fungiert als Leerzeichen der Stern "*". Also heißt vor Verarbei-
  988. tungsbeginn die Bandinschrift für die Subtraktion "5 - 3" in folgender
  989. Weise:
  990.  
  991.                          |
  992.   **************11111*111***************
  993.  
  994. Der SL-Kopf steht vor Arbeitsbeginn über dem ersten Stern nach der
  995. letzten Eins. Die TM-Maschine arbeitet nun so, daß sie nach dem
  996. gleichmäßigen Streichen der Einsen in den beiden Zahlengruppen die
  997. verbliebenen der linken Zahlengruppe im fr eien Sternfeld rechts außen
  998. einträgt. Danach werden die beiden Zahlengruppen wieder hergestellt,
  999. so daß sich folgende Bandinschrift als Ergebnis ergibt:
  1000.  
  1001.                  |
  1002.   ****************11111*111*11****************
  1003.  
  1004. Ein weiteres Programm dient der Modulo3-Division mit dem Faktor drei.
  1005. Das Programm besitzt den Titel MODULO3.TUR und besitzt folgenden Re-
  1006. gelapparat:
  1007.  
  1008.  
  1009. 000,*,l,000    ; PROGRAMM: Modulo-3-Division (mit Rest-Ausgabe)
  1010. 000,0,l,000
  1011. 000,1,0,001    ; 1. Zahl auf Null
  1012. 000,*,r,020    ; Rest
  1013. 001,0,r,001
  1014. 001,*,r,002
  1015. 002,*,1,003
  1016. 003,1,l,003
  1017. 003,*,l,004
  1018. 004,0,l,004
  1019. 004,1,0,005    ; 2. Zahl auf Null
  1020. 004,*,r,020    ; Rest
  1021. 005,0,r,005
  1022. 005,*,r,005
  1023. 005,1,r,006
  1024. 006,1,r,006
  1025. 006,*,1,007
  1026. 007,1,l,007
  1027. 007,*,l,008
  1028. 008,*,l,008
  1029. 008,0,l,009
  1030. 009,0,l,009
  1031. 009,1,0,010    ; 3. Zahl auf Null
  1032. 009,*,r,020    ; Rest
  1033. 010,0,r,010
  1034. 010,*,r,011
  1035. 011,1,r,011
  1036. 011,*,1,012
  1037. 012,1,r,013
  1038. 013,*,l,014
  1039. 014,1,*,015
  1040. 015,*,l,014
  1041. 014,*,l,000    ; erneuter Schleifenbeginn
  1042. 020,0,1,021
  1043. 020,*,r,022
  1044. 021,1,r,020
  1045. 022,1,r,022
  1046. 022,*,s,023
  1047.  
  1048.  
  1049. Leerzeichen ist auch hier der Stern "*". Im Anfangszustand sieht die
  1050. Bandinschrift zum Beispiel folgendermaßen aus:
  1051.  
  1052.                   |
  1053.   *****************11111111****************
  1054.  
  1055. Diese TM-Maschine zur Modulo3-Division überträgt nun immer gestrichene
  1056. Einsen in das freie rechte Feld. Bei der Anzahl drei werden diese wie-
  1057. der gestrichen, um von Neuem zu beginnen. Zum Schluß steht diejenige
  1058. Anzahl von Einsen im rechten Fe ld, die Rest dieser Modulo-Division
  1059. sind. Dann wird die Einsen-Zahlengruppe wieder aufgefüllt. Die Bandin-
  1060. schrift sieht dann folgendermaßen aus:
  1061.  
  1062.                     |
  1063.   ***************11111111*11*****************
  1064.  
  1065. In einem letzten Programm mit Namen ZAHLEN.TUR stellt die Turing-Ma-
  1066. schine auf ihrem Schreib-Lese-Band die natürlichen Zahlen beginnend
  1067. von der Eins ab dar. Dabei symbolisiert eine Eins die natürliche Zahl
  1068. eins, zwei Einsen die natürliche Zahl zwei, drei Einsen die natürliche
  1069. Zahl drei usw. Aufgrund der Programmierung des Interpreters mit Hilfe
  1070. der Zeigerstruktur ist die Grenze dieser Zahlendarstellung die Größe
  1071. des überhaupt verfügbaren Computerspeichers. Das Programm dieser TM
  1072. hat folgenden Aufbau:
  1073.  
  1074.  
  1075. 000,0,1,010  ; PROGRAMM: Generierung der natürlichen Zahlen
  1076. 010,1,r,010
  1077. 010,0,r,011
  1078. 011,0,1,012
  1079. 012,1,l,012
  1080. 012,0,l,013
  1081. 013,0,l,013
  1082. 013,1,l,020
  1083. 020,1,r,030
  1084. 020,0,r,050
  1085. 030,1,0,031
  1086. 031,0,r,031
  1087. 031,1,r,032
  1088. 032,1,r,032
  1089. 032,0,1,012
  1090. 050,1,r,051
  1091. 051,0,1,052
  1092. 052,1,r,051
  1093. 051,1,l,055
  1094. 055,0,r,056
  1095. 055,1,0,055
  1096. 056,1,r,056
  1097. 056,0,1,010
  1098.  
  1099.  
  1100. Die Bandinschrift zu Beginn trägt lediglich lauter Nullen. Startfeld
  1101. für den SL-Kopf sollte wenigstens die 4. Position von links sein.
  1102.  
  1103. Damit seien genügend Programme zur Turing-Maschine bzw. zum linear-
  1104. beschränkten Automaten angegeben. Neben dem einfachen Ausprobieren
  1105. sollten sie die Phantasie anregen, eigene Programme zu entwerfen. Denn
  1106. hier ist durchaus Kreativität und G eschick gefragt. Im übrigen würde
  1107. sich der Autor dieses Artikels freuen, wenn ihm ein Leser solche lauf-
  1108. fähigen Programme zusenden würde. Also viel Spaß!
  1109.  
  1110. III)  Ergebnis
  1111.  
  1112. Im Verlauf dieses Artikels wurde gezeigt, was Maschinen der Datenver-
  1113. arbeitung überhaupt tun können. Man konnte sehen, daß man zwischen
  1114. endlichen und unendlichen Maschinen, den sogenannten universellen Ma-
  1115. schinen, unterscheiden muß. Es wurde weiterhin deutlich, was eine
  1116. Grammatik und was eine auf der Basis eines Eingabealphabets und dieser
  1117. Grammatik erzeugte Wortmenge ist. Damit stellen diese Grammatiken je-
  1118. weils eine Sprache dar, die je nach Komplexität der zugehörigen Ma-
  1119. schine automatisch erzeugt werden kann.
  1120.  
  1121. Aus dieser Perspektive und im Blick auf eine Künstliche Intelligenz
  1122. ergeben sich somit zwei grundsätzliche Fragen: Erstens stellt sich
  1123. spätestens bei der Turing-Maschine, die ja Vorbild heutiger Rechenau-
  1124. tomaten ist, die Frage, wann jemals ein bestimmter Verarbeitungsprozeß
  1125. abbrechen wird. Da es aber keine auf irgendeinem Automaten darstellba-
  1126. re Grammatik gibt, die es erlaubt zu testen, ob irgendein Algorithmus
  1127. jemals abbrechen wird (denn sonst müßte diese Grammatik auf sich
  1128. selbst angewendet werden können, was einen logischen Widerspruch dar-
  1129. stellt!), wird diese Frage auch zu einer zentralen Frage einer Künst-
  1130. lichen Intelligenz. Da aufgrund neuronaler Komplexität modellierende
  1131. Systeme (heute noch) zu sehr langen Rechenzeiten führen, kann im Ein-
  1132. zelfall nicht unbedingt sicher sein, wann und ob dieser bestimmte Pro-
  1133. zeß jemals abbricht.
  1134.  
  1135. Es müssen daher (im Rahmen der Automatentheorie natürlich) entspre-
  1136. chende Hard- oder Software-Lösungen gefunden werden, die intelligente
  1137. Leistungen auf ein vertretbares Maß an Rechenzeit verringern.
  1138.  
  1139. Zweitens stellen Kritiker der Künstlichen Intelligenz die grundsätzli-
  1140. che Frage, ob auf der Basis "mechanischer Rechenmaschinen" überhaupt
  1141. intelligentes Verhalten dargestellt werden kann; denn die hohe Komple-
  1142. xität des Gehirns und seiner Struktur scheint dies auszuschließen.
  1143. Jedoch kann man darauf antworten, daß die Turing-Maschine universelle
  1144. Möglichkeiten zur Verfügung stellt. Insofern darf man durchaus optimi-
  1145. stisch sein. Nur: Die daran anschließende Frage darf man ernst nehmen,
  1146. ob die Kapazität menschlichen Denkens überhaupt genügt, Mittel und
  1147. Wege zu finden, menschliches Denken mechanisch zu reproduzieren - oder
  1148. anders: Besitzt unser Gehirn selbst die Kapazität, sich zu reproduzie-
  1149. ren. Oder: Wie hoch muß die Leistungsfähigkeit unseres Gehirns sein,
  1150. um seine eigenen intelligenten Leistungen zu reproduzieren. Könnten
  1151. dann, falls dies möglich sein sollte, Maschinen sich selbst produzie-
  1152. ren - eine neue Form maschineller Fruchtbarkeit.
  1153.  
  1154. Dieses Land Utopia ist heute und sicher in weiterer Zukunft eine Mi-
  1155. schung aus Märchen und Frankenstein, einfach unrealistisch. Es ist
  1156. eine platonische Idee, von der vielleicht auch manche Köche träumen
  1157. mögen. Aber die Köche bleiben dann doch immer im kleinen: in ihrer
  1158. Küche, wo es schließlich doch immer wieder nur darum geht, auf genüß-
  1159. liche Art seinen heutigen Hunger zu stillen. Und so mag es der Künst-
  1160. lichen-Intelligenz-Forschung auch immer wieder ergehen: Man backt nach
  1161. dem Ausflug in die Phantasie und das Schlaraffenland doch immer wieder
  1162. nur kleine Brötchen.
  1163.                                                      (wr)
  1164.  
  1165.  
  1166. Literatur:
  1167. - Goldschlager/Lister: Informatik. Eine moderne Einführung.
  1168.   München 1. Auflage 1984: 3. Kapitel: Theorie der Algorithmen.
  1169.   (Inhalt: Eine allgemeine Einführung/Übersicht zum Thema
  1170.   Algorithmen)
  1171.  
  1172. - Herschel, R.: Einführung in die Theorie der Automaten,
  1173.   Sprachen und Algorithmen. (München 1974)
  1174.   (Inhalt: ein sehr zu empfehlendes Buch, da es auf sehr
  1175.   einfache und sehr anschauliche Weise dem Anfänger die
  1176.   gesamte Automatentheorie nahe bringt und verständlich
  1177.   macht)
  1178.  
  1179. - Hans Hermes: Aufzählbarkeit Entscheidbarkeit
  1180.   Berechenbarkeit. (Berlin 3. Auflage 1978)
  1181.   (Inhalt: zur Theorie der Turing-Maschine, ein bereits
  1182.   mathematisch sehr anspruchsvolles Buch)
  1183.  
  1184. - Engeler/Läuchli: Berechnungstheorie für Informatiker.
  1185.   (Stuttgart 1. Auflage 1988)
  1186.   (Inhalt: ein weiterführendes Fachbuch zum Thema, nur für
  1187.   mathematisch Versierte zu empfehlen)
  1188.  
  1189.