*************************** * 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ň