Mesterséges intelligencia 1 előadások
|
|
- Liliána Pap
- 9 évvel ezelőtt
- Látták:
Átírás
1 VÁRTERÉSZ MAGDA Mesterséges intelligencia 1 előadások 2006/07-es tanév Tartalomjegyzék 1. A problémareprezentáció Az állapottér-reprezentáció Példák állapottér-reprezentációra Anyolcaskirakójáték Azállapottérgráf A megoldást kereső rendszerek Nemmódosítható megoldáskereső rendszerek Módosítható megoldáskereső rendszerek Az alap visszalépéses megoldáskeresők Visszalépéses megoldáskeresés köröket is tartalmazó gráfokban Ág és korlát algoritmus Keresőfával keresők Szélességi és mélységi keresők Optimáliskereső Best-first algoritmus Az A algoritmus Kétszemélyes stratégiai játékok és lépésajánló algoritmusok A játékok reprezentációja Astratégia
2 Tartalomjegyzék Tartalomjegyzék 3.3. Minimaxalgoritmus Negamax algoritmus Problémamegoldás redukcióval Problémaredukciós reprezentáció Példák problémaredukciós reprezentációra Hanoitornyai A problémaredukciós reprezentációt szemléltető gráf Problémaredukcióval reprezentált feladatok megoldáskereső módszerei Visszalépéses megoldáskeresés ÉS/VAGY fák esetén Keresőfával megoldáskeresés ÉS/VAGY fák esetén fejezet A problémareprezentáció A mesterséges intelligencia problémáinak megoldása a probléma megfogalmazásával kezdődik: a problémát leírjuk, reprezentáljuk. Az egyik legelterjedtebb reprezentációs technika az (state space representation). állapottér-reprezentáció 4
3 1. A problémareprezentáció 1.1. Az állapottér-reprezentáció 1.1. Az állapottér-reprezentáció Legyen adott egy probléma, amit jelöljünk p-vel. Megkeressük p világának legalább egy, de véges sok a probléma megoldása során fontosnak vélt meghatározóját. (pl. objektum, pozíció, méret, hőmérséklet, szín, stb) Tegyük fel, hogy m ilyen jellemzőt találtunk. Minden egyes jellemző p világát különböző értékekkel jellemzi. (pl. szín: fekete/fehér; hőmérséklet: [ 20, 40 ],stb) Ha a megadott jellemzők épp rendre a h 1,...,h m értékekkel rendelkeznek azt mondjuk, hogy p világa a (h 1,...,h m ) érték m-essel leírt állapotban (state) van. A világunk állapotainak halmaza az állapottér (state space) Az állapottér-reprezentáció 1. A problémareprezentáció Jelölje az i-edik jellemző által felvehető értékek halmazát H i (i = 1,...,m). Ekkorp állapotai elemei a H 1 H m halmaznak. Azokat a feltételeket, amelyek meghatározzák, hogy ebből a halmazból mely érték m-esek állapotok, kényszerfeltételeknek nevezzük. Az állapottér tehát az értékhalmazok Descartes-szorzatának a kényszerfeltételekkel kijelölt részhalmaza: A = { a a H 1 H m és kényszerfeltétel(a) }
4 1. A problémareprezentáció 1.1. Az állapottér-reprezentáció Az A állapottér azon állapotát, amit a probléma világa jellemzőinek kezdőértékei határoznak meg, kezdőállapotnak (initial state)nevezzük és kezdő-vel jelöljük. A kezdőállapotból kiindulva a probléma világának sorban előálló állapotait rendre meg szeretnénk változtatni, míg végül valamely számunkra megfelelő ún. célállapotba (goal state) jutunk. Jelölje C Aa célállapotok halmazát. Megadása kétféleképpen történhet: felsorolással: C = { c 1,...,c l c i A,i=1,...,l, l 1 } célfeltételek megadásával: C = { c c Aés célfeltételek(c) } Általában C A, hiszen kezdő / C, különben nincs megoldandó feladat Az állapottér-reprezentáció 1. A problémareprezentáció Hogy célállapotba juthassunk, meg kell tudnunk változtatni bizonyos állapotokat. Az állapotváltozásokat leíró leképezéseket operátoroknak (operator) nevezzük. Nem minden operátor alkalmazható feltétlenül minden állapotra, ezért meg szoktuk adni az operátorok értelmezési tartományát az operátoralkalmazási előfeltételek segítségével. Jelöljön az operátorok O véges halmazából o egy operátort. Ekkor és Dom(o) ={ a a Aés o-alkalmazásának-előfeltétele(a) } Rng(o) ={ o(a) a Dom(o) és o(a) A}.
5 1. A problémareprezentáció 1.1. Az állapottér-reprezentáció 1.1. definíció. Legyen p egy probléma. Azt mondjuk, hogy a p problémát állapottér-reprezentáltuk, ha megadtuk az négyest, azaz A, kezdő, C, O az A = halmazt, a probléma állapotterét, a kezdő Akezdőállapotot, a célállapotok C Ahalmazát és az operátorok O véges halmazát. Jelölése: p = A, kezdő, C, O Az állapottér-reprezentáció 1. A problémareprezentáció Legyen p egy probléma, A, kezdő, C, O p egy állapottér-reprezentációja és legyenek a, a A definíció. Az a állapotból az a állapot közvetlenül elérhető, ha van olyan o Ooperátor, hogy o-alkalmazásának-előfeltétele(a) és o(a) =a. Jelölése: a a, ha fontos, hogy o állítja elő a-ból a -t: a o a definíció. Az a állapotból az a állapot elérhető, ha vagy a = a, vagy van olyan a 1,...,a k A(k 2) (véges) állapotsorozat, hogy a = a 1, a = a k és a i a i+1 minden 1 i k 1 esetén. Jelölése: a a.
6 1. A problémareprezentáció 1.1. Az állapottér-reprezentáció 1.4. megjegyzés. Ha a i a i+1 minden 1 i k 1 esetén, akkor van olyan o 1,o 2,...,o k 1 operátorsorozat, hogy a i oi a i+1 (1 i k 1). Ilyenkor azt mondjuk, hogy az a állapotból az a állapot az o 1,o 2,...,o k 1 operátorsorozat segítségével elérhető. Jelölve: a a. o 1,...,o k definíció. Legyen p = A, kezdő, C, O. Ap probléma megoldható ebben az állapottér-reprezentációban, ha van olyan c C célállapot, hogy kezdő c. Ha kezdő c (r 1), akkor az o 1,...,o r o 1,...,o r operátorsorozat a probléma egy megoldása Az állapottér-reprezentáció 1. A problémareprezentáció A feladatunk lehet annak eldöntése, hogy megoldható-e a probléma az adott állapottérreprezentációban, egy (esetleg az összes) megoldás előállítása, egy (esetleg az összes) célállapot előállítása, valamilyen minősítés alapján jó megoldás előállítása (a megoldások között különbséget tehetünk, pl. a megoldás költsége alapján).
7 1. A problémareprezentáció 1.1. Az állapottér-reprezentáció Jelölje költség(o, a) az o operátor a állapotra alkalmazásának a költségét definíció. Legyen p = A, kezdő, C, O és o 1,...,o r Oa probléma egy megoldása, azaz kezdő c (c C). o 1,...,o r Legyen rendre a i a oi i+1 (1 i r), ahola 1 = kezdő és a r+1 = c. Ekkor a megoldás költsége: r költség(o i,a i ). i=1 Ha költség(o, a) 1, akkor a megoldás költsége az alkalmazott operátorok száma Az állapottér-reprezentáció 1. A problémareprezentáció Ha az állapottér-reprezentációt valamilyen programozási nyelv segítségével szeretnénk leírni, akkor meg kell adni az állapotok típusát, továbbá a kényszerfeltételeket leíró, logikai értéket visszaadó függvényt; a kezdőállapotot egy állapot típusú konstanssal; a célállapotok halmazát: állapot típusú konstansok felsorolásával vagy a célfeltételt leíró logikai értéket visszaadó függvénnyel; az operátorokat: függvényekkel vagy eljárásokkal. Egy-egy operátorhoz az alkalmazásának előfeltételét leíró logikai függvény is tartozhat. Alkalmas függvénnyel ki lehet számolni (vagy táblázattal meg lehet adni) az operátorok alkalmazási költségeit is.
8 1. A problémareprezentáció 1.2. Példák állapottér-reprezentációra 1.2. Példák állapottér-reprezentációra A nyolcas kirakó játék Adott nyolc számozott, négyzetalakú lapocska, melyek egy táblán 3 3-as sémában helyezkednek el. Egy lapocskányi hely a táblán így nyilván üres. Az üres hellyel szomszédos bármelyik lapocskát az üres helyre tolhatjuk. A feladat az, hogy adott kezdőállásból kiindulva adott célállásnak megfelelő elrendezést alakítsunk ki. A probléma világa: a tábla a számozott lapocskákkal. A világ leírása: a tábla egyes pozícióin épp mely számozott lapocskák vannak. Egy-egy pozícióra hivatkozás: (sor,oszlop). pozíció (1, 1) (1, 2)... (3, 3) lapocska l 1,1 l 1,2... l 3,3 ahol 0 l i,j 8 minden 1 i, j 3 esetén Példák állapottér-reprezentációra 1. A problémareprezentáció Tehát H i,j = H = {0, 1,...,8} minden 1 i, j 3-ra. A probléma világának egy-egy állapotát egy-egy olyan l 1,1 l 1,2 l 1,3 l 2,1 l 2,2 l 2,3 l 3,1 l 3,2 l 3,3 érték 9-es ((3 3)-as mátrix) határozza meg, melyben az értékek H- beli elemek, és az érték 9-esben minden egyes érték H-ból pontosan egyszer fordul elő: i j s o( (i = s) (j = o) (l i,j = l s,o )). A kezdőállapot és a célállapot: kezdő = 463 c =
9 1. A problémareprezentáció 1.2. Példák állapottér-reprezentációra A számozott lapocskák tologatásai során az üres pozíciója mindig változik, az eredetihez képest fel, le, jobbra vagy balra kerül egyegy pozícióval. Így tehát négy operátor segítségével leírhatjuk az állapotváltozásokat. A l 1,1 l 1,2 l 1,3 fel : l 2,1 l 2,2 l 2,3 l 3,1 l 3,2 l 3,3
10 1. A problémareprezentáció 1.3. Az állapottérgráf Minden a A-t szemléltető csúcsból irányított élt húzunk az a A-t szemléltető csúcsba, ha a-ból közvetlenül elérhető a, azaz a gráf irányított éleinek halmaza a következő: E = {(n a,n a ) a, a Aés a a }. Az N,s,T,E irányított gráfot a p probléma A, kezdő, C, O állapottér-reprezentációjához tartozó állapottérgráfjának vagy reprezentációs gráfjának nevezzük Az állapottérgráf 1. A problémareprezentáció 1.7. lemma. Legyen N,s,T,E a p probléma A, kezdő, C, O állapottér-reprezentációjához tartozó állapottérgráfja. Pontosan akkor vezet az állapottérgráf n a csúcsábólazettőlkülönbözőn a csúcsba irányított út, ha az a állapotból az a állapot elérhető. Bizonyítás. 1. Tegyük fel, hogy a a (a a ). Ez azt jelenti, hogy van olyan a 1,...,a k A(k 2) (véges) állapotsorozat, hogy a = a 1,a = a k és a i a i+1 minden 1 i k 1 esetén. Tehát a reprezentációs gráfban minden 1 i k 1-re az n ai csúcsból irányított él vezet az n ai+1 csúcsba, azaz (n ai,n ai+1 ) E. Ez viszont azt jelenti, hogy n a1 = n a csúcsból irányított út vezet az n ak = n a csúcsba.
11 1. A problémareprezentáció 1.3. Az állapottérgráf 2. Tegyük fel azt, hogy az állapottérgráf n a csúcsábólazettőlkülönböző n a csúcsba irányított út vezet. Ez azt jelenti, hogy van olyan (n a1,n a2 ), (n a2,n a3 ),...,(n ak 1,n ak ) E (k 2) irányított élsorozat az állapottérgráfban, hogy n a1 = n a és n ak = n a.ekkor egyrészt a 1 = a és a k = a, továbbá (n ai 1,n ai ) E csak akkor, ha a i 1 a i. Ez azt jelenti, hogy a a, tehát az a állapotból az a állapot elérhető Az állapottérgráf 1. A problémareprezentáció 1.8. tétel. Legyen N,s,T,E a p probléma A, kezdő, C, O állapottér-reprezentációjához tartozó állapottérgráfja. Pontosan akkor megoldható p, ha van az állapottérgráfban a startcsúcsból valamelyik terminális csúcsba vezető irányított út. Bizonyítás. 1. Egyrészt ha p megoldható, van olyan c C célállapot, hogy kezdő c. De ekkor az állapottérgráfban irányított út vezet az n kezdő startcsúcsból az n c T terminális csúcsba. 2. Másrészt ha van az állapottérgáfban az n kezdő startcsúcsból valamely terminális csúcsba vezető irányított út, a kezdő állapotból elérhető ezen terminális csúcs által szemléltetett állapot. De a terminális csúcsok célállapotokat szemléltetnek. Tehát p megoldható.
12 1. A problémareprezentáció 1.3. Az állapottérgráf A p probléma A, kezdő, C, O állapottér-reprezentációjában vegyük figyelembe az operátorok alkalmazási költségeit. Rendeljünk ekkor minden (n a,n a ) élhez költséget: ha a a,akkorköltség(o, a) o legyen ezen él költsége (jelölve: költség(n a,n a )). Egy (n a1,n a2 ), (n a2,n a3 ),...,(n ak 1,n ak ) E (k 2) irányított út költsége a benne szereplő élek költségösszege k 1 i=1 költség(n ai,n ai+1 ). Ha minden él költsége egységnyi, az irányított út költsége éppen az út éleinek a száma Az állapottérgráf 1. A problémareprezentáció Egy állapottér-reprezentált probléma megoldásának sikerét jelentősen befolyásolja a reprezentációs gráf bonyolultsága: a csúcsok száma, az egy csúcsból kiinduló élek száma, a hurkok és körök száma és hossza. Ezért célszerű minden lehetséges egyszerűsítést végrehajtani. A lehetséges egyszerűsítések: csúcsok számának csökkentése ügyes reprezentációval az állapottér kisebb méretű lehet; egy csúcsból kiinduló élek számának csökkentése az operátorok értelmezési tartományának alkalmas megválasztásával; fává alakítás a reprezentációs gráfban a hurkok, illetve körök kiegyenesítésével
13 2. fejezet A megoldást kereső rendszerek Az állapottérgráfban keressük a megoldást: a start csúcsból valamely terminális csúcsba vezető utat. Az állapottérgráfot implicit módon az állapottér-reprezentáció megadásával adjuk meg a megoldást kereső rendszereknek. Ezek a keresés során addig és úgy építik a gráfot, amíg megoldást nem találnak, vagy amíg valamilyen ok miatt kudarcot nem vallanak a kereséssel. 25 A megoldást kereső rendszerek felépítése: 2. A megoldást kereső rendszerek Az adatbázis az állapottérgráfnak a keresés során előállított része, amit kiegészíthetünk a hatékony kereséshez szükséges bizonyos információkkal. A műveletek módosítják az adatbázist, azaz az állapottérgráf adatbázisbeli részéből az állapottérgráf egy újabb (további) részét állítják elő. A rendszer alkalmazhat állapottér-reprezentációs operátorokból származtatott műveleteket, technikai műveleteket (pl. visszalépést). A műveleteknek is vannak végrehajtási feltételeik.
14 2. A megoldást kereső rendszerek A vezérlő irányítja a keresést. Megmondja, hogy a megoldáskeresés folyamán az adatbázisra, annak mely részén, mikor, melyik a végrehajtási feltételeknek eleget tevő művelet hajtódjon végre. Figyeli azt is, hogy befejeződhet-e a keresés, azaz megvan-e a probléma megoldása, vagy kiderült, hogy nem megoldható a probléma. 1: procedure Kereső( A, kezdő, C, O ) 2: adatbázis Inicializál(kezdő) 3: while Igaz do 4: if Megoldás-Talál(adatbázis) then 5: break 6: end if 7: if Nem-Folytat(adatbázis) then 8: break 9: end if 10: művelet Választ(adatbázis, műveletek) 11: adatbázis Alkalmaz(adatbázis, művelet) 12: end while 13: if Megoldás-Talál(adatbázis) then 14: Megoldás-Kiír(adatbázis) 15: else 16: print Sikertelen keresés 17: end if 18: end procedure 2. A megoldást kereső rendszerek
15 2. A megoldást kereső rendszerek A megoldást kereső rendszerek osztályozhatók: Módosítható-e valahogy egy már alkalmazott művelet hatása? nem: nemmódosítható megoldáskeresők igen: módosítható megoldáskeresők visszalépéses (backtracking) keresők keresőfával keresők Használunk-e valamiféle speciális tudást a keresés során? nem: irányítatlan (vak, szisztematikus) megoldáskeresők igen: heurisztikus megoldáskeresők A heurisztika (heurisztikus szabály, módszer) olyan ökölszabály, stratégia, trükk, egyszerűsítés, vagy egyéb eszköz, amely drasztikusan korlátozza a megoldás keresését nagyméretű reprezentációs gráfokban. 1 1 Feigenbaum és Feldman Milyen irányú a keresés? 2. A megoldást kereső rendszerek előrehaladó (forward) vagy adatvezérelt kereső rendszer: a kezdő állapotból kiindulva keresünk célállapotba vezető utat. visszafelé haladó (backward) vagy célvezérelt kereső rendszer: a célállapotból kiindulva visszafelé haladva próbáljuk rekonstruálni a kezdőállapotból odavezető utat. kétirányú(bidirectional) kereső rendszer: mindkét irányból elindul, s valahol találkozik
16 2. A megoldást kereső rendszerek A megoldáskereső rendszerek értékelési szempontjai: Teljesség (completeness): A rendszer minden olyan esetben megtalálja e a megoldást, amennyiben az létezik? Optimalitás (optimality): Több megoldás létezése esetén a rendszer az optimális megoldást találja-e meg? Időigény (time complexity): Mennyi ideig tart egy megoldás megtalálása? Tárigény (space complexity): Mekkora tároló területre van szükség a megoldás megtalálásához? 2.1. Nemmódosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek 2.1. Nemmódosítható megoldáskereső rendszerek A MI módszereit nem használó, ún. hagyományos feladatmegoldási módoknál alkalmazzák. A MI problémák megoldása során nem tudjuk, hogy a reprezentációs gráf megfelelő a megoldást is tartalmazó részét építjük-e, ezért ritkán alkalmazunk nemmódosítható keresést az MI területén. Legyen p = A,kezd,C, O. Egy nemmódosítható megoldáskereső rendszer adatbázisa az állapottérgráf egyetlen csúcsa, az ún. csúcs; műveletei az állapottér-reprezentációs operátorok; vezérlője: aktuális
17 2. A megoldást kereső rendszerek 2.1. Nemmódosítható megoldáskereső rendszerek 1: procedure Nemmódosítható-Kereső( A, kezdő, C, O ) 2: aktuális kezdő 3: while Igaz do 4: if aktuális Cthen 5: break 6: end if 7: O {o o O Előfeltétel(aktuális,o)} 8: if O then 9: operátor Választ(O ) 10: aktuális Alkalmaz(aktuális, operátor) 11: else 12: break 13: end if 14: end while 15: if aktuális Cthen 16: print aktuális 17: else 18: print Sikertelen keresés 19: end if 20: end procedure 2.1. Nemmódosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek Csak olyan probléma megoldásánál alkalmazzuk, ahol egy a célfeltételeknek eleget tevő állapotot kell előállítani! Ugyanazon probléma megoldásának keresése esetén a választás módjában lehet lényeges eltérés: irányítatlanul, szisztematikusan előre rögzített operátorsorrend alapján véletlenszerűen: próba-hiba módszer heurisztikusan: hegymászó módszer
18 2. A megoldást kereső rendszerek 2.1. Nemmódosítható megoldáskereső rendszerek Becsüljük meg a h : A R + ún. heurisztikus függvénnyel, hogy az egyes állapotokból legkevesebb hány operátor alkalmazásával érhetünk cálállapotba: { 0, ha a C h(a), ha c(c C a c), egyébként h(a) > 0. Ha az a állapot az aktuális, becsüljük meg h segítségével, hogy a milyen távol van a hozzá legközelebbi céltól: h(a). Legyen O = {o o O o-alkalmazásának-előfeltétele(a) h(o(a)) h(a) Azt az O -beli operátort fogjuk alkalmazni a-ra, amelyik a becslésünk szerint a legközelebb visz valamelyik terminálishoz: h(operátor(a)) = min { h(o(a)) o O } 2.1. Nemmódosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek 1: procedure Hegymászó-Algoritmus( A, kezdő, C, O, h) 2: aktuális kezdő 3: while Igaz do 4: if aktuális Cthen 5: break 6: end if 7: O {o o O Előfeltétel(aktuális,o) h(alkalmaz(aktuális,o)) h(aktuális)} 8: if O then 9: operátor Választ({o o O o (o O h(alkalmaz(aktuális,o)) h(alkalmaz(aktuális,o )))}) 10: aktuális Alkalmaz(aktuális, operátor) 11: else 12: break 13: end if 14: end while 15: if aktuális Cthen 16: print aktuális 17: else 18: print Sikertelen keresés 19: end if 20: end procedure
19 2. A megoldást kereső rendszerek 2.1. Nemmódosítható megoldáskereső rendszerek A nemmódosítható megoldáskereső rendszerek értékelése: Teljesség : Nem teljesek. Próba-hiba módszer: Ha olyan kört nem tartalmazó véges állapottérgráfokban keresünk, melyekben minden csúcsból vezet valamelyik terminális csúcsba irányított út, akkor előállít egy célállapotot. A hegymászó módszer esetén a heurisztika pontosságától függ, hogy a megoldást megtaláljuk-e vagy sem. Tárigény : Rendkívül kis adatbázissal dolgozik Módosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek 2.2. Módosítható megoldáskereső rendszerek Az alap visszalépéses megoldáskeresők Legyen p = A,kezd,C, O. Az alap visszalépéses megoldáskereső adatbázisa egy a startcsúcsból induló az ún. aktuális csúcsba vezető utat, az aktuális utat tartalmazza, az út csúcsait és a csúccsal kapcsolatban lévő éleket nyilvántartó csomópontokból épül fel. Egy csomópont az alábbi információkat tartalmazza: egy a Aállapotot; arra a csomópontra mutatót, mely a szülő állapotot (azt az állapotot, melyre operátort alkalmazva előállt a) tartalmazza; azt az operátort, melyet a szülő állapotra alkalmazva előállt a; a-ra a keresés során már alkalmazott (vagy még alkalmazható) operátorok halmazát.
20 2. A megoldást kereső rendszerek 2.2. Módosítható megoldáskereső rendszerek műveletei az operátorokból származtatott műveletek: egyo operátor kiterjesztésével nyert művelet alkalmazási előfeltétele: az aktuális csomópont állapotára alkalmazható o, de még a keresés során erre az állapotra (ezen az úton) még nem alkalmaztuk. hatása: a visszalépés alkalmazási előfeltétele: van (aktuális) csomópont az aktuális úton. hatása: vezérlője eldönti, hogy az adatbázisra mikor melyik műveletet kell végrehajtani, ha még nem teljesülnek a megállási feltételek Módosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek 1: procedure Alap-Backtrack-1( A, kezdő, C, O ) 2: Állapot[aktuális-csomópont] kezdő 3: Szülő[aktuális-csomópont] Nil 4: Operátor[aktuális-csomópont] 5: Kipróbált[aktuális-csomópont] 6: while Igaz do 7: if aktuális-csomópont = Nil then 8: break 9: end if 10: if Állapot[aktuális-csomópont] Cthen 11: break 12: end if 13: O {o o O Előfeltétel(Állapot[aktuális-csomópont],o) o/ Kipróbált[aktuális-csomópont]}
21 2. A megoldást kereső rendszerek 2.2. Módosítható megoldáskereső rendszerek 14: if O then 15: operátor Választ(O ) 16: Kipróbált[aktuális-csomópont] Kipróbált[aktuális-csomópont] {operátor} 17: Állapot[új] Alkalmaz(Állapot[aktuális-csomópont], operátor) 18: Szülő[új] aktuális-csomópont 19: Operátor[új] operátor 20: Kipróbált[új] 21: aktuális-csomópont új 22: else 23: aktuális-csomópont Szülő[aktuális-csomópont] 24: end if 25: end while 26: if aktuális-csomópont Nil then 27: Megoldás-Kiír(aktuális-csomópont) 28: else 29: print Nincs megoldás 30: end if 31: end procedure 2.2. Módosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek 1: procedure Alap-Backtrack-2( A, kezdő, C, O ) 2: Állapot[aktuális-csomópont] kezdő 3: Szülő[aktuális-csomópont] Nil 4: Operátor[aktuális-csomópont] 5: Alkalmazható[aktuális-csomópont] {o o O Előfeltétel(Állapot[aktuális-csomópont],o)} 6: while Igaz do 7: if aktuális-csomópont = Nil then 8: break 9: end if 10: if Állapot[aktuális-csomópont] Cthen 11: break 12: end if
22 2. A megoldást kereső rendszerek 2.2. Módosítható megoldáskereső rendszerek 13: if Alkalmazható[aktuális-csomópont] then 14: operátor Választ(Alkalmazható[aktuális-csomópont]) 15: Alkalmazható[aktuális-csomópont] Alkalmazható[aktuális-csomópont] \{operátor} 16: Állapot[új] Alkalmaz(Állapot[aktuális-csomópont], operátor) 17: Szülő[új] aktuális-csomópont 18: Operátor[új] operátor 19: Alkalmazható[új] {o o O Előfeltétel(Állapot[új],o)} 20: aktuális-csomópont új 21: else 22: aktuális-csomópont Szülő[aktuális-csomópont] 23: end if 24: end while 25: if aktuális-csomópont Nil then 26: Megoldás-Kiír(aktuális-csomópont) 27: else 28: print Nincs megoldás 29: end if 30: end procedure 2.2. Módosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek Ugyanazon probléma megoldásának keresése esetén a választás módjában lehet lényeges eltérés: irányítatlanul, szisztematikusan előre rögzített operátorsorrend alapján véletlenszerűen heurisztikusan: Becsüljük meg a h : A R + heurisztikával, hogy az egyes csúcsok milyen távol vannak a hozzájuk legközelebbi terminális csúcstól. Legyen O = {o o O o-alkalmazásának-előfeltétele(a)}. Azt az O -beli operátort fogjuk alkalmazni a-ra, amelyik a becslésünk szerint a legközelebb visz valamelyik terminálishoz: h(operátor(a)) = min { h(o(a)) o O }.
23 2. A megoldást kereső rendszerek 2.2. Módosítható megoldáskereső rendszerek Az alap visszalépéses megoldáskeresők értékelése Teljesség : Ha a reprezentációs gráf köröket nem tartalmazó véges gráf, akkor az alap visszalépéses megoldáskereső véges sok keresőlépés megtétele után befejezi a keresést, ha van megoldás, előállít egy lehetséges megoldást, ha nincs megoldás, azt felismeri. Tárigény : Kis méretű az adatbázis Módosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek Visszalépéses megoldáskeresés köröket is tartalmazó gráfokban Visszalépéses megoldáskeresés körfigyeléssel: Ha van megoldás, akkor van körmentes megoldás is. A vezérlő a visszalépést választja, ha az aktuális csúcs szerepelt már az aktuális úton. Visszalépéses megoldáskeresés úthosszkorláttal: Úthosszkorlátot vezetünk be, mely megakadályozza, hogy a köröket végtelen sokszor járjuk be. A vezérlő a visszalépést választja, ha az aktuális út hossza eléri, vagy meghaladja az úthosszkorlátot.
24 2. A megoldást kereső rendszerek 2.2. Módosítható megoldáskereső rendszerek 1: procedure Körfigyeléses-Backtrack( A, kezdő, C, O ) 2: Állapot[aktuális-csomópont] kezdő 3: Szülő[aktuális-csomópont] Nil 4: Operátor[aktuális-csomópont] 5: Alkalmazható[aktuális-csomópont] {o o O Előfeltétel(Állapot[aktuális-csomópont],o)} 6: while Igaz do 7: if aktuális-csomópont = Nil then 8: break 9: end if 10: if Állapot[aktuális-csomópont] Cthen 11: break 12: end if 13: if VoltMár(Állapot[aktuális-csomópont]) then 14: aktuális-csomópont Szülő[aktuális-csomópont] 15: end if 2.2. Módosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek 16: if Alkalmazható[aktuális-csomópont] then 17: operátor Választ(Alkalmazható[aktuális-csomópont]) 18: Alkalmazható[aktuális-csomópont] Alkalmazható[aktuális-csomópont] \{operátor} 19: Állapot[új] Alkalmaz(Állapot[aktuális-csomópont], operátor) 20: Szülő[új] aktuális-csomópont 21: Operátor[új] operátor 22: Alkalmazható[új] {o o O Előfeltétel(Állapot[új],o)} 23: aktuális-csomópont új 24: else 25: aktuális-csomópont Szülő[aktuális-csomópont] 26: end if 27: end while 28: if aktuális-csomópont Nil then 29: Megoldás-Kiír(aktuális-csomópont) 30: else 31: print Nincs megoldás 32: end if 33: end procedure
25 2. A megoldást kereső rendszerek 2.2. Módosítható megoldáskereső rendszerek 1: procedure Úthosszkorlátos-Backtrack( A, kezdő, C, O, korlát) 2: Állapot[aktuális-csomópont] kezdő 3: Szülő[aktuális-csomópont] Nil 4: Mélység[aktuális-csomópont] 0 5: Operátor[aktuális-csomópont] 6: Alkalmazható[aktuális-csomópont] {o o O Előfeltétel(Állapot[aktuális-csomópont],o)} 7: while Igaz do 8: if aktuális-csomópont = Nil then 9: break 10: end if 11: if Állapot[aktuális-csomópont] Cthen 12: break 13: end if 14: if Mélység[aktuális-csomópont] =korlát then 15: aktuális-csomópont Szülő[aktuális-csomópont] 16: end if 2.2. Módosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek 17: if Alkalmazható[aktuális-csomópont] then 18: operátor Választ(Alkalmazható[aktuális-csomópont]) 19: Alkalmazható[aktuális-csomópont] Alkalmazható[aktuális-csomópont] \{operátor} 20: Állapot[új] Alkalmaz(Állapot[aktuális-csomópont], operátor) 21: Szülő[új] aktuális-csomópont 22: Mélység[új] Mélység[aktuális-csomópont] +1 23: Operátor[új] operátor 24: Alkalmazható[új] {o o O Előfeltétel(Állapot[új],o)} 25: aktuális-csomópont új 26: else 27: aktuális-csomópont Szülő[aktuális-csomópont] 28: end if 29: end while 30: if aktuális-csomópont Nil then 31: Megoldás-Kiír(aktuális-csomópont) 32: else 33: print Sikertelen keresés 34: end if 35: end procedure
26 2. A megoldást kereső rendszerek 2.2. Módosítható megoldáskereső rendszerek Teljesség : Értékelés A körfigyeléses backtrack ha a reprezentációs gráf véges, akkor véges sok keresőlépés megtétele után befejezi a keresést, és ha van megoldás, előállít egy körmentes megoldást, ha nincs megoldás, azt felismeri. Az úthosszkorlátos backtrack tetszőleges reprezentációs gráf esetén véges sok keresőlépés megtétele után befejezi a keresést, ha van az úthosszkorlátnál nem hosszabb megoldás, előállít egy ilyen megoldást. Ha keresés nem egy megoldás megtalálásával ér véget, akkor az úthosszkorlátnál csak hosszabb megoldás lehet a reprezentációs gráfban. (Vagy nincs megoldás, vagy az úthosszkorlát túl kicsi.) 2.2. Módosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek Időigény : A körfigyeléses backtrack időigényes (főleg hosszú körök esetén). Tárigény : Az úthosszkorlátos backtrack adatbázisa legfeljebb úthosszkorlátnyi elemet tartalmaz. A megtalált megoldás nem feltétlen körmentes.
27 2. A megoldást kereső rendszerek 2.2. Módosítható megoldáskereső rendszerek Ág és korlát algoritmus A backtrack alkalmas optimális (legrövidebb) megoldás keresésére is. Egy induló úthosszkorlátnál nem hosszabb megoldást keresünk. Ha találunk ilyet, tároljuk, majd ennek hosszát új úthosszkorlátnak választva folytatjuk a keresést megjegyzés. Úthosszkorlát helyett költségkorlátot, csomópont mélysége helyett pedig az addig tartó út költségét is használhatjuk az algoritmusban. Ekkor legkisebb költségű megoldás előállítása lehet a cél Módosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek 1: procedure Ág-és-Korlát( A, kezdő, C, O, korlát) 2: talált Hamis 3: Állapot[aktuális-csomópont] kezdő 4: Szülő[aktuális-csomópont] Nil 5: Mélység[aktuális-csomópont] 0 6: Operátor[aktuális-csomópont] 7: Alkalmazható[aktuális-csomópont] {o o O Előfeltétel(Állapot[aktuális-csomópont],o)} 8: while Igaz do 9: if aktuális-csomópont = Nil then 10: break 11: end if 12: if Állapot[aktuális-csomópont] Cthen 13: talált Igaz 14: Megoldás-Feljegyez(aktuális-csomópont) 15: korlát Mélység[aktuális-csomópont]
28 2. A megoldást kereső rendszerek 2.2. Módosítható megoldáskereső rendszerek 20: if Alkalmazható[aktuális-csomópont] then 21: operátor Választ(Alkalmazható[aktuális-csomópont]) 22: Alkalmazható[aktuális-csomópont] Alkalmazható[aktuális-csomópont] \{operátor} 23: Állapot[új] Alkalmaz(Állapot[aktuális-csomópont], operátor) 24: Szülő[új] aktuális-csomópont 25: Mélység[új] Mélység[aktuális-csomópont] +1 26: Operátor[új] operátor 27: Alkalmazható[új] {o o O Előfeltétel(Állapot[új],o)} 28: aktuális-csomópont új 29: else 30: aktuális-csomópont Szülő[aktuális-csomópont] 31: end if 32: end while 33: if talált then 34: Megoldás-Kiír 35: else 36: print Sikertelen keresés 37: end if 38: end procedure 2.2. Módosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek Értékelés Optimalitás : Az ág és korlát algoritmus tetszőleges reprezentációs gráf esetén véges sok keresőlépés megtétele után befejezi a keresést, ha van az induló úthosszkorlátnál nem hosszabb megoldás, a legrövidebb megoldást állítja elő, ha a keresés nem megoldás megtalálásával ér véget, akkor az induló úthosszkorlátnál csak hosszabb megoldás lehet a reprezentációs gráfban. (Vagy nincs megoldás, vagy az induló úthosszkorlát túl kicsi.) Tárigény : Az ág és korlát adatbázisa legfeljebb kétszer az induló úthosszkorlátnyi csomópontot tartalmaz.
29 2. A megoldást kereső rendszerek 2.2. Módosítható megoldáskereső rendszerek Keresőfával keresők Legyen p = A,kezd,C, O. A keresőfával kereső rendszerek adatbázisa a reprezentációs gráf már bejárt részét feszítő fa, az ún. keresőfa. A keresőfa csúcsait és a velük kapcsolatban lévő éleket (explicit vagy implicit módon) nyilvántartó csomópontok az alábbi információkat tartalmazzák: egy a Aállapotot; arra a csomópontra mutatót, mely a szülő állapotot tartalmazza; azt az operátort, melyet a szülő állapotra alkalmazva előállt a; státusz: zárt,haa utódait tartalmazó csomópontokat a keresés során már előállítottuk; nyílt, egyébként Módosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek művelete a kiterjesztés: a keresőfát annak egy nyílt csomópontján keresztül kibővíti. alkalmazási előfeltétele: a keresőfában van nyílt csomópont. hatása: alkalmazzuk az összes alkalmazható operátort a nyílt csomópont állapotára, az előálló állapotok közül amelyek még nem szerepeltek a keresőfa egyetlen csomópontjában sem, azokból a keresőfába felfűzött új nyílt csomópont készül, amelyek már szerepeltek a keresőfa valamely csomópontjában, azok sorsa keresőfüggő. a kiterjesztett csomópont zárttá válik.
30 2. A megoldást kereső rendszerek 2.2. Módosítható megoldáskereső rendszerek vezérlő megmondja, hogy melyik nyílt csomópont legyen a következő lépésben kiterjesztve. Ha a kiválasztott nyílt csomópont állapota teljesíti a célfeltételeket, a keresőfában a szülőre mutatók mentén elő tudunk állítani egy megoldást is. Nincs megoldás, ha egyetlenegy nyílt csomópont sincs a keresőfában Módosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek 1: procedure Keresőfával-Kereső( A, kezdő, C, O ) 2: Állapot[csomópont] kezdő 3: Szülő[csomópont] Nil 4: Operátor[csomópont] 5: nyíltak {csomópont}; zártak 6: while Igaz do 7: if nyíltak = then 8: break 9: end if 10: csomópont Választ(nyíltak) 11: if Állapot[csomópont] Cthen 12: break 13: end if 14: Kiterjeszt(csomópont, nyíltak, zártak) 15: end while 16: if nyíltak then 17: Megoldás-Kiír(csomópont) 18: else 19: print Nincs megoldás 20: end if 21: end procedure
31 2. A megoldást kereső rendszerek 2.2. Módosítható megoldáskereső rendszerek Ugyanazon probléma megoldásának keresése esetén lényeges eltérés lehet 1. a választás módjában. A vezérlő választhat irányítatlanul, szisztematikusan a csomópontok keresőgráfbeli mélysége alapján: szélességi és mélységi keresők; a csomópontok állapotait előállító költség alapján: optimális kereső; heurisztikusan: best-first algoritmus; Aalgoritmusok. 2. abban, hogy mi történik, ha a keresőgráf egy csúcsához a keresés során újabb odavezető utat tár fel a vezérlő. 3. a célfeltételek vizsgálatának időpontjában Módosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek Szélességi és mélységi keresők 1. Egy csomópont előállításakor követjük, hogy a csomópontban nyilvántartott csúcs a keresőfában milyen mélyen van: { 0 ha m = s mélység(m) mélység(n)+1 (n, m) E. Kiterjesztésre a szélességi kereső vezérlője a legkisebb mélységi számú a mélységi kereső vezérlője a legnagyobb mélységi számú nyílt csomópontot választja ki. 2. Ha a vezérlő a keresőgráf egy csúcsához a keresés során újabb odavezető utat tár fel, ezt nem tárolja, elfelejti. 3. A tesztelést előre hozhatjuk.
32 2. A megoldást kereső rendszerek 2.2. Módosítható megoldáskereső rendszerek 1: procedure Kiterjeszt( A, kezdő, C, O, csomópont, nyíltak, zártak) 2: for all o Odo 3: if Előfeltétel(Állapot[csomópont], o) then 4: állapot Alkalmaz(Állapot[csomópont],o) 5: ny Keres(nyíltak, állapot) 6: z Keres(zártak, állapot) 7: if ny = Nil and z = Nil then 8: Állapot[új-csomópont] állapot 9: Szülő[új-csomópont] csomópont 10: Operátor[új-csomópont] o 11: Mélység[új-csomópont] Mélység[csomópont] +1 12: nyíltak nyíltak {új-csomópont} 13: end if 14: end if 15: end for 16: nyíltak nyíltak \{csomópont} 17: zártak zártak {csomópont} 18: end procedure 2.2. Módosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek 19: procedure Szélességi-Kereső( A, kezdő, C, O ) 20: Állapot[új-csomópont] kezdő 21: Szülő[új-csomópont] Nil 22: Operátor[új-csomópont] 23: Mélység[új-csomópont] 0 24: nyíltak {új-csomópont} 25: zártak 26: while Igaz do 27: if nyíltak = then 28: break 29: end if 30: csomópont Választ({cs cs nyíltak cs (cs nyíltak Mélység[cs] Mélység[cs ])}) 31: if Állapot[csomópont] Cthen 32: break 33: end if 34: Kiterjeszt( A, kezdő, C, O, csomópont, nyíltak, zártak) 35: end while
33 2. A megoldást kereső rendszerek 2.2. Módosítható megoldáskereső rendszerek 36: if nyíltak then 37: Megoldás-Kiír(csomópont) 38: else 39: print Nincs megoldás 40: end if 41: end procedure 2.2. Módosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek 1: procedure Mélységi-Kereső( A, kezdő, C, O ) 2: Állapot[új-csomópont] kezdő 3: Szülő[új-csomópont] Nil 4: Operátor[új-csomópont] 5: Mélység[új-csomópont] 0 6: nyíltak {új-csomópont} 7: zártak 8: while Igaz do 9: if nyíltak = then 10: break 11: end if 12: csomópont Választ({cs cs nyíltak cs (cs nyíltak Mélység[cs] Mélység[cs ])}) 13: if Állapot[csomópont] Cthen 14: break 15: end if 16: Kiterjeszt( A, kezdő, C, O, csomópont, nyíltak, zártak) 17: end while
34 2. A megoldást kereső rendszerek 2.2. Módosítható megoldáskereső rendszerek 18: if nyíltak then 19: Megoldás-Kiír(csomópont) 20: else 21: print Nincs megoldás 22: end if 23: end procedure 2.2. Módosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek A szélességi kereső értékelése Teljesség : A vezérlő, ha van megoldás, tetszőleges reprezentációs gráfban véges sok keresőlépés után előállít egy megoldást, ha nincs az adott reprezentációban megoldás, akkor véges gráf esetén azt a nyílt csomópontok elfogyásával felismeri. Optimalitás : Ha van megoldás, tetszőleges reprezentációs gráfban a vezérlő a legrövidebb megoldást állítja elő. Tárigény : Nagy az adatbázis. Legyen a reprezentációs fa minden csúcsának d gyermeke, és l hosszúságú a legrövidebb megoldás. Ekkor a keresőgráf csomópontjainak száma a keresés végére (a legrosszabb esetben): 1+d + d 2 + d d l+1 d O(d l+1 ).
35 2. A megoldást kereső rendszerek 2.2. Módosítható megoldáskereső rendszerek A mélységi kereső értékelése Teljesség : A vezérlő véges reprezentációs gráfban, ha van megoldás, véges sok keresőlépés után előállít egy megoldást, ha nincs a problémának az adott reprezentációban megoldása, akkor azt a nyílt csomópontok elfogyásával felismeri megjegyzés. A nyílt csomópontokat gyakran a szélességi kereső sorban, a mélységi kereső veremben tartja nyilván, melyből mélységi szám szerint ezek épp megfelelő sorrendben kerülnek ki Módosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek Optimális kereső 1. Minden csomópontnál számon tartjuk az odavezető nyilvántartott út költségét: { 0 ha m = s útköltség(m) útköltség(n) +költség(n, m) (n, m) E. útköltség (n) jelölje a startcsúcsból n-be jutás optimális költségét. Ekkor útköltség(n) útköltség (n), minden n N-re. Kiterjesztésre az optimális kereső vezérlője a legkisebb költségű nyílt csomópontot választja ki.
36 2. A megoldást kereső rendszerek 2.2. Módosítható megoldáskereső rendszerek 2. Ha a vezérlő a keresőgráf egy csúcsához a keresés során újabb odavezető utat tár fel, azaz az n csomópont kiterjesztéskor előállt állapot szerepel már a keresőgráf m csomópontjában nyíltként: ha az útköltség(n) +költség(n, m) < útköltség(m), ekkor az új kisebb költségű utat tároljuk, a régit elfelejtjük. zártként: az m csomópontot már n kiterjesztése előtt kiterjesztette a vezérlő, azaz útköltség(m) útköltség(n) volt, így útköltség(n) +költség(n, m) > útköltség(m). Az m-hez feltárt új út költségesebb. 3. A tesztelést nem hozhatjuk előre Módosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek 1: procedure Kiterjeszt( A, kezdő, C, O, költség, csomópont, nyíltak, zártak) 2: for all o Odo 3: if Előfeltétel(Állapot[csomópont], o) then 4: állapot Alkalmaz(Állapot[csomópont],o) 5: ny Keres(nyíltak, állapot) 6: z Keres(zártak, állapot) 7: if ny = Nil and z = Nil then 8: Állapot[új-csomópont] állapot 9: Szülő[új-csomópont] csomópont 10: Operátor[új-csomópont] o 11: Útköltség[új-csomópont] Útköltség[csomópont] +költség(o, Állapot[csomópont]) 12: nyíltak nyíltak {új-csomópont} 13: else if ny Nil then 14: új-út-költség Útköltség[csomópont]+költség(o, Állapot[csomópont]) 15: if új-út-költség < Útköltség[ny] then 16: Szülő[ny] csomópont 17: Operátor[ny] o 18: Útköltség[ny] új-út-költség 19: end if 20: end if 21: end if 22: end for 23: nyíltak nyíltak \{csomópont} 24: zártak zártak {csomópont} 25: end procedure
37 2. A megoldást kereső rendszerek 2.2. Módosítható megoldáskereső rendszerek 26: procedure Optimális-Kereső( A, kezdő, C, O, költség) 27: Állapot[új-csomópont] kezdő 28: Szülő[új-csomópont] Nil 29: Operátor[új-csomópont] 30: Útköltség[új-csomópont] 0 31: nyíltak {új-csomópont} 32: zártak 33: while Igaz do 34: if nyíltak = then 35: break 36: end if 37: csomópont Választ({cs cs nyíltak cs (cs nyíltak Útköltség[cs] Útköltség[cs ])}) 38: if Állapot[csomópont] Cthen 39: break 40: end if 41: Kiterjeszt( A, kezdő, C, O, költség, csomópont, nyíltak, zártak) 42: end while 43: if nyíltak then 44: Megoldás-Kiír(csomópont) 45: else 46: print Nincs megoldás 47: end if 48: end procedure 2.2. Módosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek Teljesség : A vezérlő, Az optimális kereső értékelése ha van megoldás, tetszőleges reprezentációs gráfban véges sok keresőlépés után előállít egy megoldást, ha nincs a problémának az adott reprezentációban megoldása, akkor véges gráf esetén azt a nyílt csomópontok elfogyásával felismeri. Optimalitás : Ha van megoldás, tetszőleges reprezentációs gráfban a vezérlő véges sok keresőlépés után az optimális megoldást állítja elő.
38 2. A megoldást kereső rendszerek 2.2. Módosítható megoldáskereső rendszerek Best-first algoritmus 1. A keresőfa minden csomópontjánál nyilvántartjuk, hogy a csomópontbeli állapot a h heurisztikus függvény szerint milyen távol van a hozzá legközelebbi céltól. Kiterjesztésre a best-first vezérlője a legkisebb heurisztikájú nyílt csomópontot választja ki (legjobb irányban haladó keresés). 2. Ha a vezérlő a keresőgráf egy csúcsához a keresés során újabb odavezető utat tár fel, ezt nem tárolja, elfelejti. 3. A tesztelést előre hozhatjuk Módosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek 1: procedure Kiterjeszt( A, kezdő, C, O, h, csomópont, nyíltak, zártak) 2: for all o Odo 3: if Előfeltétel(Állapot[csomópont], o) then 4: állapot Alkalmaz(Állapot[csomópont],o) 5: ny Keres(nyíltak, állapot) 6: z Keres(zártak, állapot) 7: if ny = Nil and z = Nil then 8: Állapot[új-csomópont] állapot 9: Szülő[új-csomópont] csomópont 10: Operátor[új-csomópont] o 11: Heurisztika[új-csomópont] h(állapot) 12: nyíltak nyíltak {új-csomópont} 13: end if 14: end if 15: end for 16: nyíltak nyíltak \{csomópont} 17: zártak zártak {csomópont} 18: end procedure
39 2. A megoldást kereső rendszerek 2.2. Módosítható megoldáskereső rendszerek 19: procedure Best-First( A, kezdő, C, O, h) 20: Állapot[új-csomópont] kezdő 21: Szülő[új-csomópont] Nil 22: Operátor[új-csomópont] 23: Heurisztika[új-csomópont] h(kezdő) 24: nyíltak {új-csomópont} 25: zártak 26: while Igaz do 27: if nyíltak = then 28: break 29: end if 30: csomópont Választ({cs cs nyíltak cs (cs nyíltak Heurisztika[cs] Heurisztika[cs ])}) 31: if Állapot[csomópont] Cthen 32: break 33: end if 34: Kiterjeszt( A, kezdő, C, O, h, csomópont, nyíltak, zártak) 35: end while 2.2. Módosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek 36: if nyíltak then 37: Megoldás-Kiír(csomópont) 38: else 39: print Nincs megoldás 40: end if 41: end procedure
40
41 2. A megoldást kereső rendszerek 2.2. Módosítható megoldáskereső rendszerek 2. Ha a vezérlő a keresőgráf egy csúcsához a keresés során újabb odavezető utat tár fel, azaz az n csomópont kiterjesztéskor előállt állapot szerepel már a keresőgráf m csomópontjában, és az útköltség(n) +költség(n, m) < útköltség(m), ekkor az új kisebb költségű utat tároljuk, a régit elfelejtjük. Ha m nyílt volt, más teendő nincs. Ha m zárt volt, a keresőfa m-ből induló részének csomópontjaiban az útköltség-et frissíteni kell, ami problémát okoz: külön eljárást írunk a frissítésre; az A algoritmussal frissíttetjük a részgráfot; megelőzzük a probléma kialakulását. 3. A tesztelést nem hozhatjuk előre Módosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek 1: procedure Kiterjeszt( A, kezdő, C, O, költség,h, csomópont, nyíltak, zártak) 2: for all o Odo 3: if Előfeltétel(Állapot[csomópont], o) then 4: állapot Alkalmaz(Állapot[csomópont],o) 5: ny Keres(nyíltak, állapot) 6: z Keres(zártak, állapot) 7: if ny = Nil and z = Nil then 8: Állapot[új-csomópont] állapot 9: Szülő[új-csomópont] csomópont 10: Operátor[új-csomópont] o 11: Útköltség[új-csomópont] Útköltség[csomópont] +költség(o, Állapot[csomópont]) 12: Heurisztika[új-csomópont] h(állapot) 13: nyíltak nyíltak {új-csomópont} 14: else 15: új-út-költség Útköltség[csomópont]+költség(o, Állapot[csomópont])
42 2. A megoldást kereső rendszerek 2.2. Módosítható megoldáskereső rendszerek 16: if ny Nil then 17: if új-út-költség < Útköltség[ny] then 18: Szülő[ny] csomópont 19: Operátor[ny] o 20: Útköltség[ny] új-út-költség 21: end if 22: else 23: if új-út-költség < Útköltség[z] then 24: Szülő[z] csomópont 25: Operátor[z] o 26: Útköltség[z] új-út-költség 27: zártak zártak \{z} 28: nyíltak nyíltak {z} 29: end if 30: end if 31: end if 32: end if 33: end for 34: nyíltak nyíltak \{csomópont} 35: zártak zártak {csomópont} 36: end procedure 2.2. Módosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek 37: procedure A-algoritmus( A, kezdő, C, O, költség, h) 38: Állapot[új-csomópont] kezdő 39: Szülő[új-csomópont] Nil 40: Operátor[új-csomópont] 41: Útköltség[új-csomópont] 0 42: Heurisztika[új-csomópont] h(kezdő) 43: nyíltak {új-csomópont} 44: zártak 45: while Igaz do 46: if nyíltak = then 47: break 48: end if 49: csomópont Választ({cs cs nyíltak cs (cs nyíltak (Útköltség[cs]+Heurisztika[cs]) (Útköltség[cs ]+Heurisztika[cs ]))} 50: if Állapot[csomópont] Cthen 51: break 52: end if 53: Kiterjeszt( A, kezdő, C, O, költség,h, csomópont, nyíltak, zártak) 54: end while 55: if nyíltak then 56: Megoldás-Kiír(csomópont) 57: else 58: print Nincs megoldás 59: end if 60: end procedure
43 2. A megoldást kereső rendszerek 2.2. Módosítható megoldáskereső rendszerek Teljesség : A vezérlő, Az A algoritmus értékelése ha van megoldás, tetszőleges reprezentációs gráfban véges sok keresőlépés után előállít egy megoldást, ha nincs a problémának az adott reprezentációban megoldása, akkor véges gráf esetén azt a nyílt csomópontok elfogyásával felismeri. Optimalitás : Nincs garancia az optimális megoldás előállítására. De ha minden a Aesetén h(a) h (a), ahol h (a) az a állapotból célba jutás optimális költsége, akkor az A algoritmus az optimális megoldást állítja elő, ha van megoldás. Ez az A algoritmus Módosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek 2.3. lemma. Az A algoritmus a működése során egy csúcsot legföljebb véges sokszor terjeszt ki. Bizonyítás. Egy csúcsot csak akkor terjeszthetünk ki, ha nyílt. A nyílt csúcsok közé legfeljebb annyiszor kerülhet, ahányszor egy minden addiginál olcsóbb utat találunk hozzá. Belátjuk, hogy véges sok ilyen út van. Jelölje δ az élek költségének pozitív alsó korlátját, vagyis minden (n, m) esetén költség(n, m) δ>0. Tegyük föl, hogy a p csúcsba először egy útköltség(p) költségű úton jutunk el. Ez az út legfeljebb útköltség(p)/δ hosszú lehet. Az ennél olcsóbb p-be vezető utak útköltség(p)/δ-nál biztosan rövidebbek. A útköltség(p)/δ korlátnál rövidebb p-be vezető utak száma viszont véges.
44 2. A megoldást kereső rendszerek 2.2. Módosítható megoldáskereső rendszerek 2.4. lemma. Az A algoritmus, hacsak közben nem fejezi be sikeresen a keresést, minden a nyíltak halmazba bekerülő csomópontot véges sok lépés után kiterjeszt. Bizonyítás. Legyen p nyíltak. Megmutatjuk, hogy p kiválasztása előtt kiterjesztendő (nála kisebb összköltséggel rendelkező) csomópontok száma véges és a 2.3 lemma miatt egy ilyen csak véges sokszor kerülhet vissza a nyílt csomópontok közé. Először belátjuk, hogy egy csomópont összköltsége arányos a csomópont mélységével. Amikor egy n csomópont bekerül a nyíltak halmazba, akkor összköltség(n) =útköltség(n) +heurisztika(n) útköltség(n) útköltség (n) úthossz (n) δ, ahol úthossz (n) az s-ből n-be vezető optimális költségű út hossza Módosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek Most egy mélységi korlátot adunk meg. Legyen [ ] összköltség(p) K = +1. (Nyilván K összköltség(p)/δ). δ Ennél a korlátnál mélyebben fekvő csomópontokra az összköltség nagyobb, mint összköltség(p). Ugyanis ha egy k csomópontra úthossz (k) >K,akkor összköltség(k) úthossz (k) δ>k δ összköltség(p). Tehát összköltség(k) > összköltség(p), azazazösszköltség(p)-nél nem nagyobb összköltséggel rendelkező csomópontok a K mélységi korlátnál magasabban helyezkednek el. Mivel az egyes csomópontokból kiinduló élek száma fölülről korlátos, így egy adott mélységi korlátnál magasabban fekvő csomópontok száma véges.
45 2. A megoldást kereső rendszerek 2.2. Módosítható megoldáskereső rendszerek 2.5. tétel. Az A algoritmus véges reprezentációs gráfban véges sok lépés után befejezi a keresést. Bizonyítás. A 2.3. lemma értelmében az A algoritmus a véges sok lehetséges csomópont mindegyikét legfeljebb véges sokszor terjesztheti ki. Ez azt jelenti, hogy véges sok lépésen belül az összes csomópontot végleg ki is terjeszti, ha előbb nem áll le sikeresen a keresés. Az algoritmus tehát vagy talál célállapotot tartalmazó csomópontot, vagy pedig elfogynak a nyílt csomópontok, és befejeződik a keresés Módosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek 2.6. lemma. Ha van megoldás, az A algoritmus adatbázisában a nyílt csomópontok között mindig van az optimális úton fekvő csúcs. Bizonyítás. Legyen s = n 0,n 1,...,n k = t optimális út. 1. kiválasztás előtt: s nyíltak. k. kiválasztás előtt: indukciós feltevésünk szerint j(n j nyíltak). Legyen i a legkisebb ilyen index. k+1. kiválasztás előtt: Ha nem n i -t terjesztjük ki, akkor n i nyílt marad. Ha n i -t terjesztjük ki, akkor akár új csomópont, akár már szerepelt a keresőfában: n i+1 nyílt lesz tétel. Tetszőleges reprezentációs gráf esetén, ha van megoldás, az A algoritmus véges sok lépésben megoldással fejezi be a keresést.
46 2. A megoldást kereső rendszerek 2.2. Módosítható megoldáskereső rendszerek 2.8. lemma. Az A algoritmus által kiterjesztésre kiválasztott tetszőleges n csomópontra összköltség(n) összköltség (s). Bizonyítás. Ha a gráfban nincs megoldás, összköltség (s) =, egyébként összköltség (s) =útköltség (s)+heurisztika (s) < az optimális megoldás költsége. A 2.6. lemma szerint van n kiterjesztése előtt a nyíltak között az optimális úton fekvő csomópont. Legyen m az első ilyen. Ekkor útköltség(m) =útköltség (m). Az algoritmus az n csúcsot választotta kiterjesztésre, tehát összköltség(n) összköltség(m). De összköltség(m) =útköltség (m)+heurisztika(m) útköltség (m)+heurisztika (m) =összköltség (m) =összköltség (s), amiből összköltség(n) összköltség (s) következik Módosítható megoldáskereső rendszerek 2. A megoldást kereső rendszerek A 2.8. lemmát a következőképpen is megfogalmazhatjuk: Annak szükséges feltétele, hogy az A algoritmus egy n csomópontot kiterjesztésre kiválasszon: összköltség(n) összköltség (s). Tehát az S = {n összköltség(n) > összköltség (s)} csomópontok nem kerülnek soha kiterjesztésre, nem is kell őket a keresőfában őrizni. Nem ismerjük ugyanakkor az összköltség (s) értéket. Becsüljük meg: legyen K összköltség (s). Ekkor az S = {n összköltség(n) >K} S csomópontokat a keresőfából elhagyhatjuk. Annak elegendő feltétele, hogy az A algoritmus egy n csomópontot kiterjesztésre kiválasszon: összköltség(n) < összköltség (s).
Gráfokkal megoldható hétköznapi problémák
Eötvös Loránd Tudományegyetem Természettudományi Kar Gráfokkal megoldható hétköznapi problémák Szakdolgozat Készítette Vincze Ágnes Melitta Konzulens Héger Tamás Budapest, 2015 Tartalomjegyzék Bevezetés
2. Halmazelmélet (megoldások)
(megoldások) 1. A pozitív háromjegy páros számok halmaza. 2. Az olyan, 3-mal osztható egész számok halmaza, amelyek ( 100)-nál nagyobbak és 100-nál kisebbek. 3. Az olyan pozitív egész számok halmaza, amelyeknek
á á á í ö á ö á á á ó ő ó ö á á á á ő ő á á ö ü Ü ó ő í ó ö ü ö ö í ó ö í ó ö ü Ü ö ü í ö ü ö í á á ö ü á ü ó á ö á í ö á á á á á á ö ó á á á á ő ö á á á á ó á ö á á á í á á ö í ő í ö ü ö ö í á í ö ö á
Mesterséges Intelligencia I. (I602, IB602)
Dr. Jelasity Márk Mesterséges Intelligencia I. (I602, IB602) harmadik (2008. szeptember 15-i) előadásának jegyzete Készítette: Papp Tamás PATLACT.SZE KPM V. HEURISZTIKUS FÜGGVÉNYEK ELŐÁLLÍTÁSA Nagyon fontos
Á Í Á Ó É ö á í á ő á á Á ő ő á ő á í á ő á á á á í ő ö í á á í á á ö ő á í ő áí á á ő á í í á ú ü ö á ú ö á í á á á ö á á ő á á á ő á ő á ú ü á ő á í ő ő ő áí á á ö ő á ő á á ő ő á í á ő á ő á á á ü ő
Mátrixaritmetika. Tartalom:
Mátrixaritmetika Tartalom: A vektor és mátrix fogalma Speciális mátrixok Relációk és műveletek mátrixokkal A mátrixok szorzása A diadikus szorzat. Hatványozás Gyakorlati alkalmazások Készítette: Dr. Ábrahám
Bevezetés a játékelméletbe Kétszemélyes zérusösszegű mátrixjáték, optimális stratégia
Bevezetés a játékelméletbe Kétszemélyes zérusösszegű mátrixjáték, optimális stratégia Készítette: Dr. Ábrahám István A játékelmélet a 2. század közepén alakult ki. (Neumann J., O. Morgenstern). Gyakran
Bináris keres fák kiegyensúlyozásai. Egyed Boglárka
Eötvös Loránd Tudományegyetem Természettudományi Kar Bináris keres fák kiegyensúlyozásai BSc szakdolgozat Egyed Boglárka Matematika BSc, Alkalmazott matematikus szakirány Témavezet : Fekete István, egyetemi
Általános statisztika II. Kriszt, Éva Varga, Edit Kenyeres, Erika Korpás, Attiláné Csernyák, László
Általános statisztika II Kriszt, Éva Varga, Edit Kenyeres, Erika Korpás, Attiláné Csernyák, László Általános statisztika II Kriszt, Éva Varga, Edit Kenyeres, Erika Korpás, Attiláné Csernyák, László Publication
Halmazok. Halmazelméleti lapfogalmak, hatványhalmaz, halmazm veletek, halmazm veletek azonosságai.
Halmazok Halmazelméleti lapfogalmak, hatványhalmaz, halmazm veletek, halmazm veletek azonosságai. 1. lapfogalmak halmaz és az eleme fogalmakat alapfogalmaknak tekintjük, nem deniáljuk ket. Jelölés: x H,
KOVÁCS BÉLA, MATEMATIKA I.
KOVÁCS BÉLA, MATEmATIkA I 5 V ELEmI ALGEbRA 1 BINÁRIS műveletek Definíció Az halmazon definiált bináris művelet egy olyan függvény, amely -ből képez -be Ha akkor az elempár képét jelöljük -vel, a művelet
Programozási módszertan. Dinamikus programozás: Nyomtatási feladat A leghosszabb közös részsorozat
PM-04 p. 1/18 Programozási módszertan Dinamikus programozás: Nyomtatási feladat A leghosszabb közös részsorozat Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu
1. AZ MI FOGALMA. I. Bevezetés. Tulajdonságok. Kezdet ELIZA. Első szakasz (60-as évek)
1. AZ MI FOGALMA I. Bevezetés Nincs pontos definíció Emberi gondolkodás számítógépes reprodukálása Intelligens viselkedésű programok Az ember számára is nehéz problémák számítógépes megoldása Intellektuálisan
SZAKDOLGOZAT. Nagy Gábor
SZAKDOLGOZAT Nagy Gábor Debrecen 2008 Debreceni Egyetem Informatikai Kar Megoldáskereső Módszerek Témavezető: Dr. Halász Gábor Egyetemi docens Készítette: Nagy Gábor Programtervező Informatikus Debrecen
A digitális számítás elmélete
A digitális számítás elmélete 1. előadás szept. 19. Determinisztikus véges automaták 1. Példa: Fotocellás ajtó m m m k b s = mindkét helyen = kint = bent = sehol k k b s m csukva b nyitva csukva nyitva
Érdekes informatika feladatok
K. L. Érdekes informatika feladatok XXVIII. rész A konvex burkoló (burok) Legyen S a Z sík egy ponthalmaza. S konvex, ha tetszőleges A, B S-beli pont esetén az AB szakasz is S-be esik. Legyen S a Z sík
Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)
Programozás alapjai C nyelv 5. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.17. -1- Tömbök Azonos típusú adatok tárolására. Index
Fordítóprogramok felépítése, az egyes programok feladata. A következő jelölésmódot használjuk: program(bemenet)(kimenet)
Fordítóprogramok. (Fordítóprogramok felépítése, az egyes komponensek feladata. A lexikáliselemző működése, implementációja. Szintaktikus elemző algoritmusok csoportosítása, összehasonlítása; létrehozásuk
Erdélyi Magyar TudományEgyetem (EMTE
TARTALOM: Általánosságok Algoritmusok ábrázolása: Matematikai-logikai nyelvezet Pszeudokód Függőleges logikai sémák Vízszintes logikai sémák Fastruktúrák Döntési táblák 1 Általánosságok 1. Algoritmizálunk
MATEMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ
Matematika emelt szint 1613 ÉRETTSÉGI VIZSGA 016. május 3. MATEMATIKA EMELT SZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ EMBERI ERŐFORRÁSOK MINISZTÉRIUMA Fontos tudnivalók Formai előírások:
Algoritmuselmélet. Király Zoltán ELTE Matematikai Intézet. 2013. február 18. Legfrissebb, on-line verzió: http://www.cs.elte.hu/~kiraly/algelm.
Algoritmuselmélet Király Zoltán ELTE Matematikai Intézet 2013. február 18. Legfrissebb, on-line verzió: http://www.cs.elte.hu/~kiraly/algelm.pdf 1.3. verzió Tartalomjegyzék I. Alapvető algoritmusok 6 1.
II. Szabályalapú következtetés
Szabályalapú következtetés lényege II. Szabályalapú következtetés Szabályalapú technikáknál az ismereteket vagy ha-akkor szerkezetű kal, vagy feltétel nélküli tényállításokkal írják le. a feladat megoldásához
SZAKDOLGOZAT. Hucker Dávid
SZAKDOLGOZAT Hucker Dávid Debrecen 2010 Debreceni Egyetem Informatikai Kar Kétszemélyes játékok fejlesztése Java-ban Témavezető: Jeszenszky Péter Egyetemi adjunktus Készítette: Hucker Dávid Programtervező
2.3. A C nyelv utasításai
2.3. A C nyelv utasításai A C szabvány hét csoportban osztályozza a C nyelv utasításait: Csoport Kulcsszavak, ill. jelölések Kifejezés utasítás Üres utasítás: ; Összetett utasítás: } Szelekciós utasítások:
Amortizációs költségelemzés
Amortizációs költségelemzés Amennyiben műveleteknek egy M 1,...,M m sorozatának a futási idejét akarjuk meghatározni, akkor egy lehetőség, hogy külön-külön minden egyes művelet futási idejét kifejezzük
Gazdasági informatika vizsga kérdések
Gazdasági informatika vizsga kérdések 1. Mi az adatbázis? Adatbázisnak a valós világ egy részhalmazának leírásához használt adatok összefüggı, rendezett halmazát nevezzük. 2. Mit az adatbázis-kezelı rendszer?
Mesterséges intelligencia 1 előadások
VÁRTERÉSZ MAGDA Mesterséges intelligencia 1 előadások 2006/07-es tanév Tartalomjegyzék 1. A problémareprezentáció 4 1.1. Az állapottér-reprezentáció.................................................. 5
Analízisfeladat-gyűjtemény IV.
Oktatási segédanyag a Programtervező matematikus szak Analízis. című tantárgyához (003 004. tanév tavaszi félév) Analízisfeladat-gyűjtemény IV. (Függvények határértéke és folytonossága) Összeállította
A mesterséges intelligencia alapjai
A mesterséges intelligencia alapjai Az előadások mellé vetített anyag Várterész Magda A mesterséges intelligencia alapjai: Az előadások mellé vetített anyag Várterész Magda A tananyag a TÁMOP-4.1.2-08/1/A-2009-0046
1 Rendszer alapok. 1.1 Alapfogalmak
ÉRTÉKTEREMTŐ FOLYAM ATOK MENEDZSMENTJE II. RENDSZEREK ÉS FOLYAMATOK TARTALOMJEGYZÉK 1 Rendszer alapok 1.1 Alapfogalmak 1.2 A rendszerek csoportosítása 1.3 Rendszerek működése 1.4 Rendszerek leírása, modellezése,
ó Á á á ő Á Í ő Á ő á ő ő Á ó Í í Í Í Á ő Í Í Ö ó á Ü é ő á ö á é ő ő í á í Ö á á Ú í á ő á á á á ü é ó á á ú í ó é é é á í á á ü ö ö á á á á é ö á ő á á ő á á ú é ö á ú ú é ö á ú ú é ö á ú ú á
ö ó ú ó é é ó ö ó é ó á í é ő í ö íá ó ó í í é ó á í é é á ó á á é í é ó á é ó ó á á á é á ó ö á é ű é í é ó é ó á íű ó é ö é ó í ó é á á é é íá é Á á á ö é ö é á é á á á í é ó á é ó ö ó á Ü é Á á ű ó
8. Mohó algoritmusok. 8.1. Egy esemény-kiválasztási probléma. Az esemény-kiválasztási probléma optimális részproblémák szerkezete
8. Mohó algoritmusok Optimalizálási probléma megoldására szolgáló algoritmus gyakran olyan lépések sorozatából áll, ahol minden lépésben adott halmazból választhatunk. Sok optimalizálási probléma esetén
ú É ú ü ú ü ü ú ú ú Í ü ü ü Í ű ü ü ü ü ü ü ü ű ű ü ü ü Í ű ü ú ü ü ú ú ú É Á Á É Á Ő Á Á Á Á É ü Á É ú ú Ó É É Á Í Á ú ü Ó Á Á ú ü ü Á É Á Ó ú ü ú Í ú ú ú ű Í Í ű ú ú ú Í ü Í ü ü ű ú ú ű Í ü ú ú Í ú ú
Intelligens robotok. Előadás vázlat. 1 előadás
Intelligens robotok Előadás vázlat 1 előadás Felhasznált Irodalom: Összeállította: Harmati István Ph.D., egyetemi adjunktus J. R. Kok, M. T. J. Spaan, N. Vlassis: Non-commutative multi-robot cooperation
H4R, S4D és S4R DVR kártyák és vezérlő szoftver Használati útmutató 1. Bevezető Az S4D és S4R videó és hang digitalizáló kártyák, valamint a H4R videó és hang digitalizáló/rögzítő kártya PC kompatibilis
Az informatika tárgy oktatásának folyamata. Dr. Nyéki Lajos 2015
Az informatika tárgy oktatásának folyamata Dr. Nyéki Lajos 2015 Az oktatási folyamat fogalma Oktatási folyamat - az a folyamat, amelynek során az egyes tantárgyak éves vagy több éves tananyagának feldolgozására
Regressziószámítás alkalmazása kistérségi adatokon
Lengyel I. Lukovics M. (szerk.) 2008: Kérdıjelek a régiók gazdasági fejlıdésében. JATEPress, Szeged, 264-287. o. Regressziószámítás alkalmazása kistérségi adatokon Szakálné Kanó Izabella 1 A lokális térségek
Á ü ü Á Á Á ü Á ű ű ű Ö ü ü ü ü ü ü ü ű É É É É Ö Á ű ű ű Á ű ű Á ű Ö Í ű ü ü ü ü Í ü Í Ü Ö ü Ü ü ű ű Ö Ö Ü ü ü ű ü Í ü ü ü Ő Ő Ü ü Í ű Ó ü ű Ú ü ü ü ü ü Ö ü Ű Á Á ű É ü ü ü ü ű ü ü ü ű Ö Á Í Ú ü Ö Í Ö
ü ű ű Á É É Á Á Ó ü ú Á É É ó ü ű É ó ó ü ü ó ó ü ű ü ú í ü ú í ü í ú ü ű óí í ü ü ű í ó ó ó ü ű ü ü ű ú í ó ü ó ü ű í ü ű ó í ü ű ü ű ü ű í ű ű ó ó í ü ű ü í ó í ó ó í ó ü í í í í ű ü í ó ó ó ú ó í ú
Alapfokú nevelés-oktatás szakasza, alsó tagozat, 1 4. évfolyam
3. melléklet a /2014. ( ) EMMI rendelethez 1. A kerettantervi rendelet 1. melléklet Kerettanterv az általános iskola 1-4. évfolyamára cím Alapfokú nevelés-oktatás szakasza, alsó tagozat, 1-4. évfolyam
II. év. Adatbázisok és számítógépek programozása
II. év Adatbázisok és számítógépek programozása A programozási ismeretek alapfogalmai a) algoritmus b) kódolás c) program a) algoritmus: elemi lépések sorozata, amely a következı tulajdonságokkal rendelkezik:
Tervezett erdőgazdálkodási tevékenységek bejelentése
Tervezett erdőgazdálkodási tevékenységek bejelentése ERDŐGAZDÁLKODÁSI HATÓSÁGI BEJELENTÉSEK/ TERVEZETT ERDŐGAZDÁLKODÁSI TEV. BEJELENTÉSE A Tervezett erdőgazdálkodási tevékenységek bejelentése a fakitermelési
Ingatlanvagyon értékelés
Nyugat-Magyarországi Egyetem Geoinformatikai Kar Ingatlanfejlesztı 8000 Székesfehérvár, Pirosalma u. 1-3. Szakirányú Továbbképzési Szak Ingatlanvagyon értékelés 4. A vagyon elemzése Szerzı: Harnos László
Felkészülést segítő kérdések Gépszerkesztés alapjai tárgyból
Felkészülést segítő kérdések Gépszerkesztés alapjai tárgyból - Ismertesse a kézi rajzkészítési technikát (mikor használjuk, előny-hátrány stb.)! Kézi technikák közül a gondolatrögzítés leggyorsabb, praktikus
Most akkor nincs csőd? - Mi folyik a Quaestornál?
2015.03.23. Körlevél tartalma Forrás: http://www.portfolio.hu/vallalatok/most_akkor_nincs_csod_mi_folyik_a_quaestornal.211744.h tml Most akkor nincs csőd? - Mi folyik a Quaestornál? 2015. március 23. 10:02
Bevezetés a programozásba. 12. Előadás: 8 királynő
Bevezetés a programozásba 12. Előadás: 8 királynő A 8 királynő feladat Egy sakktáblára tennénk 8 királynőt, úgy, hogy ne álljon egyik sem ütésben Ez nem triviális feladat, a lehetséges 64*63*62*61*60*59*58*57/8!=4'426'165'368
Á É ö ó ú á ö á ö ű ű ö ő á á ó ú á ó á ő ó á ő á ö á ö á ö Ú ó á á í ó ö ö á ő á á í ó í ú ő ö ö ö ö á á á ó á óí á ő á á á í ü Í á á ű ó ó ó á ó á í í ő í á ú á ő á á á á í á á á í á á á ú á á ö ö ö
3. Strukturált programok
Ha egy S program egyszerű, akkor nem lehet túl nehéz eldönteni róla, hogy megold-e egy (A,Ef,Uf) specifikációval megadott feladatot, azaz Ef-ből (Ef által leírt állapotból indulva) Uf-ben (Uf által leírt
Szeminárium-Rekurziók
1 Szeminárium-Rekurziók 1.1. A sorozat fogalma Számsorozatot kapunk, ha pozitív egész számok mindegyikéhez egyértelműen hozzárendelünk egy valós számot. Tehát a számsorozat olyan függvény, amelynek az
A két csapatra osztás leggyakoribb megvalósításai: Lyukas teli (vagy sima vagy nem lyukas)
Eredeti forrás: Pintér Klára: Játsszunk Dienes Zoltán Pál logikai készletével! http://www.jgypk.u-szeged.hu/methodus/pinter-klara-jatsszunk-logikat-logikai-keszlettel/ A logikai készlet lapjaival kapcsolatos
Bevezetés. Párhuzamos vetítés és tulajdonságai
Bevezetés Az ábrázoló geometria célja a háromdimenziós térben elhelyezkedő alakzatok helyzeti és metrikus viszonyainak egyértelműen és egyértelműen visszaállítható (rekonstruálható) módon történő való
Matematikai és matematikai statisztikai alapismeretek
Kézirat a Matematikai és matematikai statisztikai alapismeretek című előadáshoz Dr. Győri István NEVELÉSTUDOMÁNYI PH.D. PROGRM 1999/2000 1 1. MTEMTIKI LPOGLMK 1.1. Halmazok Halmazon mindig bizonyos dolgok
1. Adatok közelítése. Bevezetés. 1-1 A közelítő függvény
Palácz Béla - Soft Computig - 11-1. Adatok közelítése 1. Adatok közelítése Bevezetés A természettudomáyos feladatok megoldásához, a vizsgált jeleségek, folyamatok főbb jellemzői közötti összefüggések ismeretére,
Miskolci Egyetem GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR. Analízis I. példatár. (kidolgozott megoldásokkal) elektronikus feladatgyűjtemény
Miskolci Egyetem GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR Analízis I. példatár kidolgozott megoldásokkal) elektronikus feladatgyűjtemény Összeállította: Lengyelné Dr. Szilágyi Szilvia Miskolc, 013. Köszönetnyilvánítás
Lehet vagy nem? Konstrukciók és lehetetlenségi bizonyítások Dr. Katz Sándor, Bonyhád
Dr. Katz Sándor: Lehet vagy nem? Lehet vagy nem? Konstrukciók és lehetetlenségi bizonyítások Dr. Katz Sándor, Bonyhád A kreativitás fejlesztésének legközvetlenebb módja a konstrukciós feladatok megoldása.
I. A légfékrendszer időszakos vizsgálatához alkalmazható mérő-adatgyűjtő berendezés műszaki
A Közlekedési Főfelügyelet közleménye a nemzetközi forgalomban használt autóbuszok (M2 és M3 jármű-kategóriába tartozó gépkocsik) vizsgálatát (is) végző vizsgálóállomásokon alkalmazandó mérő-adatgyűjtő
Illeszkedésvizsgálat χ 2 -próbával
Illeszkedésvizsgálat χ -próbával Szalay Krisztina 1. feladat (tiszta illeszkedésvizsgálat) Négy pénzérmét 0-szor feldobunk. A kapott gyakoriságok: fejek száma 0 1 3 4 Összes gyakoriság 5 35 67 41 1 0 Elfogadható-e
Bevezetés a valószínűségszámításba és alkalmazásaiba: példákkal, szimulációkkal
Bevezetés a valószínűségszámításba és alkalmazásaiba: példákkal, szimulációkkal Arató Miklós, Prokaj Vilmos és Zempléni András 2013.05.07 Tartalom Tartalom 1 1. Bevezetés, véletlen kísérletek 4 1.1 Bevezetés...................................
3. Az ítéletlogika szemantikája
3. Az ítéletlogika szemantikája (4.2) 3.1 Formula és jelentése minden ítéletváltozó ( V v ) ha A JFF akkor A JFF ha A,B JFF akkor (A B) JFF minden formula előáll az előző három eset véges sokszori alkalmazásával.
Az Összetett hálózatok vizsgálata elektronikus tantárgy részletes követeleményrendszere
Az Összetett hálózatok vizsgálata elektronikus tantárgy részletes követeleményrendszere Horváth Árpád 2014. február 7. A tárgy célja: Az összetett hálózatok fogalomrendszerének használata a tudomány több
end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..
A Név: l 2014.04.09 Neptun kód: Gyakorlat vezető: HG BP MN l 1. Adott egy (12 nem nulla értékû elemmel rendelkezõ) 6x7 méretû ritka mátrix hiányos 4+2 soros reprezentációja. SOR: 1 1 2 2 2 3 3 4 4 5 6
Kétszemélyes négyes sor játék
Kétszemélyes négyes sor játék segítségével lehetővé kell tenni, hogy két ember a kliens program egy-egy példányát használva négyes sor játékot játsszon egymással a szerveren keresztül. Játékszabályok:
TARTALOM. Ismétlő tesztek...248 ÚTMUTATÁSOK ÉS EREDMÉNYEK...255
TARTALOM. SZÁMHALMAZOK...5.. Természetes kitevőjű hatványok...5.. Negatív egész kitevőjű hatványok...6.. Racionális kitevőjű hatványok...7.4. Irracionális kitevőjű hatványok...0.5. Négyzetgyök és köbgyök...
Kriptográfiai algoritmus implementációk időalapú támadása Endrődi Csilla, Csorba Kristóf BME MIT
NetworkShop 2004 2004.. április 7. Kriptográfiai algoritmus implementációk időalapú támadása Endrődi Csilla, Csorba Kristóf BME MIT Bevezetés Ma használt algoritmusok matematikailag alaposan teszteltek
4. LECKE: DÖNTÉSI FÁK - OSZTÁLYOZÁS II. -- Előadás. 4.1. Döntési fák [Concepts Chapter 11]
1 4. LECKE: DÖNTÉSI FÁK - OSZTÁLYOZÁS II. -- Előadás 4.1. Döntési fák [Concepts Chapter 11] A döntési fákon alapuló klasszifikációs eljárás nagy előnye, hogy az alkalmazása révén nemcsak egyedenkénti előrejelzést
Matematika. 1-4. évfolyam. tantárgy 2013.
Matematika tantárgy 1-4. évfolyam 2013. Célok és feladatok Az iskolai matematikatanítás célja, hogy hiteles képet nyújtson a matematikáról, mint tudásrendszerről, és mint sajátos emberi megismerési, gondolkodási,
Matematikai logika. Nagy Károly 2009
Matematikai logika előadások összefoglalója (Levelezős hallgatók számára) Nagy Károly 2009 1 1. Elsőrendű nyelvek 1.1. Definíció. Az Ω =< Srt, Cnst, F n, P r > komponensekből álló rendezett négyest elsőrendű
MATEMATIKA A és B variáció
MATEMATIKA A és B variáció A Híd 2. programban olyan fiatalok vesznek részt, akik legalább elégséges érdemjegyet kaptak matematikából a hatodik évfolyam végén. Ezzel együtt az adatok azt mutatják, hogy
9. A FORGÁCSOLÁSTECHNOLÓGIAI TERVEZŐ-RENDSZER FUNKCIONÁLIS STRUKTÚRÁJA
9. A FORGÁCSOLÁSTECHNOLÓGIAI TERVEZŐ-RENDSZER FUNKCIONÁLIS STRUKTÚRÁJA Egy-egy konkrét forgácsolástechnológiai tervezőrendszer saját, a fejlesztő által megfogalmazott struktúrát testesít meg. Az itt tárgyalt
MATEMATIKA. Tildy Zoltán Általános Iskola és Alapfokú Művészeti Iskola Helyi tanterv 1-4. évfolyam 2013.
MATEMATIKA Az iskolai matematikatanítás célja, hogy hiteles képet nyújtson a matematikáról, mint tudásrendszerről, és mint sajátos emberi megismerési, gondolkodási, szellemi tevékenységről. A matematika
MATEMATIKA. 5 8. évfolyam
MATEMATIKA 5 8. évfolyam Célok és feladatok A matematikatanítás célja és ennek kapcsán feladata: megismertetni a tanulókat az őket körülvevő konkrét környezet mennyiségi és térbeli viszonyaival, megalapozni
Országzászlók (2015. május 27., Sz14)
Országzászlók (2015. május 27., Sz14) Írjon programot, amely a standard bemenetről állományvégjelig soronként egy-egy ország zászlójára vonatkozó adatokat olvas be! Az egyes zászlóknál azt tartjuk nyilván,
2015, Diszkrét matematika
Diszkrét matematika 5. előadás Sapientia Egyetem, Műszaki és Humántudományok Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2015, őszi félév Miről volt szó az elmúlt előadáson? számtani, mértani,
Más viszonylatban (például Badacsonyból Füredre, vagy Tapolcáról közvetlenül Fonyódra, stb.) a szállítás értelmetlen, ezért nem lehetséges.
OPERÁCIÓKUTATÁS, 2005. december 28. A NÉV: 2-0 NEPTUN KÓD:. Követ kell szállítani Tapolcáról, illetve Veszprémből Kaposvárra és Pécsre. A szállításnál mind szárazföldön, mind vizen közbülső szállítási
Matematikai programozás gyakorlatok
VÁRTERÉSZ MAGDA Matematikai programozás gyakorlatok 2003/04-es tanév 1. félév Tartalomjegyzék 1. Számrendszerek 3 1.1. Javasolt órai feladat.............................. 3 1.2. Javasolt házi feladatok.............................
3 Hogyan határozzuk meg az innováció szükségszerűségét egy üzleti probléma esetén
3 Hogyan határozzuk meg az innováció szükségszerűségét egy üzleti probléma esetén 3.1 A Black Box eljárás Kulcsszavak: Black Box, Kísérleti stratégia, Elosztás, Határérték, A döntéshozatali tábla tesztje
Objektumorientált programozás C# nyelven
Objektumorientált programozás C# nyelven 1. rész Osztályok és objektumok Mezık és metódusok Konstruktor és destruktor Névterek és hatókörök Láthatósági szintek Osztály szintő tagok Beágyazott osztályok
Átrendezések és leszámlálások ÚTMUTATÓ Hegedüs Pál 1-2015.június 30.
Átrendezések és leszámlálások ÚTMUTATÓ Hegedüs Pál 1-2015.június 30. 1. Határozzuk meg, hány egybevágósága van egy négyzetnek! Melyek azonos jellegűek ezek között? Ez egy általános bevezető feladat tud
Ó á í á ő Í í ű á űí ű í í íá ű á ű í í íá íáá á í áí á ű ő ő á ú í á á ő á ő ú á á ö ő ő á ő í á ö á á ó ő á á ó í á á á ő í Á á ő á ő ó í á á á ő á ó ő í ő á í ú ö ó ö á á á ó ó ö ő ó í á á ó ü á ő ü
4. A GYÁRTÁS ÉS GYÁRTÓRENDSZER TERVEZÉSÉNEK ÁLTALÁNOS MODELLJE (Dudás Illés)
4. A GYÁRTÁS ÉS GYÁRTÓRENDSZER TERVEZÉSÉNEK ÁLTALÁNOS MODELLJE (Dudás Illés) ). A gyártás-előkészítés-irányítás funkcióit, alrendszereit egységbe foglaló (általános gyártási) modellt a 4.1. ábra szemlélteti.
4. előadás. Vektorok
4. előadás Vektorok Vektorok bevezetése Ha adottak a térben az A és a B pontok, akkor pontosan egy olyan eltolás létezik, amely A-t B- be viszi. Ha φ egy tetszőleges eltolás, akkor ez a tér minden P pontjához
Könyvelői Klub INGATLANOK ÉS BEFEKTETÉSE SZÁMVITELI ÉS ADÓZÁSI KÉRDÉSEI KÖNYVELŐI KLUB - 2013. SZEPTEMBER 11 - BUDAPEST. Áfa
KÖNYVELŐI KLUB - 2013. SZEPTEMBER 11 - BUDAPEST Konzultáns: Horváth Józsefné okl. könyvvizsgáló, okl. nemzetközi áfa- és adóigazgatósági adószakértő, jogi szakokleveles közgazdász; költségvetési minősítésű
á Í ÍÖ á ó á ó á ó Ő É Á áíé Á á á úú ó á Á Í ő á ü á á Ö á É á á ó á ó ő á ú á á ó á á ó á á ó á ú á ő É ő á ő á á á ő á ű á ő á ó ő á ó á ú á ó Í á á ú á ó á Ú É á ú á ü ú á óú á ó ó Í úú úú ú ü ú ó
FORDÍTÓPROGRAMOK. MKSA3144F kidolgozott tételek. 0.6 -ás verzió. 2006 január 21., Domján Tamás
FORDÍTÓPROGRAMOK MKSA3144F kidolgozott tételek 0.6 -ás verzió 2006 január 21., Domján Tamás A dokumentum alapja egy puska és Tóth Péter által készített jegyzet volt, azt egészítettem ki, így hibákat, hiányosságokat
2. Milyen értéket határoz meg az alábbi algoritmus, ha A egy vektor?. (2 pont)
A Név: l 2017.04.06 Neptun kód: Gyakorlat vezet : HG BP l 1. Az A vektor tartalmát az alábbi KUPACOL eljárással rendezzük át maximum kupaccá. A={28, 87, 96, 65, 55, 32, 51, 69} Mi lesz az értéke az A vektor
Everlink Parkoló rendszer Felhasználói és Üzemeltetési útmutató
Everlink Parkoló rendszer Felhasználói és Üzemeltetési útmutató Kiemelt magyarországi disztribútor: LDSZ Vagyonvédelmi Kft. I. fejezet Általános ismertető Az EverLink a mai követelményeket maximálisan
INFORMATIKA Emelt szint 11-12.
INFORMATIKA Emelt szint 11-12. Az informatika tantárgy ismeretkörei, fejlesztési területei hozzájárulnak ahhoz, hogy a tanuló az információs társadalom aktív tagjává válhasson. Az informatikai eszközök
Érettségi vizsgatárgyak elemzése. 2009 2012 tavaszi vizsgaidőszakok FÖLDRAJZ
Érettségi vizsgatárgyak elemzése 2009 2012 tavaszi vizsgaidőszakok FÖLDRAJZ Láng György Budapest, 2014. január TARTALOM 1. A vizsgák tartalmi elemzése... 5 1.1. Az írásbeli feladatlapok szakmai jellemzői
HITELESÍTÉSI ELŐ ÍRÁS HIDEGVÍZMÉRŐ K KOMBINÁLT VÍZMÉRŐ K HE 6/3-2004
HITELESÍTÉSI ELŐ ÍRÁS HIDEGVÍZMÉRŐ K KOMBINÁLT VÍZMÉRŐ K HE 6/3-2004 FIGYELEM! Az előírás kinyomtatott formája tájékoztató jellegű. Érvényes változata Az OMH minőségirányítási rendszerének elektronikus
Tantárgyi útmutató. 1. A tantárgy helye a szaki hálóban. 2. A tantárgyi program általános célja. Statisztika 1.
Tantárgyi útmutató 1. A tantárgy helye a szaki hálóban Gazdálkodási és menedzsment szakirány áttekintő tanterv Nagyításhoz kattintson a képre! Turizmus - vendéglátás szakirány áttekintő tanterv Nagyításhoz
KÖZÉPSZINTŰ ÍRÁSBELI VIZSGA
ÉRETTSÉGI VIZSGA 2012. május 16. FÖLDRAJZ KÖZÉPSZINTŰ ÍRÁSBELI VIZSGA 2012. május 16. 14:00 I. Időtartam: 20 perc Pótlapok száma Tisztázati Piszkozati NEMZETI ERŐFORRÁS MINISZTÉRIUM Földrajz középszint
Hivatali Tájékoztató. Tartalom V. ÉVFOLYAM 2015. ÉVI 1. SZÁM
Hivatali Tájékoztató V. ÉVFOLYAM 2015. ÉVI 1. SZÁM Tartalom 6722 Szeged, Rákóczi tér 1. www.csmkh.hu titkarsag@csmkh.hu Tel.: 62/562-606 Fax: 62/562-601 A kiadásért felelős: Dr. Juhász Tünde kormánymegbízott
P (A) = i. P (A B i )P (B i ) P (B k A) = P (A B k)p (B k ) P (A) i P (A B i)p (B i )
6. A láncszabály, a teljes valószínűség tétele és Bayes-tétel Egy (Ω, A, P ) valószín ségi mez n értelmezett A 1,..., A n A események metszetének valószín sége felírható feltételes valószín ségek segítségével
ÉVES BESZÁMOLÓ 2013.
Hévíz és Vidéke TAKARÉKSZÖVETKEZET 8380 Hévíz, Széchenyi u. 66. Internet: www.heviztakarek.hu Cg.: 20-02-050059 ÉVES BESZÁMOLÓ 2013. Mérleg Eredmény-kimutatás Kiegészítő melléklet Könyvvizsgálói jelentés...
JUHÁSZ TIBOR TÓTH BERTALAN KOLLEKCIÓK ALKALMAZÁSA A FELADATMEGOLDÁSOKBAN
JUHÁSZ TIBOR TÓTH BERTALAN KOLLEKCIÓK ALKALMAZÁSA A FELADATMEGOLDÁSOKBAN Juhász Tibor Tóth Bertalan: Kollekciók alkalmazása a feladatmegoldásokban 2., átdolgozott kiadás 2015 Jelen dokumentumra a Creative
Mesterséges intelligencia, 7. előadás 2008. október 13. Készítette: Masa Tibor (KPM V.)
Mesterséges intelligencia, 7. előadás 2008. október 13. Készítette: Masa Tibor (KPM V.) Bizonytalanságkezelés: Az eddig vizsgáltakhoz képest teljesen más világ. A korábbi problémák nagy része logikai,
Ö ő ü ő Í ó ő ü ó ó ó ó ó ő ő ü ő ó ó ő ő ü ó ó ő í ó ó ó ó ó ü ü ó í ő ő ő ü í í ő í í ó í í ó ő ő ú ó ó ő ú Í í í ó í í ó ő í ő ő ü í í ü í ó í ő ü ő ó í ó í í ü ő í í í ó í í í í í ó ü í ő ó ú ő ó ő
Történeti áttekintés
Történeti áttekintés Előzmények A számítástechnika kezdetén elterjedt (egyeduralkodó) volt a mérnökpult használata, a gép és az ember kommunikációja bináris nyelven zajlott. A gépi kódú programozás nem
Mesterséges intelligencia
Mesterséges intelligencia PTI BSc levelező 2009-10. ősz Előadás, gyakorlat: Vályi Sándor mailto:valyis@nyf.hu Az email tárgy(subject): mezője a mestint szóval kezdődjék Az órák időpontja 1. előadás: szept.