7. tétel Flashcards

(24 cards)

1
Q

Állapottér reprezentációja gráffal és fával

A

▪ Állapottér: kezdeti állapot és állapotátmenet fv. definiálja
▪ Állapottér reprezentálása: gráf vagy fa
* Ha egy állapotot több csúcson keresztül is elérhetünk, akkor gráf.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Keresési algoritmusok osztályozása

A
  • Módosítható-e valahogy egy, már alkalmazott művelet hatása?
    o Nem módosítható keresők
    o Módosítható keresők
  • Használunk-e valamiféle speciális tudást a keresés során?
    o Nem informált (vak, szisztematikus) keresők: semmilyen
    információjuk nincs az állapotokról a probléma definíciójában
    megadott információn kívül.
    o Informált (heurisztikus) keresők: tudják, hogy az egyik
    közbülső állapot ígéretesebb-e, mint egy másik közbülső
    állapot.
  • Milyen irányú a keresés?
    o Előre haladó (adatvezérelt) kereső: a kezdő állapotból
    kiindulva keresünk célállapotba vezető utat.
    o Visszafelé haladó (célvezérelt) kereső: a célállapotból kiindulva
    visszafelé haladva próbáljuk rekonstruálni a kezdőállapotból
    odavezető utat.
    o Kétirányú kereső: mindkét irányból elindul és valahol
    találkozik.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Keresőfával kereső algoritmusok általános működése, az algoritmusok kiértékelése

A

Adatbázisa az állapottér-gráf egy fává egyenesített része. Az adatbázisban tárolt fa csúcsait két csoportra osztjuk:
* Zárt csúcsok (CLOSED): a már korábban kiterjesztett csúcsok.
* Nyílt csúcsok (OPEN): a még ki nem terjesztett csúcsok.
Művelet: nyílt csúcs kiterjesztése – a csúcs gyerekeinek az előállítása.
Vezérlő működése:
1. Tedd a kezdeti állapotokat az OPEN-be!
2. Amíg OPEN nem üres:
2.1. Vegyünk egy N csúcsot az OPEN-ből.
2.2. Ha N célállapot, akkor:
2.2.1. leállás – eredmény megadása
2.3. Különben:
2.3.1. N törlése OPEN-ből
2.3.2. N kiterjesztése: N gyerekeinek hozzáadása az OPEN-hez.
3. Sikertelenség kiírása
Az algoritmusok kiértékelése:
* Teljesség: ha van megoldás, azt az eljárás megtalálja.
* Optimalitás: ha több megoldás létezik, akkor megtalálja a legjobbat (legalacsonyabb költségűt).
* Időigény: mennyi időre van szükség a megoldás megkereséséhez.
* Tárigény: mennyi memóriára van szükség a megoldás megkereséséhez.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Vak keresések

A

Szélességi, mélységi, korlátozott mélységű mélységi, iteratívan mélyülő mélységi, egyenletes költségű keresés.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Szélességi keresés

A

o Kiterjesztés: a legrégebben bekerült csúcs (FIFO: OPEN lista - sor)
o Teljes
o Optimális (ha az útköltség a csomópont mélységének nem csökkenő függvénye)
o Időigény = memóriaigény: 𝑂(𝑏𝑑+1), ahol b a szomszédok maximális száma, d a legkisebb mélységű célállapot mélysége

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Mélységi keresés

A

o Kiterjesztés: LIFO (OPEN lista - verem)
o Csak akkor teljes, ha a keresési fa véges költségű.
o Nem optimális
o Időigény: 𝑂(𝑏𝑚), ahol b a szomszédok maximális száma, m a keresőfa maximális mélysége
o Memóriaigény: 𝑂(𝑏 ∗ 𝑚)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Korlátozott mélységű mélységi keresés

A

o Mélységi keresés mélységi korláttal
o A keresési fában mindig a legmélyebben lévő csomópontok valamelyikét terjeszti ki, feltéve, hogy nincs egy előre adott mélységi korlát (l) alatt.
o 𝑙 < 𝑑 esetén nem teljes o 𝑙 > 𝑑 esetén nem optimális
o Időigény: 𝑂(𝑏𝑙)
o Memóriaigény: 𝑂(𝑏 ∗ 𝑙), ahol b a szomszédok maximális száma, d a legkisebb mélységű célállapot mélysége, l a mélységi korlát.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Iteratívan mélyülő mélységi keresés

A

o Korlátozott mélységű keresés egyre növekvő mélységi korláttal.
o Redundáns, ennek ellenére ez a legjobb informálatlan kereső. o A teljesség és optimalitás a szélességi kereséssel egyezik meg.
o Időigény: 𝑂(𝑏𝑑)
o Memóriaigény: 𝑂(𝑏 ∗ 𝑑), ahol b a szomszédok maximális száma, d a legkisebb mélységű célállapot mélysége.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Egyenletes költségű keresés

A

o Kiterjesztés: először a legkisebb költségű csúcs
o Csak akkor teljes, ha minden él költsége ≥ > 0
o Csak akkor optimális, ha minden él költsége ≥ > 0
o Időigény = memóriaigény: 𝑂(𝑏1+(𝐶∗/ )), ahol b a szomszédok maximális száma, C* az optimális megoldás költsége.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Heurisztikus kereső algoritmusok, heurisztika

A

mohó legjobbat először keresés, A* algoritmus, iteratívan mélyülő A* algoritmus, rekurzív legjobbat először keresés

Heurisztika: gyakorlati tapasztalat vagy módszer, ami segít a cél elérésében és segít dönteni, hogy melyik választás a jobb.
A heurisztikus kiértékelő függvény a probléma egy állapotához egy számot rendel. Célja a feladat megoldásával járó számításigény csökkenése és adott erőforrás használat mellett a lehető legjobb megoldás megtalálása.
A keresett objektum költsége (f(n)) = megtett út költsége (g(n)) + hátralévő út költsége (h(n))

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Mohó legjobbat először keresés

A

o A kiértékelés alapja egyedül a céltól becsült távolság alapján (f(n) = h(n)) o Azt a csomópontot fejti ki a következő lépésben, amelyiknek az állapotát a legközelebbinek ítéli a célállapothoz (becslés).
o Az OPEN lista f(n) alapján rendezett.
o Teljes, de csak akkor, ha a keresési fa véges mélységű és ha n célcsúcs, akkor f(n) = 0
o Nem optimális
o Időigény = memóriaigény = 𝑂(𝑏𝑚)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

A* algoritmus

A

o Figyelembe veszi a meglátogatott csúcsok eléréséhez szükséges költséget is
(f(n) = g(n) + h(n)).
o Az OPEN listáról azt az elemet terjeszti ki, amelyiknek a legkisebb az f(n) értéke. o Az OPEN lista f(n) alapján rendezett.
o A memóriaigényt a heurisztika határozza meg (ha h(n) = 0, akkor a keresés egyenletes, ha h(n) egy tökéletes becslés, akkor az algoritmus egyenesen a célba megy).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Iteratívan mélyülő A* algoritmus

A

o Az iteratívan mélyülő mélységi algoritmus adaptálása heurisztikus keresésre. o Mélységi korlát helyett jósági korlát f(n)-re.
o Jósági korlát meghatározása: hatékonyabb, ha az aktuális korlátot nem léptetve növeli, hanem az előző iterációs ciklusban választja ki. A vágási érték az a legkisebb f költség, ami az előbbi iterációban használt vágási értéknél nagyobb.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Rekurzív legjobbat először keresés

A

o A mohó legjobbat először algoritmuson alapul.
o Tárolja a rendelkezésre álló legjobb alternatíva f értékét. Ha az aktuális f érték meghaladja azt, akkor visszalép a legjobb alternatíva útjára. A visszalépés közben lecseréli az elhagyott ág f értékét a legjobb gyerekének f értékére, így az elhagyott ág újból folytatható. o Optimális algoritmus, feltéve, hogy a h(n) heurisztikus függvény elfogadható.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Lokális kereső algoritmusok, működésük

A

hegymászó algoritmus, szimulált lehűtés algoritmusa.

A lokális keresők egyetlen állapottal, az aktuálissal foglalkoznak és az egyik szomszédos állapotukba viszi át őket. A megoldási utat nem kell nyilvántartani, ennél fogva minden keresés lokális. Működésük lényege egy optimalizációs eljárás, melyben egy célfüggvény értékét próbálják maximalizálni / minimalizálni.
Működésük általános algoritmusa:
1. Válasszunk egy véletlen kezdőállapotot.
2. Értékeljük ki az állapotra jellemző célfüggvényt.
3. Hajtsunk végre lokális módosítást ezen az állapoton (lépjünk egy szomszéd állapotba).
4. Ismételjünk a 2. lépéstől addig, míg a célállapotba nem érünk, vagy nincs az algoritmusnak megfelelő lokális módosítás.
Előnye, hogy kis memóriaigényű, valamint nagy vagy végtelen keresési térben jobban alkalmazható. Ezen esetekhez ésszerű megoldást talál.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Hegymászó keresés

A

o A keresés egy ciklus, ami mindig a leginkább javuló értékek irányába lép.
o Az algoritmus megáll, amikor felér egy olyan csúcsra, ahol nincsenek már magasabb értékű szomszédjai.
o Gyors, viszont gyakran lokális minimumot / maximumot talál

17
Q

Szimulált lehűtés algoritmus

A

o Cél a lokális maximumok / minimumok kiküszöbölése. o A hegymászó algoritmus és véletlen séta kombinációja.
o Ellentétben a hegymászó algoritmussal, nem a legjobb szomszéd irányába megy, hanem random választ a szomszédok közül. Ha a kiválasztott szomszédos állapot jobb, mint a jelenlegi, akkor odalép. Ha rosszabb, akkor 1-nél kisebb valószínűséggel választja, vagy nem csinál semmit.

18
Q

Populáció keresők

A

nyaláb keresés, PSO algoritmus, genetikus algoritmus

19
Q

Nyaláb keresés

A

o A hegymászó algoritmus általánosítása populációval.
o k db véletlen állapotból indul ki. Minden ciklusban veszi ezen populációk közvetlen követőit, s ezen halmazból a k db legjobbat választja következő állapotoknak. o Hátránya, hogy az állapotok gyorsan koncentrálódhatnak a tér egy kis részére.

20
Q

Részecske raj optimalizálás (PSO) algoritmus

A

o Alapgondolata: a részecskék a rajban a lehetséges megoldásokat jelképezik. Minden részecske az optimumot keresi. Minden részecske mozog és van egy sebessége. Minden részecske emlékszik az eddigi legjobb pozíciójára. A részecskék a rajban kooperálnak. Kicserélik az információt azokról a helyekről, ahol már jártak.
o A sebességet befolyásolja a részecskék tehetetlensége, az eddigi saját legjobb pozíciója, a raj eddigi legjobb pozíciója. o Komponensei:
▪ Kognitív komponens: saját tapasztalat
▪ Szociális komponens: hit a társak tapasztalatában

21
Q

Genetikus algoritmus

A

o Alapötlet: genetika és a természetes kiválasztódás o Fogalmak:
▪ Egyed: egy lehetséges megoldás / állapot.
▪ Populáció: egyedek halmaza.
▪ Rátermettség (fitness-függvény): a rátermettebb egyed magasabb fitness értékkel rendelkezik.
▪ Genetikus kód: az egyed reprezentációja.
▪ Genetikus műveletek: keresztezés, mutáció

o Az algoritmus általános leírása:
▪ k db véletlen állapot kiválasztása
▪ Iteratívan ismételjük az alábbi lépéseket:
* Fitness-értékek meghatározása az egyedekre
* Egyedek kiválasztása szaporodásra (a rátermettebb egyedek
választásának valószínűsége a nagyobb)
* Új generáció létrehozása (két szülő keresztezésével vagy
mutációval)
* Leállási feltétel ellenőrzése (nem javul a fitness érték, vagy az
adott generációszámot elérjük)

22
Q

Kétszemélyes játékok

A

Többágenses környezetben minden ágensnek számolnia kell más ágensek cselekedeteivel és azzal, hogy a többi ágens cselekedet hogyan befolyásolják az ő jólétét. A többágenses környezet lehet kooperatív és kompetitív.
A kétszemélyes játék olyan két ágenst tartalmazó versenykörnyezet, ahol az ágensek céljai konfliktusban vannak.
Kétszemélyes teljes információjú játékok tulajdonságai:
* Két játékos lép felváltva egymás után a megadott szabályok szerint.
* Mindkét játékos birtokában van a játékkal kapcsolatos összes információnak.
* Nincs szerepe a véletlennek, szerencsének.
* A játékban minden egyes állásában véges számú szabályos lépések közül lehet választani.
* A játék szabályai olyanok, hogy végtelen játszmák nem fordulhatnak elő.
* A játszmák végén az egyik játékos nyer, míg a másik veszít, ill. bizonyos esetekben döntetlen eredmény is elképzelhető.
* A játék végén a hasznosságértékek mindig azonosak, csak ellentétes előjelűek vagy döntetlenek.

23
Q

Minimax algoritmus

A

Egy lehetséges lejátszás: célállapothoz vezető lépések szekvenciája.
Cél: a játékfát a legjobb lépés felhasználására felhasználni.
A gyökér csomópont MINIMAX értéke: a csomópont hasznossága MAX szemszögéből, feltéve, hogy MAX lép először. A nagy érték MAX-nak jó, a kisebb érték MIN-nek jó.
Algoritmusa:
1. A játékfa adott mélységű generálása.
2. Leveleknek megfelelő állások pontértékeinek meghatározása.
3. Maximális ill. minimális értékek visszaadása a fában, egészen a gyökérig.
4. Választás a gyökér értékével megegyező utódokba vezető lépések között.

24
Q

Alfa-béta vágás algoritmus

A

Alapötlet: lehetséges a korrekt minimax döntés kiszámítása anélkül, hogy a játékfában minden csomópontra rá kelljen nézni.
Új paraméterek:
* Alfa: biztos, hogy MAX ki tudja kényszeríteni: az a minimális érték, amit MAX már biztosított magának.
* Béta: biztos, hogy MIN ki tudja kényszeríteni: az a maximális érték, amit MIN már biztosított magának.
Az alfa értékek csak növekedhetnek, a min értékek csak csökkenhetnek a kiértékelés során.
Alfa értéke: ha ismerjük egy MAX szinten lévő csúcs egyik utódjának értékét, akkor ez alsó korlátja az adott csúcs értékének. Ezt az alsó korlátot nevezzük alfa értékének.
Béta értéke: ha ismerjük egy MIN szinten lévő csúcs egyik utódjának értékét, akkor ez felső korlátja az adott csúcs értékének. Ezt az alsó korlátot nevezzük béta értékének.
Alfa vágás: egy MIN csúcs alatti kiértékelést nem kell folytatni, ha a hozzá tartozó béta érték kisebb vagy egyenlő, mint ezen csúcs valamelyik MAX őséhez tartozó alfa érték.
Béta vágás: egy MAX csúcs alatti kiértékelést nem kell folytatni, ha a hozzá tartozó alfa érték nagyobb vagy egyenlő, mint ezen csúcs valamelyik MIN őséhez tartozó béta érték.