Mesterséges Intelligencia

Embed Size (px)

Citation preview

  • 8/18/2019 Mesterséges Intelligencia

    1/61

    1

    Mesterséges intelligencia 

    Gregorics Tibor

     people.inf.elte.hu/gt/mi

    Gregorics Tibor Mesterséges intelligencia 

    Könyvek   –  Fekete István - Gregorics Tibor - Nagy Sára: Bevezetés a mesterséges

    intelligenciába, LSI Kiadó, Budapest, 1990, 1999. ELTE-Eötvöskiadó, Budapest, 2006.

     –  Russel, J. S., Norvig, P.: MI - modern megközelítésben, Panem Kft,2005.

     –  Futó Iván (szerk ): Mesterséges intelligencia, Aula Kiadó, Budapest,1999.

    Internet

     –   Neptun / MeetStreet / Virtuális terek / tantárgy / dokumentumok  

     –  http://www.inf.elte.hu/karunkrol/digitkonyv/Jegyzetek/mi.pdf

    Szakirodalom

    Gregorics Tibor Mesterséges intelligencia 

    I. Bevezetés 

    Gregorics Tibor Mesterséges intelligencia 

    Gyenge MI

     Az MI kutatja, fejleszti, rendszerezi azokat az elméleteket ésmegoldási módszereket, amelyek hozzájárulnak az intelligens

     gondolkodás számítógéppel való reprodukálásához .

    1. AZ MI FOGALMA mesterséges intelligencia MI (artificial intelligence - AI) 

    Gregorics Tibor Mesterséges intelligencia 

    Erős MI 

    Az emberi gondolkodásreprodukálható számítógéppel. 

    MI szkeptikusok

    A számítógép sohanem lesz okosabb az

    embernél. 

    MI nem egy speciális részterülete az informatikának, hanem egy törekvés, hogy a számítógéppel olyan érdekes és nehéz problémákat 

    oldjunk meg, amelyek megoldásában az ember jobb. 

    romantikus korszak

    Gregorics Tibor Mesterséges intelligencia 

    1960 1970 1980 1990 2000 20101956

    mindenféle problémát általános eszközökkel 

    Projektek:

    kétszemélyes játékok beszélgető program (ELIZA,1966),

    Módszerek :GPS, rezolúció (1966),Lisp (1958),

    mesterséges neuronhálózatok, 

    evolúciós algoritmusok  

    Történelem Illesztési szabályok   ön  engem  . 

    Úgy érzem, hogy ön mostanában engem un.  Miért gondolja, hogy ön  én  ?

     Miért gondolja, hogy ön úgy érzi, hogy én mostanában unom?

    Emlékezési szabályok  Folytatási szabályok  

     specializálódás 

    Gregorics Tibor Mesterséges intelligencia 

    1960 1970 1980 1990 2000 2010

    romantikus korszak

    mindenféle problémát általános eszközökkel 

    klasszikus korszak

    speciális problémákatspeciális módszerekkel 

    Projektek:

    SHRDLU (1972),

    BACON, AM,

    DENDRAL (1969-78),

    MYCIN (1976)

    Módszerek : Prolog,heurisztikus keresések,

    ismeretábrázolási módszerek

    Történelem  specializálódás 

  • 8/18/2019 Mesterséges Intelligencia

    2/61

    2

    Gregorics Tibor Mesterséges intelligencia 

    1960 1970 1980 1990 2000 2010

    Projektek:

    XCON (1982),

    PROSPECTOR(1979)

    Módszerek :shell-ek,

    ismeretalapú technológia,nem-monoton következtetés,

     bizonytalanság kezelés 

    romantikus korszak

    mindenféle problémát általános eszközökkel 

    klasszikus korszak

    speciális problémákatspeciális módszerekkel 

    ipari korszak

    szakértő rendszerek  ismeretalapú rendszerek  

    Történelem  specializálódás 

    Gregorics Tibor Mesterséges intelligencia 

    1960 1970 1980 1990 2000 2010

    Projektek:Deep Blue (1997)

    IBM Watson (2011)

    logisztika

    űrkutatás robotika

    Módszerek :alakzat-felismerés tanulás ontológia elméletágens szemlélet 

    romantikus korszak

    mindenféle problémát általános eszközökkel 

    klasszikus korszak

    keresési problémákatspeciális módszerekkel 

    ipari korszak

    szakértő rendszerek  ismeretalapú rendszerek  

    MI tél, majd reneszánsz

    hibrid technológiák,matematikai háttér  

    Történelem  specializálódás 

    Megoldandó feladat: nehéz  –  A feladat problématere hatalmas.

     –  A megoldás megtalálása intuíciót, kreativitást igényel,amely heurisztikaként épül be a megoldó programba azért,hogy elkerüljük a kombinatorikus robbanást.

    Szoftver viselkedése: intelligens ‒  Úgy gondolkodik, mint az ember. 

    Felhasznált eszközök : sajátosak   ‒  Átgondolt reprezentáció a feladat modellezéséhez .

     ‒  Heurisztikával megerősített hatékony algoritmusok .

     Miről ismerhető felegy szoftverben az MI?

    Gregorics Tibor Mesterséges intelligencia 

    Turing teszt

    • term. nyelvű kommunikáció • megszerzett ismeret tárolása • automatikus következtetés • tanulás+ gépi látás, gépi cselekvés 

    Miért nem elég, ha ad egy jómegoldást? Miért legyen„emberi” annak előállítása? 

    2. MODELLEZÉS & KERESÉS 

    Gregorics Tibor Mesterséges intelligencia 

    Állapottér reprezentáció Probléma redukció Probléma dekompozíció Korlátprogramozási modell Logikai reprezentációk  

     probléma útkeresési

    feladatmegoldás 

    Lokális keresések  Visszalépéses keresés Gráfkeresések  Evolúciós algoritmus Rezolúció Szabályalapú következtetés 

    modellezés  keresés 

    gráfreprezentáció 

     Problématér elemei : probléma lehetséges válaszai.

    Cél : egy helyes válasz megtalálása 

     Keresést segítő ötletek :

    - Problématér hasznos elemeinek kijelölése. 

    - Az elemek szomszédsági kapcsolatainak felderítése. 

    • Egy kiinduló elemből indulunk el, és egy elemvizsgálata után annak „szomszédjaival”foglalkozunk.

    -

    Adott pillanatban látható elemek rangsorolása.

     Mire kell a modellezésnek fókuszálni 

    Gregorics Tibor Mesterséges intelligencia 

    Útkeresési probléma

    Egy probléma modelljét valamilyen modellezési módszersegítségével írjuk le. Ezek a módszerek sokszor útkeresési

     problémává fogalmazzák át a kitűzött feladatot, és ilyenkora megoldást egy speciális élsúlyozott irányított gráfbankeressük  

    • vagy egy célcsúcs

    • vagy egy startcsúcsból célcsúcsba vezető út 

    • vagy a legolcsóbb startcsúcsból célcsúcsba vezető út. 

    formájában. 

    A gráf nagy mérete miatt mindhárom esetben speciális (nem

    szisztematikus) útkereső algoritmusra van szükség. 

    Gregorics Tibor Mesterséges intelligencia 

  • 8/18/2019 Mesterséges Intelligencia

    3/61

    3

    Gráf fogalmak 1.

    csúcsok, irányított élek    N, A N  N   (végtelen számosság)

    él n- ből m-be  (n,m) A (n,m N)

    n utódai  (n) = {m N (n,m) A}

    n szülei (n)  (n) = {m N (m,n) A}

    irányított gráf    R=(N,A) 

    véges sok kivezető él   (n) <  (n N ) 

    élköltség  c:A→ℝ 

      -tulajdonság (ℝ+) c(n,m)   > 0 ((n,m) A)    -gráf   -tulajdonságú,véges sok kivezető

    élű, élsúlyozott irányított gráf  Gregorics Tibor Mesterséges intelligencia 

    Gráf fogalmak 2.

    irányított út    = (n,n1 ),(n1 ,n2 ),...,(nk-1 ,m) 

    =  n⟶  m, n⟶m,

    n⟶ M , {n⟶m}, {n⟶ M }( M  N )

    út hossza  az út éleinek száma:     (= k )

    út költsége  c(   ) és  c (n,m):=i c(ni-1 ,ni ) 

    opt. költség  c*(n,m):= min {n⟶m} c

     (n,m)

    c*(n,M):= min {n⟶ M } c

     (n,m)

    opt. költségű út  n⟶*m := minc{     {n⟶m} }n⟶* M := minc{     {n⟶ M } }

    -gráfokban ez végtelen sokút esetén is értelmes. 

    Értéke∞, ha nincs egy út se. 

    Gregorics Tibor Mesterséges intelligencia 

    Gráfreprezentáció fogalma 

    Egy útkeresési probléma rendelkezik egy (a problémamodellezéséből származó) gráfreprezentációval, amiegy ( R,s,T ) hármas, amelyben

     –  R=( N,A,c) -gráf  az ún. reprezentációs gráf , –  az s N  startcsúcs,

     –  a T  N  halmazbeli célcsúcsok . és a probléma megoldása: 

    egy t T  cél megtalálása, vagy egy s⟶T , esetleg s⟶*T  optimális út megtalálása 

    Gregorics Tibor Mesterséges intelligencia 

     Keresés 

    Gregorics Tibor Mesterséges intelligencia 

    Az útkeresési problémák megoldásához egystartcsúcsból célcsúcsba vezető utat kell megtalálnunkúgy, hogy a kereső algoritmus 

    a startcsúcsból indul

    miután megvizsgálta az aktuális csúcsot annak

    szomszédjára lép  tárolja a keresés során feltárt reprezentációs gráf egy

    részét

    megáll, ha elért egy célcsúcsot 

     Kereső rendszer (KR) 

    Procedure  KR 

    1. ADAT := kezdeti érték  2. while terminálási  feltétel (ADAT) loop3. SELECT SZ FROM alkalmazható szabályok  4. ADAT := SZ(ADAT)

    5. endloop

    end

    Gregorics Tibor Mesterséges intelligencia 

     globális munkaterület  

    a keresés során megszerzett ésmegőrzött ismeretet tárolja (kezdeti érték, terminálási  feltétel )

    keresési szabályok  

    globális munkaterülettartalmát változtatják meg(előfeltétel, hatás)vezérlési stratégia 

    végrehajtható szabályok közül

    kiválaszt egy „megfelelőt”(általános elv + heurisztika)

    A globális munkaterületen a reprezentációs gráf egyrészgráfja jelenik meg.  –  vagy csak egy csúcs, esetleg annak közvetlen szomszédjai

     –  vagy a startcsúcsból kivezető egyik út kezdőszakasza 

     –  vagy a startcsúcsból kivezető összes út kezdőszakasza 

    A keresési szabályok  ezt a globális munkaterületen tároltrészgráfot módosítják   –  lecserélnek egy csúcsot valamelyik szomszédjára 

     –  hozzávesznek egy tárolt út végéhez egy onnan kiinduló élt 

     –  törölnek egy tárolt út végéről egy élt

    A vezérlési stratégia a fenti szabályokból válogat 

     Kereső rendszer és a reprezentációs gráf  

    Gregorics Tibor Mesterséges intelligencia 

  • 8/18/2019 Mesterséges Intelligencia

    4/61

    4

     helyes-e (azaz korrekt választ ad)  teljes-e (minden esetben választ ad)

     optimális-e (optimális megoldást ad) 

     idő bonyolultság 

     tár bonyolultság 

     Kereső rendszerek vizsgálata 

    Gregorics Tibor Mesterséges intelligencia 

  • 8/18/2019 Mesterséges Intelligencia

    5/61

    II. Állapottér -reprezentáció 

    Gregorics Tibor Mesterséges intelligencia 

     Állapottér -reprezentáció elemei 

     Állapottér : a feladat fókuszában álló adat-együttes

    (objektum) lehetséges értékeinek (állapotainak) halmaza 

    egy állapot többnyire egy összetett szerkezetű érték,amelynek gyakran meg kell felelnie egy invariáns állításnak is. 

     Műveletek : állapotból állapotba vezetnek

    megadásukhoz: előfeltétel és hatás-leírás 

    invariáns tulajdonságot tartó leképezés 

     Kezdő állapot(ok) vagy azokat leíró kezdőfeltétel 

     Célállapot(ok) vagy célfeltétel 

    Gregorics Tibor Mesterséges intelligencia 

    Olyan mint egy adattípus. 

    1 2 3 1 2 3

    3 2 

    3 2 

     Hanoi tornyai probléma 

     Állapottér :  AT = {1,2,3}n 

    megjegyzés : a tömb i-dik eleme mutatja az i-dik korong rúdjának számát; akorongok a rudakon méretük szerint fentről lefelé növekvő sorban vannak.  

     Művelet : Rak (honnan, hova):AT →AT

    HA  a honnan és hova létezik és nem azonos, és van korong a honnan rúdon, és a hova rúd üres vagyannak legfelső korongja nagyobb honnan rúd legfelső korongjánál 

    AKKOR this[honnan legfelső korongja] := hova (this: AT )

    [3,3,3] [1,1,1]

    Gregorics Tibor Mesterséges intelligencia 

    Célállapot   Kezdőállapot  

    1..n intervallummal indexelt

    egydimenziós tömb, amelynek  elemei {1,2,3} halmazbeliek.

     Implementáció 

    Gregorics Tibor Mesterséges intelligencia 

    templ te cl ss Hanoi {

    int  a[n]; // its elements are between 1 and 3

    public :

    bool Move (int from, int  to) {

    if ((from3 || to3) && (from!=to)) return f lse;

    bool  l1; int  i; // i ~ upper disc on ‘from’ ; l1 ~ ‘from’ is not empty

    for(l1=f lse, i=0; !l1 && i

  • 8/18/2019 Mesterséges Intelligencia

    6/61

     Állapot - gráf bonyolultsága 

    Az útkeresés hatékonysága a problématér bonyolultságátólfügg, amit állapottár -reprezentáció esetén az állapot-gráf

     bonyolultsága határoz meg.  csúcsok és élek száma

    Hanoi: 3n csúcs  a csúcsok átlagos ki-foka 

    Hanoi: 3 

    start csúcsból kivezető utak száma az oda-vissza lépések nélkül Hanoi:

    a k  hosszú utak száma, : 2k ,a legfeljebb k  hosszú utak száma 1+2+…+ 2k , azaz 2k+11

    körök hosszának sokfélesége, a körök gyakorisága Hanoi: 2, 3, 6, 7, 9, … 

    Gregorics Tibor Mesterséges intelligencia 

     Állapottér vs. problématér  

    A megoldás általában egy olyan műveletsorozat (irányítottút), amelyik a kezdő állapotból (start csúcsból) egy célállapotba (célcsúcsba) vezet. 

    Állapottér reprezentáció esetén a problématér nemfüggetlen az állapottértől, de nem azonos a problématérrel,hiszen a problématér elemei azok az állapot-sorozatok,amelyek a műveletek segítségével a kezdő állapotbólindulnak.

    Gregorics Tibor Mesterséges intelligencia 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    n-királynő probléma 1. 

     Állapottér : AT  = {♛ , _  }n×n 

    invariáns: egy állapot (tábla)  pontosan n darab királynőt tartalmaz 

     Művelet :   Áthelyez (x,y,u,v):AT → AT

    HA 1≦ x,y,u,v ≦n és this[ x,y]=♛ és this[u,v]= _  

    AKKOR this[ x,y]  this[u,v] 

    általános állapot   célfeltételnek megfelelő állapot  

    ♛ ♛ 

    Gregorics Tibor Mesterséges intelligencia 

    kétdimenziós tömb (n×n-es mátrix),mely elemei {♛ , _  } halmazbeliek

    this:AT  az aktuális állapot 

    csere 

    ♛ ♛ ♛ ♛ 

    ♛ ♛ ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

     Állapot - gráf részlet  

    Gregorics Tibor Mesterséges intelligencia 

    ♛ ♛ ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    csúcsok száma: 

     

     

     

     

    n

    n2

    adott csúcsból induló khosszú utak száma:(n*(n2n)) k  

    csúcsok átlagos ki-foka:n*(n2n) 

    Csökkentsük a problématér méretét  

    Az előző reprezentációnál a problématér mérete, azaz alehetséges utak száma, óriási. 

    Sok modellje lehet ugyanannak a feladatnak: keressünk minélkisebb problématerűt. 

    o Bővítsük az állapotteret az n-nél kevesebb királynőt tartalmazóállásokkal, és használjunk új műveletet : királynő-felhelyezést.A pontosan n hosszú utak (ilyen a jó megoldás is) száma: ∙n! 

    o Műveletek előfeltételének szigorításával csökken az állapot-gráfátlagos ki-foka:- Sorról sorra haladva egy-egy királynőt helyezzünk fel a

    táblára! Ekkor az n hosszú utak száma: nn.- Ütést tartalmazó állásra ne tegyünk királynőt! 

    Gregorics Tibor Mesterséges intelligencia 

    ♛ ♛ 

    n-királynő probléma 2. 

    kezdőálla pot   célállapot  

    Gregorics Tibor Mesterséges intelligencia 

     Állapottér : AT = {♛ , _  }n×n 

    invariáns: az első néhány sor egy-egy királynőt tartalmaz 

     Művelet :  Helyez (oszlop): AT → AT (this:AT ) 

    HA 1≦ oszlop ≦n és a this -beli királynők száma < n és nincs ütés 

    AKKOR this[ sor,oszlop] :=♛  ahol „sor” a soron következő üres sor  

    ♛ 

    ♛ 

    ♛ ♛ 

    közbülső állapot  

  • 8/18/2019 Mesterséges Intelligencia

    7/61

    ♛  ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ ♛ 

    ♛ ♛ ♛ 

    ♛ 

    ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ 

    ♛ ♛ ♛ 

    ♛ ♛ 

    ♛ 

    ♛ ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

     Állapot - gráf  

    Gregorics Tibor Mesterséges intelligencia 

    start

    cél 

    lehetséges megoldások: nn 

    csúcsok: (nn+1 1) / (n 1)

    kivezető élek: n

     Művelet végrehajtásának hatékonysága 

    A művelet kiszámítási bonyolultsága csökkenthető, ha o az állapotteret (vagy annak invariánsát) szigorítjuk éso a művelet hatását ennek megfelelően módosítjuk  

    Például o Az állapot tartalmazhatná a tábla soron következő üres sorának

    számát ahelyett, hogy mindig kiszámoljuk. Egy új állapotban eza szám a megelőző állapot ilyen számánál eggyel nagyobb.  

    o Tárolhatnánk, hogy mely üres mezőket tartanak már ütés alatt akirálynők , (ezeket a művelet végrehajtásakor egy újabb királynőelhelyezése esetén kell bejelölni), így könnyebben eldönthető,hogy egy új királynő ütni fogja-e az előzőeket vagy sem. 

    Gregorics Tibor Mesterséges intelligencia 

    ♛  

       

    ♛   

       ♛  ♛     

     

     

      ♛  ♛  

        

         

    n-királynő   probléma 3. 

    kezdőállapot: kövsor  = 1

    célállapot :kövsor  = 5 

    Gregorics Tibor Mesterséges intelligencia 

     Állapottér : AT = rec(t :{♛,  , _  }n×n, kövsor  : ℕ)invariáns: királynők nem ütik egymást (ÚJ),

    kövsor ≦n+1,az első kövsor ‒ 1 darab sor egy-egy királynőt tartalmaz,  egy királynő által ütött üres mezőt jelöli,

     _  az ütésben nem álló (szabad) üres mezőt jelöli. 

    közbülső állapot: kövsor  = 3

    n-királynő   probléma 3.  folytatás 

     Művelet : új királynő elhelyezése a soron következő üres sorszabad mezőjére 

    Helyez (oszlop): AT → AT (this: AT )

    HA 1≦ oszlop ≦n és this.kövsor  ≦ nés this.t [this.kövsor  ,oszlop]=_

    AKKOR this.t [this.kövsor  ,oszlop] := ♛ d   , d +:= this.kövsor  oszlop, this.kövsor +oszlopi[this.kövsor +1..n] ,  j[1..n] : this.t [i,j]:= 

    feltéve, hogy  j=oszlop vagy i  j=d   vagy i+ j=d +: this.kövsor :=this.kövsor +1

     Kezdőállapot : this.t egy üres mátrix , this.kövsor :=1 Célállapot : this.kövsor >n

    Gregorics Tibor Mesterséges intelligencia 

     Állapot - gráf  

     ♛          

      ♛     

        

       ♛   

          

    ♛      ♛          

    ♛       ♛         

     ♛      ♛       

      ♛  ♛          

       ♛ ♛            

       ♛  ♛           

    ♛       ♛  ♛       

     ♛      ♛ ♛        

      ♛  ♛       ♛     

       ♛ ♛      ♛      

     ♛      ♛ ♛      ♛  

      ♛  ♛       ♛  ♛   

    Gregorics Tibor Mesterséges intelligencia 

    ♛            

    start

    cél 

    Tologató játék (8-as, 15-ös) 

     Állapottér : AT = rec( mátrix :{0..8}3×3 , üres :{1..3}×{1..3} )

    invariáns: egy állapot mátrixának  sorfolytonos kiterítése a 0 .. 8 számokegy permutációja, az üres hely a 0 elem mátrixbeli sor és oszlopindexe. 

     Művelet :  Tol (irány): AT → AT

    HA irány∊{(1,0),(0,1),(-1,0),(0,-1)} és

    (1,1) ≦ this.üres+irány ≦ (3,3)  (this: AT ) AKKOR this.mátrix[this.üres]  this.mátrix[this.üres +irány]

    this.üres := this.üres +irány

    Gregorics Tibor Mesterséges intelligencia 

    célállapot:szokásos 

    kezdőállapot:tetszőleges 

    8  3 1 7 

    6  4 5 

    1  2  3 4 

    7  5 6 8 

    koordinátánként értendő 

  • 8/18/2019 Mesterséges Intelligencia

    8/61

    2 8 3

    1 6 4

    7 5

    2 8 3

    1

    6

    4

    7 5

    2 8 3

    1 6 4

    7 5

    2 8 3

    1 6 4

    7 5

    2

    8

    3

    1

    6

    4

    7 5

    2 8 3

    1

    6

    4

    7 5

    2 8 3

    1

    6

    4

    7 5

    2 8 3

    1 6

    47 5

    2 8 3

    1

    6 4

    7 5

    2

    8 3

    1

    6 4

    7 5

    2 8 3

    1

    6 4

    7 5

    2

    8 3

    1

    6

    4

    7 5

    2 8 3

    1

    6

    47

    5

    2

    8

    3

    1

    6

    4

    7 5

    2

    8

    3

    1

    6

    4

    7 5

    2 8

    31

    6

    4

    7 5

    2 8 3

    1

    6

    4

    7

    5

    2 8 3

    1 6

    47 5

    2 8

    31 6

    47 5

    2

    8

    31

    6

    4

    7 5

    2

    8

    3

    1

    6

    4

    7 5

    2

    8

    31

    6

    4

    7 5

    2

    8

    31

    6

    47

    5

    2

    8 3

    1

    6

    4

    7 5

    2

    8 3

    1

    6

    4

    7 5

    2

    8 31

    6

    4

    7 5

    2 8 3

    1

    6

    47

    5

    2 8 3

    1

    6

    4

    7

    5

    2 8 3

    1

    6

    4

    7

    5

    2 8 3

    1

    647

    5

     Állapot - gráf  

    2 8 3

    1

    647

    5

    2 8 3

    1

    47

    65

    2 8 3

    1

    47

    65

    8 31

    6

    4

    7 5

    2 8

    1 3

    7

    2 4

    6 5

    1

    2

    3

    8

    6

    4

    7 5

    start

    cél 

     Hogyan „látja” egy keresés areprezentációs gráfot? 

    Gregorics Tibor Mesterséges intelligencia 

    a

     b c

    d

    a b

    d

    c

    a b

    eredeti gráf:  keresés által látott gráf: 

    e f

    g

    Egy keresés fokozatosan fedezi fel a reprezentációs gráfot: bizonyos részeihez el sem jut és a felfedezett részt semfeltétlenül tárolja el teljesen. Gyakran azt sem vizsgálja megegy csúcsról, hogy korábban felfedezte-e már, új csúcskéntregisztrálja azt, ezért torzultan „látja” a reprezentációs gráfot. 

     b start

     Reprezentációs gráf „fává egyenesítése” 

    Ha a keresés nem vizsgálja meg egy csúcsról, hogy korábbanmár felfedezte-e, akkor valójában az eredeti reprezentációsgráfnak egy olyan fává kiegyenesített változatában keres, aholegy csúcs annyiszor szerepel, ahány különböző úton el lehet

     jutni hozzá a startcsúcsból. 

     Előny:  eltűnnek a körök, de a megoldási utak megmaradnak   Hátrány: nő a méret: duplikátumok, végtelen hosszú utak  

    A kétirányú (oda-vissza) élek jelentősen megnövelik akiegyenesített fa méretét, ha azokat nem szűrjük ki. Mindenkeresésbe beépíthető a megelőző aktuális csúcs (szülőcsúcs)tárolása, hogy az aktuális csúcsból ide visszavezető éltfelismerjük és figyelmen kívül hagyjuk. 

    Gregorics Tibor Mesterséges intelligencia 

    2 8 3

    1 6 4

    7 5

    2 8 3

    1

    6

    4

    7 5

    2 8 3

    1 6 4

    7 5

    2 8 3

    1 6 4

    7 5

    2

    8

    3

    1

    6

    4

    7 5

    2 8 3

    1

    6

    4

    7 5

    2 8 3

    1

    6

    4

    7 5

    2 8 3

    1 6

    47 5

    2 8 3

    1

    6 4

    7 5

    2

    8 3

    1

    6 4

    7 5

    2 8 3

    1

    6 4

    7 5

    2

    8 3

    1

    6

    4

    7 5

    2 8 3

    1

    6

    47

    5

    2

    8

    3

    1

    6

    4

    7 5

    2

    8

    3

    1

    6

    4

    7 5

    2 8

    31

    6

    4

    7 5

    2 8 3

    1

    6

    4

    7

    5

    2 8 3

    1 6

    47 5

    2 8

    31 6

    47 5

    2

    8

    31

    6

    4

    7 5

    2

    8

    3

    1

    6

    4

    7 5

    2

    8

    31

    6

    4

    7 5

    2

    8

    31

    6

    47

    5

    2

    8 3

    1

    6

    4

    7 5

    2

    8 3

    1

    6

    4

    7 5

    2

    8 31

    6

    4

    7 5

    2 8 3

    1

    6

    47

    5

    2 8 3

    1

    6

    4

    7

    5

    2 8 3

    1

    6

    4

    7

    5

    2 8 3

    1

    647

    5

     Állapot - gráf fa alakban 

    2 8 3

    1

    647

    5

    2 8 3

    1

    47

    65

    2 8 3

    1

    47

    65

    8 31

    6

    4

    7 5

    2 8

    1 3

    7

    2 4

    6 5

    1

    2

    3

    8

    6

    4

    7 5

    start

    cél 

    2 8 3

    1

    647

    52

    8

    31

    6

    4

    7 5

    duplikátum 

    duplikátum 

    cél 

     Fekete- fehér kirakó 

     Egy n+m+1 hosszú sínen n fekete és m fehér lapka és egy üres helyvan. Egy lapkát szomszédos üres helyre tolhatunk vagy a szomszéd felett üres helyre ugrathatunk. Kezdetben a feketék után jönnek a fehérek, majd az üres hely. Kerüljenek a fehérek a feketék elé! 

     Állapottér : AT = rec(v : { B, W, _ }n+m+1, üres : [1.. n+m+1])invariáns: n darab B, m darab W , 1 üres hely, üres az üres hely indexe

     Műveletek : TolBal, TolJobb, UgrikBal, Ugr ikJobb : AT → AT

    TolBal  : HA  this.üres1 (this : AT ) 

    AKKOR   this.v[this.üres-1]  this.v[this.üres]

    this.üres :=this.üres-1 Kezdőállapot : [ B, … , B , W, … , W, _ ]

    Célállapot : i,j [1.. n+m+1], i

  • 8/18/2019 Mesterséges Intelligencia

    9/61

     Misszionárius - kannibál probléma 

    n misszionárius és n kannibál át akar kelni egy folyón egy h személyes

    csónakban …  Állapottér : AT = rec(m : [0..n] , k : [0..n] , c : )

    invariáns: nincs emberevés, azaz I(m,k)  m=k  m=0  m=n

     Kezdőállapot : (n,n,igaz) Célállapot : (0,0,hamis)

     Műveletek :Oda (x,y): AT → AT Vissza (x,y): AT → AT (this : AT ) 

    HA this.c és 0≦ x ≦this.m HAthis.c és 0≦ x ≦n – this.m 

    és 0≦ y ≦this.k és 0

  • 8/18/2019 Mesterséges Intelligencia

    10/61

    1

    III. Keresések  

    Gregorics Tibor Mesterséges intelligencia 

     KR vezérlési szintjei 

    Gregorics Tibor Mesterséges intelligencia 

    ADAT := kezdeti érték  

    while  terminálási  feltétel (ADAT) loopSELECT SZ FROM alkalmazható szabályok  

    ADAT := SZ(ADAT)

    endloop

    vezérlési stratégia 

    elsődleges másodlagos  heurisztika

    független a feladattólés annak modelljétől:nem merít sem afeladat ismereteiből,sem a modell

    sajátosságaiból. 

    nem függ a feladatismereteitől, de épít afeladat modelljénekáltalános elemeire. 

    a feladattól származó,annak modelljében nem rögzített, de amegoldást segítő speciális ismeret 

     Elsődleges vezérlési stratégiák  

    nemmódosítható  módosítható 

    elsődleges stratégiák  

    • lokális keresések  • evolúciós algoritmus • rezolúció 

    Gregorics Tibor Mesterséges intelligencia 

    • visszalépéses keresések  • gráfkeresések  

    1. Lokális keresések  

    A lokális keresés olyan KR, amely a megoldandó útkeresési probléma (reprezentációs) gráfjának egyetlen (az aktuális)csúcsát és annak szűk környezetét tárolja (a globálismunkaterületén).

    • Kezdetben az aktuális csúcs a startcsúcs, és a keresésakkor áll le, ha az aktuális csúcs a célcsúcs lesz. 

     Az aktuális csúcsot minden lépésben annak környezetéből vett„jobb” csúccsal cseréli le (keresési szabály).

    A „jobbság” eldöntéséhez (vezérlési stratégia) egy kiértékelő(cél-, rátermettségi-, heurisztikus) függvényt használ, amelyreményeink szerint annál jobb értéket ad egy csúcsra, minélközelebb esik az a célhoz.

    Gregorics Tibor Mesterséges intelligencia 

     Hegymászó algoritmus 

    Mindig az aktuális (akt ) csúcs legjobb gyermekére lép, amelyik lehetőleg nem a szülője.

    1. akt  :=  start  

    2. while akt T loop

    3. akt  := opt f ( (akt )−(akt ) )

    4. endloop

    Gregorics Tibor Mesterséges intelligencia 

    • Az eredeti hegymászó algoritmus nem zárja ki a szülőre való lépést és

    nem engedi meg, hogy az aktuális csúcsot egy rosszabb értékű csúcsracseréljük (ilyenkor a keresés inkább leáll).

    ADAT := kezdeti érték  

    while terminálási  feltétel (ADAT) loopSELECT SZ FROM alkalmazható szabályok  

    ADAT := SZ(ADAT)

    endloop

    if   (akt ) = ∅ then return nem talált megoldást 

    if   (akt )−(akt ) = ∅ then akt  := (akt ) 

    else akt  := opt f ((akt )−(akt ))

     Hátrányok  

    Csak erős heurisztika esetén lesz sikeres: különben „eltéved”(nem talál megoldást), sőt zsákutcába kerülve „beragad”.Segíthet, ha: 

    • véletlenül választott startcsúcsból újra- és újraindítjuk  

    • k  aktuális csúcsnak a legjobb k  gyerekére lépünk  

    • gyengítjük a mohó stratégiát szimulált hűtés 

    Lokális optimum hely körül vagy ekvidisztans felületen(azonos értékű szomszédos csúcsok között) található körön,végtelen működésbe eshet. Segíthet, ha: 

    • növeljük a memóriát tabu keresés

    Gregorics Tibor Mesterséges intelligencia 

  • 8/18/2019 Mesterséges Intelligencia

    11/61

    2

    Tabu keresés 

    Az aktuális csúcson (akt ) kívül nyilvántartja még 

     –  az utolsó néhány érintett csúcsot: Tabu halmaz –  az eddigi legjobb csúcsot: optimális csúcs (opt )

    Minden lépésben –  Az aktuális csúcs legjobb gyerekére lép, kivéve a Tabu 

    halmazban levőket  –  ha akt  jobb, mint az opt , akkor opt az akt  lesz

     –  frissíti akt -tal a sorszerkezetű Tabu halmazt Terminálási feltételek: 

     –  ha az opt  a célcsúcs  –  ha az opt  sokáig nem változik.

    Gregorics Tibor Mesterséges intelligencia 

    Tabu keresés algoritmusa 

    1. akt, opt, Tabu :=  start, start, ∅ 

    2. while  not (opt T or opt régóta nem változik) loop

    3. akt  := opt f ( (akt )−Tabu )

    4. Tabu := Módosít(akt,Tabu)

    5. if   f (akt ) jobb, mint f (opt ) then opt := akt  

    6. endloop

    Gregorics Tibor Mesterséges intelligencia 

    ADAT := kezdeti érték  

    while  terminálási  feltétel (ADAT) loopSELECT SZ FROM alkalmazható szabályok  

    ADAT := SZ(ADAT)

    endloop

    if   (akt ) = ∅ then return nem talált megoldást 

    else if   (akt )−Tabu) = ∅ then akt  := opt f ((akt ))

    else akt  := opt f ((akt )− Tabu)

     Megjegyzés 

    Előnyök: –  tabu méreténél rövidebb köröket észleli, és ez segíthet

    a lokális optimum hely illetve az ekvidisztans felületkörüli körök leküzdésében. 

    Hátrányok : –  a Tabu halmaz méretét kísérletezéssel kell belőni 

     –  zsákutcába futva a nem-módosítható stratégia miatt beragad

    Gregorics Tibor Mesterséges intelligencia 

    Szimulált hűtés 

    A következő csúcs kiválasztása az aktuális (akt ) csúcsgyermekei közül véletlenszerű.

    Ha az így kiválasztott új csúcs kiértékelő függvény-értékenem rosszabb, mint az akt  csúcsé (itt f (új) ≤ f (akt )), akkorelfogadjuk aktuális csúcsnak  

    Ha az új csúcs függvényértéke rosszabb (itt f (új) > f (akt )),akkor egy olyan véletlenített módszert alkalmazunk, ahol azúj csúcs elfogadásának valószínűsége fordítottan arányos az f (akt )   f (új) különbséggel: 

    Gregorics Tibor Mesterséges intelligencia 

     Hűtési ütemterv 

    A (T k  , Lk  ) k =1,2,… ütemterv azt szabályozza, hogy azelfogadási képletben a T  együttható értéke  L1 lépésenkeresztül T 1, majd L2 lépésen keresztül T 2, stb. legyen:

    T   exp(-13/T)  

    1010  0.9999… 50 0.77

    20 0.52

    10 0.2725

    5 0.07431 0.000002

     f(új)=120, f(akt)=107

    Gregorics Tibor Mesterséges intelligencia 

    Ha T 1 , T 2 , … szigorúan monotoncsökken, akkor egy ugyanannyivalrosszabb függvényértékű új csúcsot akeresés kezdetén nagyobbvalószínűséggel fogadunk majd el,

    mint a keresés későbbi szakaszában. 

    1.  akt  :=  start; k  := 1

    2. while not(akt T or  f (akt ) régóta nem változik) loop

    3. for i = 1 .. Lk  loop

    4. új := select( (akt )−(akt ) )

    5. if   f (új)≤  f (akt ) or

     f (új)> f (akt ) and 

    6. then akt  := új endif

    7. endloop

    8. k := k +1

    9. endloop

    Szimulált hűtés algoritmusa 

    ],[   10rand e   k T   f(új)  f(akt)

    Gregorics Tibor Mesterséges intelligencia 

    ADAT := kezdeti érték  

    while  terminálási  feltétel (ADAT) loopSELECT SZ FROM alkalmazható szabályok  

    ADAT := SZ(ADAT)

    endloop

    if  (akt ) = ∅ then return nem talált megoldást 

    if  (akt )−(akt ) = ∅ then új := (akt ) 

    else új := select((akt )−(akt ))

  • 8/18/2019 Mesterséges Intelligencia

    12/61

    3

     Lokális kereséssel megoldható feladatok  

    Erős heurisztika nélkül nincs sok esély a cél megtalálására. 

     –  Jó heurisztikára épített kiértékelő függvénnyelelkerülhetőek a zsákutcák. 

    A sikerhez az kell, hogy egy lokálisan hozott rossz döntés nezárja ki a cél megtalálását! 

    Ez például erősen összefüggő reprezentációs-gráfbanteljesül 

    • Kifejezetten előnytelen, ha a reprezentációs-gráf egyirányított fa. (Például az n-királynő  problémát csaktökéletes kiértékelő függvény esetén lehetne lokáliskereséssel megoldani.) 

    Gregorics Tibor Mesterséges intelligencia 

    memóriaigény futási idő 

    eredményesség  hatékonyság 

     A heurisztika hatása a KR működésére 

    Gregorics Tibor Mesterséges intelligencia 

    A heurisztika olyan, a feladathoz kapcsolódó ötlet, amelyet

    közvetlenül építünk be egy algoritmusba azért, hogy annakeredményessége és hatékonysága javuljon, habár erre általábansemmiféle garanciát sem ad.

    heurisztika

     KR hatékonysága 

    informáltság  

    költség  

    teljes

    egy szabály kiválasztásának  ideje (egy iterációs lépés) 

     szabály alkalmazások   száma (iterációk száma) 

     számítási 

    költség  

    Gregorics Tibor Mesterséges intelligencia 

    ADAT := kezdeti érték  

    while  terminálási   feltétel (ADAT) loopSELECT SZ FROM alkalmazható szabályok  

    ADAT := SZ(ADAT)

    endloop

     Forrás: Nilsson: Princ. of AI, pp. 54.

     Heurisztikák  

    a 8-as (15-ös) tologató játékra  Rossz helyen levő csempék száma:

    W(this) =  i,j 1this[i,j]   0 , this[i,j]   cél [i,j] 

    Csempék célbeli helyüktől vett minimálistávolságainak összege (Manhattan): 

     P(this) = i,j (|icélbelisor (this[i,j])| + |jcélbelioszlop(this[i,j])|)

    célbelisor (this[i,j]) ~ a this[i,j] célállapotbeli helyének sora célbelioszlop(this[i,j]) ~ a this[i,j] célállapotbeli helyének oszlopa 

    „Széleken levő csempék legyenek jók” (frame):

    Hány olyan csempe van a szélen, amelyiket nem a célbeliszomszédja követ az óra járásával megegyező irányban? 

    Hány olyan csempe van a szélen, amelyiknek belül kellene lenni?  

    Hány sarkokban (×2) nincs még a cél szerinti csempe? 

    Gregorics Tibor Mesterséges intelligencia 

    2  8  3 

    4

    3 1 

    5 6 

    5 6

    Gregorics Tibor Mesterséges intelligencia 

    Csúcs utódainak sorrendje: < left, up, right, down >W

    2  8  3 

    2  8  3 

    7  6 

    2  8  3 

    5 6 

    8  3 

    5 6 

    8  3 

    5 6 

    8  3 1 

    5 6 

    8  3 1 

    5 6 

    2 8 

    3 1 

    5 6 

    2 8 

    3 1 

    5 6 

    3 1 

    5 6 

    3 3

    3 3 3

    03 2 1

    l:5, u:3, r:5, d:- l:3, u:3, r:4, d: l:-, u:3, r:, d:4

    l:3, u:, r:4, d:4 l:, u:-, r:4, d:3

    l:-, u:2, r:, d:4 l:, u:-, r:2, d:0

    l:-, u:-, r:3, d:

    l:-, u:-, r:1, d:

    4

    Gregorics Tibor Mesterséges intelligencia 

    2  8  3 

    2  8  3 

    7  6 

    7  6 

    7  6 

    3 1 

    7  6 

    3 1 

    7  6 

    4

    3

    01

    2

    P 5 Csúcs utódainak sorrendje: < left, up, right, down >

    l:6, u:4, r:6, d:- l:5, u:3, r:5, d:

    l:2, u:-, r:4, d:

    l:-, u:, r:0, d:2

    l:-, u:-, r:, d:1

    W: l:3, u:3, r:4, d:

  • 8/18/2019 Mesterséges Intelligencia

    13/61

    4

     Heurisztikák  

    a Fekete- fehér kirakóra 

    Inverziószám:

     I(this)= minimálisan hány csere kell ahhoz, hogyminden fehér minden feketét megelőzzön 

    Módosított inverziószám:

     M(this)= 2 ⋅ I(this)   (1, ha this-nek része vagy  )

    Gregorics Tibor Mesterséges intelligencia  Gregorics Tibor Mesterséges intelligencia 

     start

    cél  

    cél  

    cél  cél  

    2

    22

    2 1

    11

    1

    0

    4

    34

    23

    12

    1

    0

    Inv 2*I nv - ?1

    0

    0

    0

    0

    00

     Heurisztikák  

    a Hanoi tornyai problémára 

    Darab: C(this) = i=1..n 1 this[i]1 

    Súlyozott darab:  WC(this) = i=1..n i this[i]1 

    Összeg: S(this) = i=1..n this[i]

    Súlyozott összeg: WS(this) = i=1..n i⋅this[i]

    Módosított összeg:  EWS(this) = WS(this)  

     i=2..n  1  + i=2..n‒ 1  2 this[i 1]>this[i] this[i 1]=this[i+1]  this[i] this[i 1] 

    Gregorics Tibor Mesterséges intelligencia 

     Heurisztikák  

    a Hanoi tornyai problémára 

    Tökéletes: P(v) = f(1)1  f :[1..n+1]ℕ×ℕ 

     f(i)1 : célba éréshez szükséges lépések száma, ha csak az i és n közöttikorongok számítanak, a kisebb korongok mintha nem is lennének.  

     f(i)2  : az a rúd, amelyikre nincs szükség az i és n közötti korongok célbarakásának első lépésénél. 

     f(n+1) = (0, 1)

    ( 2 ⋅ f(i)1  , f(i)2  ) ha v[i  – 1]= f(i)2

    (2 ⋅ f(i)1+1, 6 –  f(i)2  –  v[i  – 1] ) ha v[i  – 1] f(i)2  f(i – 1)= 

    Gregorics Tibor Mesterséges intelligencia 

    Amikor az i – 1-dik korongot is beszámítjuk, akkor ez a ná lánál

    nagyobb korongok mozgatásánál mindig „útban” lesz ( tehát mindigfélre kell tenni), kivéve a legelső lépésnél, ha éppen az f(i)2 rúdonvan. Emiatt megduplázódik a lépések eddig kalkulált száma, majda végén az i – 1-dik korongot is a helyére kell tenni 

  • 8/18/2019 Mesterséges Intelligencia

    14/61

    1

    2. Visszalépéses keresés 

    Gregorics Tibor Mesterséges intelligencia 

    Visszalépéses keresés 

    A visszalépéses keresés egy olyan KR  

     –  globális munkaterülete: • egy út a startcsúcsból az aktuális csúcsba (ezen kívül

    az útról leágazó még ki nem próbált élek) • Kezdetben a startcsúcsot tartalmazó nulla hosszúságú út • terminálás célcsúccsal vagy startcsúcsból való visszalépéssel 

     –  keresés szabályai: • a nyilvántartott út végéhez egy új (ki nem próbált) él

    hozzáfűzése, vagy a legutolsó él törlése (visszalépésszabálya) 

     –  vezérlés stratégiája a visszalépés szabályát csak alegvégső esetben alkalmazza

    Gregorics Tibor Mesterséges intelligencia 

    Visszalépés feltételei 

    zsákutca: az aktuális csúcsból (azaz az aktuális útvégpontjából) nem vezet tovább él 

    zsákutca torkolat: az aktuális csúcsból kivezető utak nemvezettek célba 

    kör : az aktuális csúcs szerepel már korábban is az aktuális

    úton  mélységi korlát: az aktuális út hossza elér egy előre

    megadott értéket 

    Gregorics Tibor Mesterséges intelligencia 

     Alacsonyabb rendű stratégiák  

    Gregorics Tibor Mesterséges intelligencia 

    Ez elsődleges vezérlési stratégia kiegészíthető: 

    o sorrendi szabály: sorrendet ad az aktuális útvégpontjából kivezető élek (utak) vizsgálatára 

    o vágó szabály: megjelöli azokat az aktuális útvégpontjából kivezető éleket (utakat), amelyeket nem

    érdemes megvizsgálni  Ezek a szabályok lehetnek  

    o másodlagos vezérlési stratégiák (a problémamodelljének sajátosságaiból származó ötlet )

    o heurisztikák   (a probléma ismereteire támaszkodó)

    Első változat 

    A visszalépéses algoritmus első változata az, amikor avisszalépés feltételei közül az első kettőt építjük be a keresőrendszerbe.

    Véges körmentes irányított gráfokon (itt nem kell -gráf ) aVL1 mindig terminál, és ha létezik megoldás, akkor talál

    egyet .

    Rekurzív algoritmussal (VL1) szokták megadni 

     –  Indítás: megoldás := VL1( startcsúcs)

    Gregorics Tibor Mesterséges intelligencia 

    Recursive procedure VL1(akt ) return megoldás 

    1. if  cél (akt ) then return(nil ) endif  

    2. for új  (akt )  loop3. megoldás := VL1(új)

    4. if  megoldás  hiba then 5.  return( fűz((akt,új),megoldás) endif  

    6. endloop

    7. return(hiba)

    end

    VL1 

    Gregorics Tibor Mesterséges intelligencia 

    ADAT := kezdeti érték  while  terminálási  feltétel (ADAT) loopSELECT SZ FROM alkalmazható szabályok  ADAT := SZ(ADAT)

    endloop

  • 8/18/2019 Mesterséges Intelligencia

    15/61

    2

    ♛  ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ ♛ 

    ♛ ♛ ♛ 

    ♛ 

    ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ 

    ♛ ♛ ♛ 

    ♛ ♛ 

    ♛ 

    ♛ ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    0.

    1.

    2.

    3.

    4.

    5.

    6.

    7. 11.

    8.

    9.

    10.12.

    13.

    14. 16.

    15.

    17.

    18.

    19.

    20.

    21.

    22.

    23.

    24.

    25.

    26.

    27.

    28.

    29.

    30.

    31.

    32.

    33.34.

    35.37.

    36. 38.

    39.41.

    42.40.

    43.

    44.

    45.

    46.

    47.

    48.

    48 lépés 

    22 visszalépés 

    n-királynő  probléma 2. reprezentáció 

    Statikus nyomkövetés 

    Gregorics Tibor Mesterséges intelligencia 

    n-királynő  probléma 2. reprezentáció 

    ♛ 

    ♛ ♛ 

    ♛  ♛  ♛ 

    ♛ ♛ 

    ♛  ♛  ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ ♛ 

    ♛ 48 lépés 

    22 visszalépés 

    … 

    0. lépés  1. lépés  2. lépés  3. lépés  4. lépés  5. lépés  6. lépés  7. lépés 

     Dinamikus nyomkövetés 

    Gregorics Tibor Mesterséges intelligencia 

    Itt az aktuális út helyett elég lennecsak az aktuális csúcsot tárolni. 

    A mezőkhöz rendelt értékek alapján rendezzük sorba a mezőket.   Diagonális : a mezőn áthaladó hosszabb átló hossza.

    Páratlan- páros:a páratlan sorokban balról jobbra,a páros sorokban jobbról balra legyen a sorrend.

    Szabad (ütésben nem álló) mezők száma: a mezőrehelyezés után a táblán maradt szabad mezők száma. 

    Sorrendi heurisztikák  az n-királynő   problémára 

    Gregorics Tibor Mesterséges intelligencia 

    4 3 3 43 4 4 33 4 4 34 3 3 4

    1 2 3 4

    4 3 2 11 2 3 44 3 2 1

     ♛      1 2      

    3

     Heurisztikák az n-királynő   problémára 

    diagonális + ptl-psdiagonális + legbalabb 

    n = 4 Nincs Diag Diag + ptl-ps

    2. repr. 22/48 2/8 0/4

    3. repr. 4/12 0/4 0/4

    4 ♛  3 4

    3 4 4 3

    3 4 4 3

    4 3 3 4

    ♛ ♛ 

    ♛ 

    ♛ ♛

     

    Gregorics Tibor Mesterséges intelligencia 

    2. repr. Nincs Diag

    n = 4 22/48 2/8

    n = 5 0/5 2/9

    n = 6 25/56 3/12

    n = 10 92/194 103/216

    4/1 3/2 3/3 4/4

    3/4 4/3 4/2 3/1

    3/1 4/2 4/3 3/4

    4/4 3/3 3/2 4/1

    ♛ 

    ♛ 

    ♛ 

    ♛ 

    VL1

    heurisztika nélkül  

    k=6  

    A k -adik királynő elhelyezése utána hátralevő üres sorokból töröljükaz ütésbe került szabad mezőket.

    for  i=k+1 .. n loop  

     Jelöl(i,k) 

    Ha Szabad k  = ∅ , akkor visszalép.

    Szabad 6   ∅ 

    ♛ 

    ♛ 

    ♛ 

    ♛ 

    ♛ 

    Gregorics Tibor Mesterséges intelligencia 

    n-királynő  probléma 3. reprezentáció 

    Szabad i = {az i-dik sor szabad mezői} 

     Jelöl (i,k ) : törli az i-dik sor azonszabad mezőit, amelyeket a k -dikkirálynő üt 

    standard VL1

    Vágás: Forward Checking  

    FC  algoritmus:

     Nemcsak akkor lép vissza, haaz aktuális sorban nincs szabad(ütésben nem álló üres) mező,hanem

    ha a hátralevő üres sorokvalamelyikében nincs márszabad mező,azaz r [k+1.. n]: Szabad r  = ∅,akkor is visszalép.

    k=4 

    Szabad 6   ∅ 

    ♛ 

    ♛ 

    ♛ 

    ♛ 

    Gregorics Tibor Mesterséges intelligencia 

  • 8/18/2019 Mesterséges Intelligencia

    16/61

    3

    Vágás: Partial Look Forward  

    PLF  algoritmus:

     FC   +for  i=k+1 .. n loop  

    for   j=i+1 .. n loop  

    Szűr(i,j) k=3 

    i = 4, j = 6   Szabad 4 = ∅ 

    ♛ 

    ♛ 

    ♛ 

    6

    Gregorics Tibor Mesterséges intelligencia 

    Szűr(i,j) : törli az i-edik sor azonszabad mezőit, amelyekhez nemtalálható a j-edik sorban veleütésben nem álló szabad mező 

    Vágás: Look Forward  

    LF  algoritmus:

     FC  +for  i=k+1 .. n loop  

    for   j=k+1 .. n és i   j loop  Szűr(i,j) 

    k=2 

    Szabad 6   ∅ i = 4, j = 3i = 5, j = 4

    i = 6, j = 4i = 6, j = 5

    ♛ 

    ♛ 

    3

    4

    4 4 5

    Gregorics Tibor Mesterséges intelligencia 

     LF még egyszer  

    k=3 

    Szabad 6   ∅ i = 6, j = 4i = 6, j = 5

    ♛ 

    ♛ 

    4 4 5

    ♛ 

    Gregorics Tibor Mesterséges intelligencia 

    LF  algoritmus:

     FC  +

    for  i=k+1 .. n loop  

    for   j=k+1 .. n és i   j loop  Szűr(i,j) 

     AC1 

    AC1  algoritmus:

     FC  +

    repeat

    for  i=k+1 .. n loop  

    for   j=k+1 .. n és i   j loop  Szűr(i,j )

    until  volt törlés 

    i = 6, j = 41. menet 

    ♛ 

    ♛ 

    4 4

    Gregorics Tibor Mesterséges intelligencia 

     AC1 

    i = 5, j = 62. menet 

    ♛ 

    ♛ 

    6

    Gregorics Tibor Mesterséges intelligencia 

    AC1  algoritmus:

     FC  +

    repeat

    for  i=k+1 .. n loop  

    for   j=k+1 .. n és i   j loop  Szűr(i,j )

    until  volt törlés 

    i = 3, j = 5

    i = 4, j = 5

    i = 6, j = 3

     AC1 

    ♛ 

    ♛ 

    3. menet 

    5

    5

    3

    Gregorics Tibor Mesterséges intelligencia 

    AC1  algoritmus:

     FC  +

    repeat

    for  i=k+1 .. n loop  

    for   j=k+1 .. n és i   j loop  Szűr(i,j )

    until  volt törlés 

  • 8/18/2019 Mesterséges Intelligencia

    17/61

    4

     AC1 

    ♛ 

    ♛ 

    4. menet 

    ♛ 

    ♛ 

    ♛ 

    ♛ 

    Gregorics Tibor Mesterséges intelligencia 

    AC1  algoritmus:

     FC  +repeat

    for  i=k+1 .. n loop  

    for   j=k+1 .. n és i   j loop  Szűr(i,j )

    until  volt törlés 

     Az n-királynő  problema modelljének   speciális tulajdonságai 

    A bemutatott vágó stratégiák nem az n-királynő  problémaextra ismereteire támaszkodtak, hiszen ezeket azoknál a

     problémáknál is alkalmazhatjuk, amelyek modellje hasonlítaz n-királynő modelljéhez. 

    Melyek az n-királynő  probléma modelljének   jellegzetességei?o A problématér egy {1..n}  …  {1..n} Decart szorzat, és

    ennek egy ( x1 ,…, xn) eleme egy lehetséges válasz, ahol  xi mutatja az i-dik (sorbeli) királynő pozícióját.

    o A helyes megoldásban egyetlen i,j[1..n]-re sincs ütés az i-dikés a j-dik királynő között. A “nincs ütes” feltétel (vagy korlát)egy C ij ⊆ {1..n}  {1..n}  bináris reláció, amelyet az ( x1 ,…, xn)-nek ki kell elégítenie: C ij( xi ,x j)  ( xi x j    xi‒  x j i‒ j ).

    Gregorics Tibor Mesterséges intelligencia 

    Új reprezentációs módszer:  Korlát -kielégítési modell  

    Egy probléma (bináris) korlát-kielégítési modellje:

    o Keressük azt az ( x1 ,…, xn)   D1  …  Dn n-est ( Di véges) o amelyik minden megadott C ij ⊆  Di   D j korlátot kielégít. 

    Másik példa: gráfszínezés   probléma (n csúcs, m szín): o Az i-edik csúcs lehetséges színei: D i = {1, … , m} ( i=1..n )

    o A gráfban szomszédos (i,j) csúcspárokra: C ij( xi ,x j)  ( xi   x j)

    Gregorics Tibor Mesterséges intelligencia 

     Másodlagos vezérlési stratégia 

    A korábbi vágási ötletek leírhatók a korlátok segítségével: Jelöl (i,k ): Di := Di {e Di  C ik (e, xk )}Szűr (i,j) : Di := Di {e Di   f  D j :C ij (e,f )}

    Ezek a vágások C ij  reláció jelentésétől függetlenülalkalmazhatók, ezért nem heurisztikák , hanem a modellezéssajátosságait kihasználó másodlagos vezérlési stratégiák .

    Sorrendi másodlagos stratégiák  is készíthetők a korlát-kielégítési modellhez:  –  Mindig a legkisebb tartományú változónak válasszunk értéket. 

     –  Ha létezik korlát az xi és x j változó párra (C ij), akkor ezekértékének meghatározására lehetőleg egymás után kerüljön sor. 

    Gregorics Tibor Mesterséges intelligencia 

    A visszalépéses algoritmus második változata az, amikor avisszalépés feltételei közül mindet beépítjük a keresőrendszerbe.

     A VL2 -  gráfban mindig terminál. Ha létezik a mélységi

    korlátnál nem hosszabb megoldás, akkor megtalál egy

    megoldást. 

    UI: véges sok adott korlátnál rövidebb startból induló út van. 

    Rekurzív algoritmussal (VL2) adjuk meg

     –  Indítás: megoldás := VL2()

    Második változat 

    Gregorics Tibor Mesterséges intelligencia 

    Recursive procedure VL2(út ) return megoldás 

    1. akt := utolsó_csúcs(út )

    2. if  cél (akt ) then return(nil ) endif  

    3. if  hossza(út )  korlát  then  return(hiba) endif4. if  akt maradék (út ) then return (hiba) endif  5. for új  (akt ) − (akt ) loop6. megoldás := VL2( fűz(út , új))

    7. if  megoldás  hiba then8.  return( fűz((akt,új),megoldás)) endif  

    9. endloop

    10. return(hiba)end

    VL2 

    Gregorics Tibor Mesterséges intelligencia 

    ADAT := kezdeti érték  while  terminálási  feltétel (ADAT) loopSELECT SZ FROM alkalmazható szabályok  ADAT := SZ(ADAT)

    endloop

  • 8/18/2019 Mesterséges Intelligencia

    18/61

    5

     Mélységi korlát szerepe 

    A VL2 nem talál megoldást (csak terminál), ha csak amegadott mélységi korlátnál hosszabb megoldási út van.

    A mélységi korlát önmagában is biztosítja a terminálást körök esetén is.

     –  Ez akkor előnyös, ha nincsenek rövid körök (a kettőhosszú köröket kiszűri a szülőcsúcs vizsgálat). 

     –  Ilyenkor nem kell a teljes aktuális utat átadni arekurzív hívásnál: elég annak hosszát az aktuáliscsúcs és annak szülője mellett. 

    Gregorics Tibor Mesterséges intelligencia 

    7 1 

    8 6 

    5 4 

    2 1 

    76 

    5 4 

    7 1 

    5 4 

    7 1 

    8 6 

    5 4 

    1

    76 

    5 4 

    7 1 

    6 8

    5 4 

    7 1 

    46 

    7 1 

    6 4

    6 1

    5 4 

    7 1 

    2

    6 8

    5 4 

    7 1 

    6 4

    5 3

    2 7

    6 1

    5 4 

    7 1 

    6 4

    3 5

    7 2

    6 1

    5 4 

    7 1 

    3

    6 8

    5 4 

    1

    2

    6 8

    5 4 

    7 1 

    6 4

    8

    5 3

    67

    8 1

    5 4 

    7 1 

    8 4

    65

    8

    7 2

    6 1

    5 4 

    7 1 

    3

    6 8

    4

    17

    2

    6 8

    5 4 

    5  5 3 

    3  3  4 

    3  4  2  4 

    0  2 1

    7 8

    2

    5 4 

    0.

    1.

    2.

    3.

    4.

    5.

    6.

    7.

    8.

    9.

    10.

    11.

    Tologatós játék  WMélységi korlát: 5 Heurisztika:

    Gregorics Tibor Mesterséges intelligencia 

    Vágó heurisztika: akt. út hossza+W > MK

    7 1 

    8 6 

    5 4 

    2 1 

    76 

    5 4 

    7 1 

    5 4 

    7 1 

    8 6 

    5 4 

    1

    76 

    5 4 

    7 1 

    6 8

    5 4 

    7 1 

    46 

    7 1 

    6 4

    6 1

    5 4 

    1 2

    83 

    4 2 

    1 8 

    4

    32 7

    13 

    4 2 

    1 8 

    43 5

    28 

    13 

    4 2 

    1 3

    8

    1

    2

    6 8

    5 4 

    7 1 

    6 4

    8

    5 3

    67

    8 1

    5 4 

    7 1 

    8 4

    65

    8

    7 2

    6 1

    5 4 

    7 1 

    3

    6 8

    4

    17

    2

    6 8

    5 4 

    5

    6 64

    5 3 5

    2

    1

    20

    4

    1

    7 8

    2

    5 4 

    P0.

    1.

    2.

    3.

    4.

    5.

    Mélységi korlát: 5 Heurisztika: Tologatós játék  

    Gregorics Tibor Mesterséges intelligencia 

     Értékelés 

    ELŐNYÖK  

     –  mindig terminál,talál megoldást 

     –  könnyenimplementálható 

     –  kicsi memória igény 

    HÁTRÁNYOK  

     –  nem ad optimális megoldást.(iterációba szervezhető) 

     –  kezdetben hozott rossz döntéstcsak sok visszalépés korrigál 

    (visszaugrásos keresés)  –  egy zsákutca részt többször is

     bejárhat a keresés 

    Gregorics Tibor Mesterséges intelligencia 

  • 8/18/2019 Mesterséges Intelligencia

    19/61

    1

    3. Gráfkeresés 

    A gráfkeresés olyan KR, amelynek

     –  globális munkaterülete: a reprezentációs gráfstartcsúcsból kiinduló már feltárt útjait tárolja(tehát egy részgráfot)

    • kiinduló értéke: a startcsúcs, 

    • terminálási feltétel: megjelenik egy célcsúcs vagymegakad az algoritmus.

     –  keresés szabálya: egyik útvégi csúcs kiterjesztése 

     –  vezérlés stratégiája: a legkedvezőbb csúcskiterjesztésére törekszik  

    Gregorics Tibor Mesterséges intelligencia 

    3.1. Általános gráfkereső  algoritmus

    keresőgráf   (G) : a reprezentációs gráf eddig  bejárt és eltárolt része  nyílt csúcsok halmaza ( NYÍLT ) : kiterjesztésre várakozó

    csúcsok, amelyeknek gyerekeit még nem vagy nem eléggé jól ismerjük  

    kiterjesztett csúcsok halmaza ( ZÁRT  ) : azok a csúcsok,amelyeknek a gyerekeit már előállítottuk  

    kiterjesztés () : egy csúcs összes gyermekének előállításaa hozzájuk vezető élekkel együtt

    kiértékelő függvény ( f : NYÍLT → ℝ) : kiválasztja amegfelelő nyílt csúcsot kiterjesztésre 

    Gregorics Tibor Mesterséges intelligencia 

    Procedure GK0 

    1. G := ({ start }, ∅);  NYÍLT := { start }

    2. loop

    3. if  empty( NYÍLT ) then return nincs megoldás 

    4. n := min f ( NYÍLT ) 5. if   cél (n) then return van megoldás 6.  NYÍLT :=  NYÍLT {n}  (n)7. G := G  {(n,m)   A  m(n)}8. endloop

    end

     Kezdetleges verzió 

    Gregorics Tibor Mesterséges intelligencia 

    ADAT := kezdeti érték  while  terminálási  feltétel (ADAT) loop

    SELECT SZ FROM alkalmazható szabályok  ADAT := SZ(ADAT)

    endloop

     Kritika 

     Nem olvasható ki a megoldási út a kereső gráfból 

    Meg kell jegyezni a felfedezett utak nyomát. 

    Körökre érzékeny 

    Tároljuk el egy csúcsnál az odavezető eddig talált legjobb

    út költségét. Ha újabb utat találunk, csak akkorfoglalkozzunk azzal, ha annak költsége még olcsóbb. 

     Nem garantál optimális megoldást (sőt még a megoldástsem)

    Az eddig talált legjobb útköltségek tárolása ezen issegíthet. 

    Gregorics Tibor Mesterséges intelligencia 

    Gráfkeresés  függvényei 

     : N → N szülőre visszamutató pointer   –   (n) = n csúcs egyik szülője, ( start ) = nil

    •    egy start  gyökerű irányított feszítőfát jelöl kiG-ben:  feszítőfa 

    Gregorics Tibor Mesterséges intelligencia 

    s  

    a   b  

    c  2  

    2  

    2  

    1  

    3  

    2  1  

    0    start

     g : N → ℝ költség függvény 

     –   g (n) = c( start,n) –  egy megtalált   { start  → n} út költsége 

    • Jó lenne ha minden n csúcsra a  g(n) a  szerinti start  → n útköltségét mutatná, azaz  és g  konzisztens lenne.

    • Jó lenne ha a  minden n csúcshoz a G-belioptimális utakat jelölné ki, azaz a  feszítőfa optimális lenne.

    Az n csúcs korrekt , ha konzisztens: g(n)= c( start,n) és optimális: c( start,n)= min{ start ⟶n}G c( start,n).A G korrekt, ha minden csúcsa korrekt. 

     A korrektség fenntartása 

    Kezdetben: ( start ) := nil ,  g ( start ) := 0  Az n csúcs kiterjesztése után minden m(n) csúcsra o 1. Ha m új csúcs 

    azaz mG akkor(m) := n,  g (m) := g (n)+c(n,m) 

     NYÍLT :=  NYÍLT {m}o 2. Ha m régi csúcs, amelyhez olcsóbb utat találtunk  

    azaz mG és g(n)+c(n,m)

  • 8/18/2019 Mesterséges Intelligencia

    20/61

    2

     Mégsem marad korrekt a kereső gráf  

    Ha mG és g(n)+c(n,m)

  • 8/18/2019 Mesterséges Intelligencia

    21/61

    3

     Mikor lesz a kereső gráf korrektcsökkenő kiértékelő függvény mellett?

    Válasszuk ki az értékekből azt az F i (i=1,2,…) monoton növekedőrészsorozatot, amely a legelső értékkel kezdődik, majd mindig alegközelebbi nem kisebb értékkel folytatódik.

    Csökkenő kiértékelő függvény használata mellett a GK

    • kereső gráfja korrekt lesz valahányszor küszöbcsúcsot terjeszt ki 

    • soha nem terjeszt ki inkorrekt csúcsot 

    Gregorics Tibor Mesterséges intelligencia 

    i-dik küszöbérték  

    i-dik küszöbcsúcs 

    i-dik árok  

     f

     

     start n2  ni  ni+1 … … …  … 

     F i  F 2  F 1 

     F i+1 

    … … 

     Nevezetes nem-informált algoritmusok

    Algoritmus Definíció  Eredmények  

     Mélységi gráfkeresés 

    (MGK)

     f = -g, c(n,m) = 1 végtelen gráfokban csakmélységi korláttal garantálmegoldást 

    Szélességi gráfkeresés 

    (SZGK)

     f = g, c(n,m) = 1 optimális (legrövidebb)megoldást adja, ha van 

    egy csúcsot legfeljebb egyszerterjeszt ki

     Egyenletes

     gráfkeresés 

    (EGK)

     f = g optimális (legolcsóbb)megoldást adja, ha van 

    egy csúcsot legfeljebb egyszerterjeszt ki

    Kapcsolat a visszalépéses kereséssel 

    Kapcsolat Dijkstra algoritmussalGregorics Tibor Mesterséges intelligencia 

     Heurisztika a gráfkereséseknél  

    Heurisztikus függvénynek nevezzük azt a h:N →ℝ függvényt, amelyik egy csúcsnál megbecsüli acsúcsból a célba vezető („hátralévő”) optimális útköltségét. 

     h(n)   mint T 

     c*(n,t ) = c*(n,T ) = h*(n)

    (h*: N →ℝ )

    Ez az eddiginél szigorúbb definíciója a heurisztikának. 

    Példák: 

     –  8-kirakó : W, P

     –  0 (zéró függvény)? 

    Gregorics Tibor Mesterséges intelligencia 

    hátralevő optimális költség 

     Heurisztikus függvények tulajdonságai 

     Nevezetes tulajdonságok:  –  Nem- negatív: h(n) ≧ 0 n N   –   Megengedhető  (admissible): h(n) ≦ h*(n) n N   –   Monoton megszorítás: h(n)‒  h(m) ≦ c(n,m) (n,m) A

    (következetes) 

    Megjegyzés:

     –  8-kirakó : W és P mindhárom tulajdonsággal bír. 

     –   Zéró függvény mindhárom tulajdonsággal bír. 

     –  h monoton + h célban nulla ⇒ h megengedhető 

    Gregorics Tibor Mesterséges intelligencia 

     Nevezetes heurisztikus algoritmusok

    Algoritmus Definíció  Eredmények  

     Előre tekintő gráfkeresés 

     f = h nincs említhető tulajdonsága 

     A algoritmus  f = g+h és 0≦ h • megoldást ad, ha van megoldás(még végtelen gráfokban is) 

     A* algoritmus  f = g+h és 0≦ h és 

    h ≦h*

    • optimális megoldást ad, ha van(még végtelen gráfokban is) 

     Ac algoritmus  f = g+h és 0≦ h és 

    h ≦ h* és 

    h(n)-h(m)≦

     c(n,m)

    • optimális megoldást ad, ha van 

    • ugyanazt a csúcsot nem terjesztiki kétszer  

    Gregorics Tibor Mesterséges intelligencia 

    7 1 

    8 6 

    5 4 

    2 1 

    76 

    5 4 

    7 1 

    5 4 

    7 1 

    8 6 

    5 4 

    7 1 

    6 8

    5 4 

    7 1 

    6 4

    6 1

    5 4 

    2 7

    6 1

    5 4 

    7 2

    6 1

    5 4 

    7 1 

    3

    6 8

    5 4 

    5  5 3 

    3  3  4 

    3  4 

    1

    7 8

    2

    még 6 lépés 

    7 1 

    2

    6 8

    5 4 

    1

    2

    6 8

    5 4 

    17

    2

    6 8

    5 4 

    5 4 

    19Gregorics Tibor Mesterséges intelligencia 

    1. 

    2. 

    3. 

    4. 

  • 8/18/2019 Mesterséges Intelligencia

    22/61

    4

    7 1 

    8 6 

    5 4 

    2 1 

    7

    6 3 

    4 2 

    1 8 

    4 2 

    7 1 

    8 6 

    5 4 

    7 1 

    6 8

    5 4 

    7 1 

    6 4

    6 1

    5 4 

    7 1 

    2

    6 8

    5 4 

    2 7

    6 1

    5 4 

    7 2

    6 1

    5 4 

    7 1 

    3

    6 8

    5 4 

    1

    2

    6 8

    5 4 

    17

    2

    6 8

    5 4 

    6  6 4 

    5  5  6 

    6  7  5  7 

    5  7 1

    7 8

    2

    5 4 

    g+W 

    20Gregorics Tibor Mesterséges intelligencia 

    1. 

    2. 

    3.  4. 

    5. 

    6. 

    7 1 

    8 6 

    5 4 

    2 1 

    7

    6 3 

    4 2 

    1 8 

    4 2 

    7 1 

    8 6 

    5 4 

    7 1 

    6 8

    5 4 

    7 1 

    6 4

    6 1

    5 4 

    7 1 

    2

    6 8

    5 4 

    2 7

    6 1

    5 4 

    7 2

    6 1

    5 4 

    7 1 

    3

    6 8

    5 4 

    1

    2

    6 8

    5 4 

    17

    2

    6 8

    5 4 

    5

    7 75

    7 5 7

    5

    5

    75

    7

    1

    7 8

    2

    5 4 

    g+P

    21Gregorics Tibor Mesterséges intelligencia 

    1. 

    2. 

    3. 

    4. 

    5. 

     Fekete- fehér kirakó állapot gráfja 

    B W W _

    22Gregorics Tibor Mesterséges intelligencia 

    B _ W W B W _ W

     _ W B W

     _W W B

    W _ B W

    W W B _

    W W _ B

    W B _ W

     _ B W W

    W B W _

    W _ W B

    start

    cél  

    cél  

    cél  cél  

    Gregorics Tibor Mesterséges intelligencia  23

    B W W _

    B _ W W B W _ W

    W _ B WW B _ W

     _ B W W

    W B W _

    W _ W B

    start

    cél  

     Mélységi gráfkeresés 

    01

    2

    1

    3 4

    4

    5

    f = g  

    Gregorics Tibor Mesterséges intelligencia  24

    B W W _

    B _ W W B W _ W

    W _ B WW B _ W

     _ B W W

    W B W _

    W _ W B

    start

    01

    2

    1

    3 3

    4

    5

    Szélességi gráfkeresés 

     _ W B W

    W W B _

    cél  

    2

    4

    f = g  

    Gregorics Tibor Mesterséges intelligencia  25

    B W W _

    B _ W W B W _ W

    W _ B WW B _ W

     _ B W W

    W B W _

    W _ W B

    start

    cél  

    22

    2

    2

    1 1

    1

    0

    I(v)= minimálisan hány csere kell,

    hogy minden fehér

    minden feketét megelőzzön 

     Előre tekintő gráfkeresés f = I  

  • 8/18/2019 Mesterséges Intelligencia

    23/61

    5

    Gregorics Tibor Mesterséges intelligencia  26

    B W W _

    B _ W W B W _ W

    W _ B WW B _ W

     _ B W W

    W B W _

    start

    0+21+2

    2+2

    1+2

    3+1 3+1

    4+1

     A algoritmus 

     _ W B W

    W W B _

    cél  

    2+1

    4+0

    f = g + I  

    Gregorics Tibor Mesterséges intelligencia  27

    B W W _

    B _ W W B W _ W

    W _ B WW B _ W

     _ B W W

    start

    0+41+4

    2+4

    1+4

    3+2 3+2

     A algoritmus 

     _ W B W

    W W B _

    cél  

    2+2

    4+0

    f = g + 2*I  

    Gregorics Tibor Mesterséges intelligencia  28

    B W W _

    B _ W W B W _ W

    W _ B WW B _ W

    start

    0+41+4 1+3

    3+2 3+1

     A algoritmus 

     _ W B W

    W W B _

    cél  

    2+2

    4+0

    f = g + 2*I (van BW_ vagy _BW rész) 

    Gregorics Tibor Mesterséges intelligencia  29

    f Alg mo G

    -g MGK 5 8 5

    g SZGK 4 10 8

    I Előre tekintő   5 8 5

    g+I A alg 4 9 7

    g+2*I A alg 4 8 6

    g+2*I‒1(ha…)  A alg 4 7 5

     Elemzés 

    Ac  alg  Ac  alg  

    Ac  alg  

    3.3. A* algoritmus hatékonysága 

    Hatékonyság 

    Memória igény  Futási idő 

    Zárt csúcsok számatermináláskor   jól

     jellemzi a keresőgráf méretét 

    Kiterjesztések száma a zárt csúcsok számához

    viszonyítva 

    Olyan feladatokra vizsgáljuk a hatékonyságot, amelyeknekvan megoldása és ismert egy megengedhető heurisztikájatehát az A* algoritmus optimális megoldást talál hozzájuk. 

    Gregorics Tibor Mesterséges intelligencia 

     ZÁRT S   ~ az S  útkereső algoritmus által lezárt(kiterjesztett) csúcsok halmaza 

    Rögzítsünk egy feladatot és két, X  és Y , útkereső algoritmust. X nem rosszabb Y-nál az adott feladaton, ha ZÁRT  X  ⊆ ZÁRT Y   X jobb Y-nál az adott feladaton, ha  ZÁRT  X  ⊂ ZÁRT Y  

    Ezek alapján összevethető 1. két heurisztika. (Például két eltérő heurisztikájú A* 

    algoritmus ugyanazon a feladaton.)

    2. két útkereső algoritmus. (Például az A* algoritmus és egymásik –  megengedhető heurisztika mellett szintén optimális

    megoldást találó –  útkereső algoritmus a megengedhetőheurisztikájú feladatok egy-egy részhalmazán.) 

    3.3.1. A memória igény vizsgálata 

    Gregorics Tibor Mesterséges intelligencia 

  • 8/18/2019 Mesterséges Intelligencia

    24/61

    6

     Különböző heurisztikájú A* algoritmusokmemória igényének összehasonlítása 

    Az A1 (h1 heurisztikával) és A2 (h2 heurisztikával) A* algoritmusok  közül az A2 jobban informált, mintaz A1, ha minden n N \T  csúcsra teljesül, hogyh1(n)

  • 8/18/2019 Mesterséges Intelligencia

    25/61

    7

     Bizonyítható eredmények  

    A monoton heurisztikájú megengedhető feladatokra nézve az A* 

    algoritmus uralkodik a többi megengedhető algoritmuson. Az érdekes megengedhető problémákra (nem-patologikus: van

    olyan optimális megoldási út, amelynek minden csúcsára h

  • 8/18/2019 Mesterséges Intelligencia

    26/61

    8

     B algoritmus futási ideje 

    Bizonyítható, hogy a B algoritmus ugyanúgy működik, mintaz A*, azzal a kivétellel, hogy egy árokhoz tartozó csúcsotcsak egyszer terjeszt ki.

     Futási idő elemzése:• Legrosszabb esetben minden zárt csúcs küszöbcsúcs is, és

    ezek először küszöbcsúcsként terjesztődnek ki, hiszencsökkenő kiértékelő függvényt használunk. 

    • Az első árok egyedül a startcsúcs, a második árok csak amásodik küszöbcsúcsból áll, általában az i-dik ároklegfeljebb az összes addigi (i‒ 1 darab) küszöbcsúcsottartalmazhatja (a start csúcs nélkül), az utolsó, a k -adikárokban pedig legfeljebb k ‒ 1 darab csúcs lehet. 

    • Az összes kiterjesztések száma tehát legfeljebb ½⋅k 2 Gregorics Tibor Mesterséges intelligencia 

    Heurisztika szerepe

    Milyen a jó heurisztika? 

     –  megengedhető: h(n)  h*(n)•  Bár nincs mindig szükség optimális megoldásra.  

     –  jól informált: h(n) ~ h*(n)

     –  monoton: h(n)‒ h (m)  c(n,m)•  Ilyenkor nem érdemes B algoritmust  használni 

    Változó heurisztikák: 

     –  f=g+⋅ h ahol d –  B’ algoritmus

    Gregorics Tibor Mesterséges intelligencia 

  • 8/18/2019 Mesterséges Intelligencia

    27/61

    Gregorics Tibor Mesterséges intelligencia 

    IV. Célból indított keresés

    Gregorics Tibor Mesterséges intelligencia 

    1. Visszafelé haladó keresés 

    Gregorics Tibor Mesterséges intelligencia 

    Ha a problématér a cél felől nézve egyszerűbb (kevesebbalternatívát mutat), mint a start felől nézve, akkor érdemesvisszafelé, a cél irányából a start felé haladó kereséstalkalmazni.

    A megtalált megoldási utat azonban a starttól a célirányában kell értelmezni. (De vajon lehet-e, van-e mindenélnek inverze?) 

    start

    cél 

    Visszafelé haladó keresés alkalmazásának oka, a talált megoldás értelmezése 

    Gregorics Tibor Mesterséges intelligencia 

     Kocka-világ probléma állapot - gráfja 

    A megoldási út megtalálása a célbóla start felé haladva egyszerűbb. 

    start 

    cél 

    A  B 

    [3,3,3]

    [3,2,1]

    [1,3,3]

    [1,2,3]

    [2,2,3]

    [2,2,1]

    [3,1,1]

    [1,1,1]

    [2,3,3]

    [2,1,3]

    [1,1,3]

    [3,1,3] [3,2,3]

    [2,2,2]

    [3,2,2]

    [1,1,2]

    [3,1,2]

    [3,3,2] [3,3,1] [2,3,1] [2,1,1][1,2,2] [1,3,2]

    [2,3,2]

    [2,1,2] [1,2,1]

    [1,3,1]

     Két irányú keresés a Hanoi tornyai probléma állapotgráfján start

    cél 

     Kancsók problémája 

     Három kancsóban, egy öt, egy három és egy két literesben, együttesen5 liter bor van. Kezdetben az öt literes kancsó van tele. Töltögetésselérjük el, hogy a két literesbe pontosan 1 liter bor kerüljön! 

     Állapottér : AT = map(key:ℕ, value:ℕ) ahol Keys={5,3,2 }invariáns: i [5,3,2] this[i] = 5 [this[5], this[3], this[2]] 

    i{5,3,2}: this[i] ≦ i

     Művelet : Tölt (i,j): AT → AT (this : AT )HA  i,j{5,3,2} és i   j és min(this[i] , j‒ this[ j])>0 

    AKKOR   this[i] , this[ j] :=this[i]‒ min(this[i] , j‒ this[ j]) ,

    this[ j]+min(this[i] , j‒ this[ j])

     Kezdőállapot : [5, 0, 0]

    Célállapot : [ x, y, 1]

    Gregorics Tibor Mesterséges intelligencia 

     A művelet őrzi az invariánst. Sőt akezdő állásból elérhető állásokbanmindig van egy üres vagy teli kancsó.

  • 8/18/2019 Mesterséges Intelligencia

    28/61

     Kancsók - probléma állapot - gráfja 

    2 3 0 5 0 0

    0 3 2 3 0 21 2 2

    4 1 03 2 0

    2 1 2

    1 3 1 4 0 12 2 1 3 1 1

     start

    cél   cél   cél  cél  

    Gregorics Tibor Mesterséges intelligencia  Gregorics Tibor Mesterséges intelligencia 

     Miért nem oldja meg a kancsó- problémátegy visszafelé haladó keresés? 

    5 0 0

    ??

    5l   3l   2l  

    A [4,0,1] célállapotból indulva a [4,0,1]→ [5,0,0] útkönnyen megtalálható, de ez nem adja meg a feladatmegoldását:nincs [5,0,0]

     

    → [4,0,1] út.(csak [5,0,0]

     

    → [2,3,0]→ [2,1,2]→ [4,1,0]→ [4,0,1] út van)  A [2,2,1] célállapotból el lehet jutni a kezdőállapotba, de

    [5,0,0]- ből egyáltalán nem vezet út a [2,2,1] célállapotba. 

    5l   3l   2l  

    Gregorics Tibor Mesterséges intelligencia 

    Visszafelé haladó keresés feltételei 

    Az éleknek legyen visszafelé irányuló párja(legalábbis a megtalált megoldási út mentén). • Állapottér -reprezentáció esetén ez azt jelenti, hogy a

    műveleteknek legyen inverze. 

    Legyen ismert a célállapot, ahonnan majdelindíthatjuk a visszafelé haladó keresést.

    Mit tegyünk, ha ezek a feltételek nem állnak fenn, demégis célból indított keresést szeretnénk végezni? 

    ?? 2 

    1l

    ?? 2

    1l

    ??

    1 5l   3l   2l  

    5l   3l   2l   5l   3l   2l  

    cél 

    ??

    5l   3l   2l  1 

    Tölt23 Tölt32

    [ x,y,1]

    [ x,1,0][u,v,1][ x,3 1,2]

    Tölt25 Tölt52

    [5 1,y,2]↯ 

    [1,y,0]↯ 

    2. Probléma-redukció 

    Gregorics Tibor Mesterséges intelligencia 

    Tölt ij  egy áttöltést jelöl i- ből j-be

    állapot-halmaz

     y=4  x=1   x=4  y=-1 

     Kancsók - probléma redukciós gráfja 

    [ x,y,1]

    [ x,1,0][u,v,1][ x,2,2]

    [ x,0,1][2,1,2][3,2,0][ x,3,1]

    T 32 T 23 T 53 T 35 

    [4,1,0][2,3,0]

    T 25  T 23 

    T 32  T 52 

    T 32  T 52 

    [3,0,2][1,2,2]

    T 25  T 23 

    [2,1,2][5,0,0][0,3,2][3,2,0]

    T 53  T 23 T 32 T 35 

    [2,3,0][3,0,2]

    T 52 T 53 

    T 52 T 25 

    Gregorics Tibor Mesterséges intelligencia 

    [4,y,2]↯  [1,y,0] ↯ 

    T 52 T 25 

    a redukció iránya ellentétesa műveletekével 

    Egyszerűbb, mint azállapotgráf , kicsielágazás faktorral 

    csak a 2-es

    kancsót feltöltőműveletekkelredukálhatunk,

    a többihaszontalan

    csak a 2-es

    kancsót kiürítőműveletekkelredukálhatunk  

     Kancsók probléma redukciós operátora 

     RTölt (i,j) : 2

     AT ⟶2 AT   ahol i,j[5,3,2] és i   j∀ B 2 AT : 

     RTölt (i,j)(B)= { a AT │ 

    i [5,3,2] a[i] = 5 és  i[5,3,2]: a[i] ≦ i és min(a[i] , j‒ a[ j])>0 és 

    ∀b B : b[i]=a[i]‒ min(a[i] , j‒ a[ j]) és b[ j]=a[ j]+min(a[i] , j‒ a[ j]) és 

    b[k ]=a[k ] (ahol k ≠i és k ≠j) }

    Gregorics Tibor Mesterséges intelligencia 

    Tölt (i,j)-nek az i,j 

     paraméterekrevonatkozó része 

     Inv(this), most Inv(a)

    Tölt ij  hatása alapján

    a this- ből (most a- ból) kiszámított b 

    Tölt (i,j)-nek this-re (most

    a-ra) vonatkozó része 

  • 8/18/2019 Mesterséges Intelligencia

    29/61

    Gregorics Tibor Mesterséges intelligencia 

     Probléma-redukciós reprezentáció 

    Adott a probléma valamelyik állapottér -reprezentációja.(állapottér: AT , invariáns:  Inv: AT ⟶ )

    Az állapottér -reprezentáció minden M : AT ⟶ AT  műveletéhezmegadunk olyan R M :2

     AT ⟶2 AT  leképezést (redukciósoperátor ), amely egy adott állapot-halmazhoz azon állapotokhalmazát rendeli, amely bármelyik állapotából az M  műveleta megadott halmaz valamelyik állapotába vezet el.Formálisan: ∀ B2 AT  : R M ( B) = { a AT │ Inv(a) és M (a) B }(Haszontalan a redukció, ha RTölt (i,j)(B)= ∅) 

    Kiinduló halmaznak egy csupa (többnyire az összes)célállapotot tartalmazó halmazt választjuk. 

    Célhalmazai a kezdőállapotot is tartalmazó halmazok. Gregorics Tibor Mesterséges intelligencia 

     Megjegyzés 

    Cél a redukciós operátorok olyan sorozatának megtalálása,amely csupa célállapotot tartalmazó halmazbólkezdőállapotot tartalmazó halmazba vezet. A megoldás aredukciós operátorokhoz tartozó műveletek  visszafelékiolvasott sorozata lesz.

    A probléma-redukció modellezhető egy olyan irányítottgráffal, ahol a csúcsok állapot-halmazokat, az irányított éleka hasznos redukálások, startcsúcs a kiinduló állapot-halmazt,célcsúcsok a célhalmazokat szimbolizálják.  Üres, azaz ellentmondásos leírású állapot-halmaz csúcsából nem

    indulnak ki élek.

    Egy állapot-halmazból annak egy részhalmazába vivő út egy kör.

     Amikor redukciós modellezésre van szükség  

    ?

    holding ( A), ontable( B), clear ( B)

    Gregorics Tibor Mesterséges intelligencia 

    Ez az állapot-leírás hiányos (nem mond semmit a Ckockáról, azaz egy állapot-halmazt ad meg), ezért ebbőlindulva nem lehet a közönséges visszafelé haladókeresést indítani, hiszen –   bár a műveleteknek van

    inverzük, de –  a hiányos állapot nem elégíti ki egyikművelet előfeltételét sem. 

    1. Olyan (ÁR -beli) műveletet keresünk, amely előállítjaa cél valamelyik elemi állítását (literálját).

    2. Meghatározzuk azt az állapot-leírást, amelyállapotaiból a kiválasztott művelet a célba vezet. 

    ?

     Példa: Kockavilág probléma 

     Egy asztalon van néhány kocka (A,B,C,…), amelyeket egy robotkarmozgat: felemel, rátesz, levesz, lerak. Építsünk fel egy meghatározottalakzatot egy rögzített helyzetből kiindulva! 

     Állapottér : AT = 2 Alap 

    Az Alap az ontable(x), on(x,y), clear(x), handempty, holding(x)

    elemi állítások (pozitív literálok) összes alap-előfordulásaittartalmazza: ontable(A), ontable(B), on(C,A), … stb.

    invariáns: egy állapot nem tartalmaz ellentmondást (pl.: nem szerepel egyszerre on(C,B) és clear ( B))

     Kezdőállapot : ontable(B), clear(B), ontable(A), on(C,A), clear(C),handempty 

    Célállapot : on(A,B), on(B,C) 

    Gregorics Tibor Mesterséges intelligencia 

    B  A 

    hiányos állapot-leírás

     Kockavilág probléma műveletei 

     Műveletek :

    Pickup (x): AT → AT  HA  ontable(x),clear(x),handempty  this (this : AT ) 

    AKKOR   this := this {ontable(x),clear(x),handempty }{holding(x)}

    Putdown (x): AT → AT  HA  holding(x)  this (this : AT ) 

    AKKOR   this := this {holding(x)}{ontable(x),clear(x),handempty}

    Stack (x,y): AT → AT  HA  holding(x), clear(y)  this (this : AT ) 

    AKKOR   this := this {holding(x), clear(y)}{on(x,y),clear(x),handempty}

    Unstack (x,y): AT → ATHA  on(x,y),clear(x),handempty  this (this : AT ) 

    AKKOR   this := this {on(x,y),clear(x),handempty}{holding(x),clear(y)}Gregorics Tibor Mesterséges intelligencia 

    A  B 

    Invariánst (ellentmondás-mentességet)és az állapot-leírás teljességét tartják.

     A műveletek sémája másképp 

    M (u): AT⟶ AT { P  M (u);  D M (u);  A M (u) } 

    Gregorics Tibor Mesterséges intelligencia 

    A  B 

    stack (x,y): AT ⟶ AT

     P :  holding(x), clear(y)

     D: holding(x), clear(y) 

     A:  on(x,y),clear(x),handempty 

    unstack (x,y): AT ⟶ AT

     P : on(x,y),clear(x),handempty

     D: on(x,y),clear(x),handempty

     A: holding(x), clear(y) 

    pickup (x): AT ⟶ AT

     P : ontable(x),clear(x),handempty

     D: ontable(x),clear(x),handempty

     A:  holding(x) 

    putdown (x): AT⟶ AT

     P : holding(x)

     D: holding(x)

     A: ontable(x),clear(x),handempty

    előfeltétel-, törlési-, bővítési lista 

  • 8/18/2019 Mesterséges Intelligencia

    30/61

     Példa: Egy állapot -leírás néhány redukciója 

    ontable (A),

    clear(A),

    handempty,

    on(B,C),

    clear(B)

    holding(A)  ,

    on(B,C),

    clear(B)

    on (A,x),

    clear(A),

    handempty,

    clear(B),

    on(B,C)

    on (A,B),

    clear(A),

    handempty,

    on(B,C),

    true

    Gregorics Tibor Mesterséges intelligencia 

    Itt az ÁR műveleteiből képzettredukciós operátorokat alkalmazzuk  

     A redukciós operátor és annak alkalmazása 

    Kiválasztjuk az elérendő állapot-leírásban ( X ) az egyik

    megvalósítandó  L literált. Keresünk egy olyan művelet-sémát, amelynek bővítési listáján  

    megfelelő paraméterek megadása mellett  szerepel az L literál.Jelöljük a művelet-sémának az így paraméterezett példányát  M -mel. Tehát L A M .

    Kiszámoljuk a megelőző állapot-leírást ( R M ( X )):

    az M  művelet előfeltételét: P  M  

    a célállapotbeli literáloknak a megelőző állapot-leírásbanszükséges alakjait:  Reg [ L; M ] 

    Redukciós operátor formálisan: R M ( X )  = P 

     M     ⋀ L∊ X  Reg [ L; M ]

    Gregorics Tibor Mesterséges intelligencia 

     Regresszió 

     Reg [ L; M ] =

     L ha L A M  és L D M  

    true  ha L A M  

     false  ha L D M  

    Ez a L literálnak  az  M  műveletre vett regressziója  (elődje).

    Gregorics Tibor Mesterséges intelligencia 

    Egy X  állapot-leírás L literáljának  az alábbi formában kellszerepelnie az R M ( X ) állapot-leírásban ahhoz, hogy az L az M  műveletet végrehajtása után megjelenjen  X  állapotaiban: