Download - Umělá inteligence

Transcript
Page 1: Umělá inteligence

Umělá inteligence

proč?

Page 2: Umělá inteligence

Kdy UI nepotřebujeme?

• pokud jsme schopni vytvořit stroj, který bude úlohu řešit

• problém je algoritmizovatelný• příklad

Page 3: Umělá inteligence

Kdy UI potřebujeme?

• když to nejde

Page 4: Umělá inteligence

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

Page 5: Umělá inteligence

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

Page 6: Umělá inteligence

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

Page 7: Umělá inteligence

Zpět na zem

• Jaká je strategie pro piškvorky (3×3)?

Page 8: Umělá inteligence

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.

Page 9: Umělá inteligence

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)

Page 10: Umělá inteligence

Jak by byl úplný program velký?

• zatím zahrnuje 17 možných tahů

Page 11: Umělá inteligence

Ř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

Page 12: Umělá inteligence

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.

Page 13: Umělá inteligence

Č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

Page 14: Umělá inteligence
Page 15: Umělá inteligence
Page 16: Umělá inteligence
Page 17: Umělá inteligence

Ř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

Page 18: Umělá inteligence
Page 19: Umělá inteligence
Page 20: Umělá inteligence

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

Page 21: Umělá inteligence

Ř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

Page 22: 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