***************************
* UMĚLÁ INTELIGENCE *
* 1. část *
***************************
Čau lidi. Jmenuju se Fatal a budu tady několikrát cosi vykládat o
umělé inteligenci. Takže, co je to vlastně umělá inteligence (anglicky se
tomu říká artificial intelligence - AI)? Představte si situaci: prostě,
vracíte se jednou takhle domů a u dveří zjistíte, že nemáte klíče. Začnete
přemýšlet, co bude asi nejideálnějším řešením. Vybíráte alternativy, zase
je zavrhujete a nakonec si nějakou vyberete. Využíváte svých znalostí
(např. víte, kde bydlí kámoš a jdete tam) a určitě na něco přijdete,
ačkoliv se vám to třeba nikdy nestalo. A to je v podstatě princip umělé
inteligence (přesněji, jeden z principů). Jde o to, jak naučit stroj
podobně "uvažovat". Říkám záměrně stroj, protože celá původní teorie byla
vybudována pouze pro použití v robotice (tihle roboti s prvky AI dostali
přízvisko kognitivní) a s použitím někde jinde se vůbec nepočítalo. Počí-
tačová AI byla ve větším měřítku použita poprvé v NASA, a to k řízení
a kontrole letu dálkových družic (dnešní VOYAGER je taky napojen na něco
podobného).
Než se začnu zabývat aplikacemi umělé inteligence, měl bych asi
vysvětlit aspoň základní pojmy, a to databáze znalostí, dedukce a
adaptabilní systém.
Tedy databáze znalostí je souhrn všech faktů, které program zná a
používá je jako svoje vědomosti. Vlastní uspořádání faktů v souboru patří
mezi hlavní problémy při vývoji AI softwaru, protože jestli si s utvářením
datových fajlů nedáte trochu práci, tak se vám lehce stane, že křemíkový
trouba stráví hledáním informací 95% strojového času a docela možné je, že
nakonec stejně nic nenajde. Podle jednoho člověka je vhodné udržovat si
zvlášť znalosti o znalostech (alias metaznalosti), příp. znalosti o
metaznalostech (metametaznalosti) atd., čímž se sice hledání urychlí, ale
množství dat povážlivě vzroste.
Deduktivní algoritmy vlastně daly AI jméno, neboť jejich aplikace jsou
všude tam, kde je zapotřebí z poměrně mála informací stanovit konkrétní
závěr. Jedná se tedy skoro o "logiku". Ovšem nemyslete si, že když
existují jisté odvozovací postupy, jsou závěry vždy ideální. Úspěšnost je
závislá na množství základních informací (těm se říká axiomy a implicitně
jsou pokládány za správné) a pokud se stane, že závěr nelze ze známých
faktů stanovit, má dobrý program o další doplňková data požádat (tyhle
informace se označují jako lemma). Měl by také umět svůj závěr obhájit a
vysvětlit. Problematika dedukce je natolik složitá, že má svoji vlastní
konferenci, která se jmenuje CADE (International Conference on Automated
Deduction).
Adaptabilním systémem můžeme prohlásit každou snůšku instrukcí, která
se je schopná učit z vlastních chyb, neboli je schopna aktualizovat svoji
databázi znalostí, což nemusí být zrovna procházka růžovou zahradou,
uvědomíte-li si, že rozsáhlé databáze mohou obsahovat řádově miliony (ty
průměrně obsáhlé) informací, nepočítaje ani indexové soubory obsahující
výše zmíněné metaznalosti.
Aplikovat umělou inteligenci lze v podstatě ve všech oborech. 100%
jsou schopnosti AI využívány v matematických programech, podle nichž jsou
tranzistoři nuceni do dokazování vět nebo odvozování poznatků zcela
nových.
Expertní systémy se od ostatních výtvorů liší především délkou
databází, neboť tyhle produkty plní do jisté míry úlohu chytrých
encyklopedií, protože jsou využívány v oblastech, kde se bez kvant
znalostí nelze obejít (např. program MYCIN z roku 1976 provádějící
diagnózy chorob).
Systémy řídící mají nejvíce vyvinutu stránku rozhodovací, kde úspěch
závisí jednak na obsahu databáze, ale hlavně na kvalitě algoritmů
provádějících vlastní deduktivní činnost, protože takováhle zběsilost by
měla být schopna najít východisko z každé situace týkající se oblasti, jež
je pod její kontrolou.
Teď má asi většina z vás pocit, že napsat nějaký podobný prográmek je
úloha pro vraha. Ale tak strašné to zase není, protože většina algoritmů
je celkem jednoduchá a na organizaci relativně malých databází zase tak
moc nezáleží.
Možná vás asi napadlo, v čem se něco podobného dá napsat. Skoro ve
všem. Hodí se i Pascal, ale asi nejideálnější jsou jazyky, jejichž
základem je jazyk predikátové logiky 1. řádu mající kořeny kdesi ve
výrokové logice. Jedním z nich je například PROLOG (zkratka z PROgramming
in LOGic). Vzhledem k tomu, že Pascal je nejrozšířenější, budou všechny
přiložené algoritmy psány v něm.
A co bude příště? Mrkneme se trochu na tu výrokovou logiku a vyřešíme
si jeden hlavolámek. A jestli se mi bude chtít napsat toho hodně, tak je
možné, že tam bude i něco o rozhodování v krizových situacích.
Fatal Error
výheň