220 likes | 433 Views
Umělá inteligence. proč?. Kdy UI nepotřebujeme?. pokud jsme schopni vytvořit stroj, který bude úlohu řešit problém je algoritmizovatelný příklad. Kdy UI potřebujeme?. když to nejde. Piškvorky. online úloha data se mění v průběhu řešení data nejsou dopředu známa
E N D
Umělá inteligence proč?
Kdy UI nepotřebujeme? • pokud jsme schopni vytvořit stroj, který bude úlohu řešit • problém je algoritmizovatelný • příklad
Kdy UI potřebujeme? • když to nejde
Piškvorky • online úloha • data se mění v průběhu řešení • data nejsou dopředu známa • ale to v zásadě nevadí, je to jen komplikace • více cílových stavů • potřebujeme strategii • předvídat tah soupeře • zhodnotit různá řešení • strategie = dlouhodobý plán kroků nutných k dosažení cíle
Inteligentní stroj Stroj projde Turingovým testem, pokud skutečný člověk po položení několika písemných otázek nedokáže rozlišit, jestli odpověď pochází od stroje nebo od (skrytého) člověka. • rozpoznání obrazu, zpracování obrazu (identifikace písemné otázky) • robotika, manipulátory (příjem otázky nebo jiného objektu) • zpracování přirozeného jazyka (zpracování textu otázky a „porozumění“ otázce) • strojové učení (vytvoření databáze znalostí, která se použije k zodpovězení otázky) • reprezentace znalostí (ukládání informací naučených během provozu a jejich vyhledávání) • automatické usuzování (vytvoření odpovědi na základě významu otázky a známých znalostí) Alan Turing, 1950
1950 - 2011 • Počítač roku 1950 • 1 × 1 x 0,001Mhz (server x core x frekvence) • 1920B RAM • 5120B HDD • Počítač roku 2011(1:51) – Watson • 90 × 32 × 3,25 GHz • > 15TB RAM • ∞ HDD
Zpět na zem • Jaká je strategie pro piškvorky (3×3)?
Strategie 3×3 • Tah na střed • Tah na roh, kde je volná diagonála • Pokud můžeme dokončit řadu, dokončeme ji • Pokud může protihráč dokončit řadu, zablokujme ji • Tah na hranu, kde zablokujeme protihráče a současně můžeme vytvořit řadu • Tah na volnou hranu, pokud není volná hrana, tah na roh.
Implementace ELSE //čtvrtý tah // podle přechozího tahu zkusíme vždy nejprve dokončit vodorovnou nebo svislou řadu, potom // zkusíme tah na stranu, kde je poslední možnost vytvořit řadu, pro každý směr je jedno pravidlo IF PředchozíTah = A2 THEN IF Volno(C2) THEN Tah(C2) ELSE Tah(B1) ELSE IF PředchozíTah = B1 THEN IF Volno(B3) THEN Tah(B3) ELSE Tah(C2) ELSE IF PředchozíTah = B3 THEN IF Volno(B1) THEN Tah(B1) ELSE Tah(A2) ELSE IF PředchozíTah = C2 THEN IF Volno(A2) THEN Tah(A2) ELSE Tah(B3) IF PrvníTah THEN Tah(B2) ELSE IF DruhýTah THEN // máme provést druhý tah // najdemevolnou diagonálu IF Volno(A1) AND Volno(C3) THEN // je volnépole A1 i pole C3 Tah(A1) ELSE Tah(A3) ELSE IF TřetíTah IF Soupeř(A1) THEN // musíme blokovat soupeře tahem na stranu IF Soupeř(A3) THEN Tah(A2) ELSE IF Soupeř(C1) THEN Tah(B1) ELSE IF Soupeř(C3) THEN // musíme blokovat soupeře tahem na stranu IF Soupeř(A3) THEN Tah(B3) ELSE IF Soupeř(C1) THEN Tah(C2) IF NOT TahProveden THEN // nenašli jsme soupeřovu nedokončenou řadu, soupeř táhl špatně IF Můj(A1) THEN //vlastníme pole A1, dokončíme diagonální řadu Tah(C3) ELSE Tah(C1)
Jak by byl úplný program velký? • zatím zahrnuje 17 možných tahů
Řešení • situace hrací plochy: • pokud začíná počítač: 9 · 7 · 5 · 3 = 945 (105) • univerzálně: 9! = 362 880 • některé nejsou dosažitelné • některé nejsou smysluplné • počítač nehraje současně za oba • výsledek: něco mezi 30 a 1329 • hrací plocha 4×4 = 2,09 · 1013 • hrací plocha 5×5= 1,55 ·1025 • papír A5≈ 1260 polí = 1,6·103361
Co z toho vyplývá • Velikost programu závisí na velikosti úlohy. • Dobrá strategie může snížit složitost úlohy o několik řádů. • Málokterá strategie je zaručená. • Blokovací strategie nefunguje vůbec. • Časová složitost řešení hrubou silou roste faktoriálem. • Délka naivního algoritmu roste skoro stejně rychle.
Časová složitost • Závislost počtu operací na velikosti vstupu. • Neříká jak dlouho to bude trvat. • Říká jak se to bude zpomalovat. • Příklad
Řešení? • Transformace úlohy na stavový prostor. • Definujeme: • možné stavy problému • možné přechody z jednotlivých stavů • počáteční stavy • cílové stavy • Celý stavový prostor můžeme reprezentovat pomocí grafu • pokud možno stromového • pokud možno konečného
Co jsme tím získali? • Úlohu jsme převedli na: • nalezení a výběr nejvhodnějšího přechodu do dalšího stavu • už jen potřebujeme zjistit co je nevhodnější stav • Můžeme to zkusit alespoň odhadnout • každý stav ohodnotíme • heuristická funkce – odhad hodnocení • vybereme ten nejlepší • pro odhad hodnocení stavu musíme zjistit i stavy, které za ním následují • algoritmus nahlíží do budoucnosti
Řešení • Hodnocení • piškvorky jsou hra s „nulovou sumou“ • viz příklad • Prohledání • úplné prohledávání do šířky • úplné prohledávání do hloubky • minimaxová metoda, prořezávání • 90% algoritmů umělé inteligence
Co dál? • Většina umělé inteligence se zabývá tím • jak hodnotit stavy • jak rychle prohledávat velké stavové prostory