Umělá inteligence
description
Transcript of Umělá inteligence
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.
ImplementaceIF PrvníTah THEN Tah(B2)ELSE IF DruhýTah THEN // máme provést druhý tah // najdeme volnou 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)
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 pravidloIF 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)
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