AdamátorZápiskyHlášky

Úvod do pokročilých algoritmů 1 ⬩ 18UIA1

PřednášejícíIng. Vladimír Jarý, Ph.D.
Semestrzima 2025

Inteligentní agent je cokoli, co používá umělou inteligenci k rozhodování a provádění úkolů. Skládá se ze senzorů a akčních členů, které mu umožňují interagovat s prostředím. Jeho strategii můžeme brát jako funkci z hodnoty senzorů do množiny akčních členů. V cyklu provede pozorování a na základě strategie vybere akci.

Prostředí může být

Příklad Šachy jsou prostředí úplně pozorovatelné, deterministické, diskrétní a nepřátelské.
Příklad Hra Hledání min je prostředí částečně pozorovatelné, deterministické, diskrétní a neutrální.
Příklad Řízení auta je prostředí částečně pozorovatelné, stochastické, spojité a neutrální.
Definice Algoritmus je sada přesných instrukcí, které říkají nějakému procesoru, jak řešit daný problém. Měl by být

Algoritmy můžeme navrhovat shora dolů (vzít celý problém a rozdělit ho na jednodušší části) nebo zdola nahoru (postupně budovat složitější procedury).

Příklad Mějme dvě místnosti, které mohou být čisté nebo špinavé, a čisticího robota, který je v jedné z nich. Celkem je tedy 8 možných stavů: 🤖 🤖 🤖 🤖 🤖 🤖 🤖 🤖 Algoritmus pro čištění by mohl vypadat například takto:
  1. Je-li místnost špinavá, vyčisti ji.
  2. Přesuň se do druhé místnosti.
  3. Je-li místnost špinavá, vyčisti ji.

Prohledávání grafu

Máme graf 𝒢=(𝒱,) a chceme najít cestu z s𝒱 do t𝒱. Budeme udržovat rozdělení 𝒱=EFU, kde E jsou prozkoumané vrcholy, F jsou hraniční vrcholy a U jsou neprozkoumané vrcholy.

TBD: algoritmus

Existují různé přístupy, jak z hranice zvolit vrchol:

K odhadu vzdálenosti do cíle v algoritmu A* potřebujeme nějakou heuristickou funkci na odhad vzdálenosti do cíle. Funkce by měla být optimistická, tedy odhadnutá vzdálenost by neměla převýšit skutečnou vzdálenost. Pokud jako heuristiku vezmeme nulovou funkci, dostaneme jako speciální případ Dijkstrův algoritmus.

Za domácí úkol máme implementovat prohledávání grafu v mřížce (možné různé typy mřížky) s různými algoritmy a heuristikami.

Moje řešení

Patnáctka

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Na přesunutí dlaždice máme dvě omezení:

  1. místo, kde je, musí sousedit s místem, kam ji přesouváme;
  2. místo, kam ji přesouváme, musí být prázdné.

Můžeme si to představit jako problém prohledávání grafu. Chceme-li použít A*, nabízí se dvě heuristiky:

  1. počet špatně umístěných dlaždic;
  2. součet manhattanských vzdáleností dlaždic od jejich správné pozice.

Všimněme si, že první heuristiku dostaneme odstraněním obou omezení, zatímco druhou heuristiku dostaneme odstraněním druhého omezení. To je obecně dobrý způsob, jak vymýšlet heuristiky.