Harmony Search algoritmus alkalmazása anyagáramlási feladatok tervezésénél

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Harmony Search algoritmus alkalmazása anyagáramlási feladatok tervezésénél"

Átírás

1 Harmony Search algoritmus alkalmazása anyagáramlási feladatok tervezésénél Diplomamunka V0K13Q 2014

2 Tartalomjegyzék I. Előszó...3 II. A vállalatok átalakulása...5 III. A MATLAB bemutatása...7 III.1. A MATLAB programnyelv jellemzése...8 III.2. MATLAB parancsok...9 III.3. MATLAB változók IV. A Harmónia keresési algoritmus IV.1. Metaheurisztikák IV.2. Harmony Search algoritmus V. A függvény optimalizáló program V.1. A HSM program felépítése sorok alapján: V.2. ET funkciófájl leírása V.3. A függvény optimalizáló program használata IV.3.1. Egyszerű 5 változós tesztfüggvény V.3.2. Goldstein és Price 1. függvény V.3.3. Rosenbrock függvény V.4. A HSH program VI. Hátizsák probléma VI.1. A hátizsák probléma megoldása VI.2. A hátizsák probléma megoldása a MATLAB programmal: VI.3. A HZF program leírása sorok alapján: VII. Az utazóügynök probléma VII.1. Tesztfeladat az utazóügynök problémára: VII.2. Az utazó ügynök problémát megoldó tesztelése VII.3. Az UF program leírása sorokra bontva: VII.4. TAV funkciófájl leírása: VIII. A gyártani vagy vásárolni ( make or buy ) döntések VIII.1. A make or buy döntések ismertetése VIII.2. Előnyök és hátrányok VIII.3. Make or buy döntés költségszámítása VIII.3.1. Saját gyártás költsége VIII.3.2. Vásárolt alkatrész költsége VIII.4. A döntés kimenetele a nyereség szempontjából VIII.6. A make or buy döntéssegítő program bemutatása

3 VIII.7. A MOB nevű program leírása sorok alapján: VIII.8. Az MM funkciófájl leírása IX. Paraméterek helyes beállítás a HS programban IX.1. A HMCR helyes beállítása IX.2. A PAR és BW értékeinek helyes beállítása IX.3. A lépésszám helyes megválasztása IX.4. Kiindulópontok és határpontok X. Összefoglalás XI. Summary XII. Irodalomjegyzék Köszönetnyilvánítás Mellékletek A függvény optimalizáló program (HSM.m) forráskódja A függvény tartomány optimalizáló program (HSH.m) forráskódja ET funkciófájl forráskódja Hátizsák probléma megoldó program (HZF.m) forráskódja: Az utazóügynök probléma megoldó program (UT.m) forráskódja TAV funkciófájl forráskódja Make or buy döntéssegítő program (MOB.m) forráskódja Az MM funkciófájl forráskódja

4 I. Előszó A diplomamunkám témája a Harmony Search Meta-heurisztikus optimalizáló algoritmus bemutatása, felhasználása, vizsgálata és továbbfejlesztése. Az eredetileg függvényoptimalizálásra kitalált algoritmust három különböző anyagmozgatási feladatra sikerült átültetnem. A hátizsák és az utazóügynök probléma megoldására és a make or buy döntéshozatal segítésére speciális programokat hoztam létre a Harmony Search algoritmus alapján, MATLAB programozási nyelven. Mivel ezt az algoritmust függvények optimalizálására dolgozták ki, ezért kézenfekvő volt, hogy a különböző problémákat, amelyekre programot készítettem, egyenletekre vezessem vissza. Ekkor tudjuk az algoritmusból kihozni a lehető legtöbbet. Az egyenletté alakítást és annak megoldását általában a funkciófájlok végzik. Az első fejezetekben egy áttekintést láthatunk a vállalatok stratégiáinak változásáról az elmúlt évszázadban, majd egy rövid ismertető következik a MATLAB program előnyeiről és használatáról. A 4. fejezetben ismertetem a metaheurisztikák működését és a Harmony Searh algoritmus elméletét. Majd utána az algoritmus gyakorlati alkalmazását mutatom be két általam készített programon. A 6. fejezettől a 8.-ig a három anyagmozgatási feladatot és ezek megoldását részletezem. Először a hátizsák probléma kerül terítékre, amelynél el kell dönteni, hogy egy meghatározott befogadóképességű helyre hogyan lehet a lehető legtöbb tárgyat elhelyezni úgy, hogy számunkra a legnagyobb értékkel bírjon. Másodiknak az utazó ügynök probléma kerül bemutatásra, amelyben azt kell megoldani, hogy a lehető legrövidebb úton, vagy költséggel jussunk el minden helyszínre egy előre meghatározott helyről úgy, hogy kétszer sehol se forduljunk meg. Utolsónak a Make or Buy döntés segítésére kitalált megoldásomat részletezem, aminél azt határozzuk meg, hogy egy szerelési fában mely 3

5 alkatrészeket vásároljuk és melyeket gyártsuk úgy, hogy számunkra a legkedvezőbb helyzet alakuljon ki. Az Utolsó fejezetben a Harmony Search algoritmus alapparamétereinek a helyes beállításairól készítettem javaslatokat, amelyek segítségével a programok hatékonyságát növelhetjük. A diplomamunkám anyagából két cikket is készítettem az Advanced Logistic Systems nevű folyóiratba, amelyek közül egy már meg is jelent és egy megjelenés alatt áll. 4

6 II. A vállalatok átalakulása Az elmúlt évszázadban a termelői piac helyét átvette a szolgáltatói piac. Ennek hátránya az volt, hogy a termékeket, szolgáltatásokat és azok tulajdonságait nem azok kínálói, hanem egyre inkább annak vásárlói határozták meg. A különböző vállalatok között vagy szorosabb kötelék alakult ki, vagy versenytársakká váltak. A piaci verseny arra ösztönözte a vállalatokat, hogy jó minőségű árut vagy szolgáltatást állítsanak elő minél olcsóbban és azokat sikeresen minél nagyobb profittal adják el. A vállalatoknak, hogy életben maradjanak az alábbi lehetőségek közül kellett választaniuk: egyedi, speciális termék vagy szolgáltatás előállítása, mellyel a piacon monopolhelyzetet teremthetnek, a versenytársak kizárása a piacról, kiadások csökkentése, veszteségek csökkentése, pazarlások megszüntetése, nyereség maximalizálása, új technológiák kifejlesztése, optimalizált gép, eszköz, helység elhelyezés. Ezek közül a legtöbben a pazarlásokat és a kiadásokat csökkentették, optimalizálták a gépek és eszközök elrezését valamint új költséghatékonyabb technológiákat fejlesztettek ki. A legtöbb vállalat nem tudott monopolhelyzetet szerezni a piacon, ezért versenyhelyzet alakult ki közöttük, ezáltal rá lettek kényszerítve, hogy csökkentsék az áraikat és ezzel együtt a kiadásaikat is. A 20. század közepéig erre csak tapasztalati úton, ipari kémkedéssel vagy kísérletezéssel tudtak megoldást találni. Ezek viszont vagy nem voltak elég hatékonyak és/vagy nagyon költségesek voltak. A számítógépek megjelenésével és elterjedésével azonban a mérnökök számára egy új korszak kezdődött. Amit eddig papíron számoltak napokon keresztül, azt a számítógépek percek alatt elvégezték. Megjelentek specifikus tervező, elemző, 5

7 optimalizáló programok, amelyek segítségével a termékeket és szolgáltatásokat sokkal egyszerűbb lett megtervezni, elemezni, hatékonyabbá és olcsóbbá tenni. Már csak azokat a termékeket kellett elkészíteni, amelyet a programmal megfelelőnek ítéltek és nem kellett minden egyes változatot legyártani és megvizsgálni. A különböző szolgáltatásokat pedig sokkal hatékonyabbá, gyorsabbá és olcsóbbá lehetett tenni köszönhetően a rengeteg optimalizáló programnak. Gondoljunk csak a mai fuvarozó vállalatokra! Régen minden fuvart egyenként papíron számoltak ki, és ha valahol változtatni kellett, az egészet újra kellett kezdeni előlröl. A mai fuvarszervező szoftverek másodpercek alatt több száz járműnek az optimális szállítási útvonalát tervezik, figyelembe véve a távolságokat, a szállítandó anyag minőségét, mennyiségét és egyéb speciális tulajdonságait. Emellett a különböző felvételi és lerakási pontok nyitvatartását, az útvonalak forgalmi tulajdonságait, a berakodási sorret, üzemanyag fogyasztást, a pihenőidőket és még rengeteg egyéb adatot. Ez a mennyiségű adat egy szoftver számára olyan optimalizálási feladatot alkot, ahol a változók száma akár a több százat is elérheti. Egy egyenletrszer csak akkor oldható meg egzakt módon, ha van legalább annyi különálló, egymásból nem leszármaztatható egyenlet, mint amennyi változó van. Általában a különféle optimalizáló szoftverek nem relkeznek ezzel a feltétellel, így kimondható, hogy ezekre az egyenletekre nem tudnak előre meghatározott lépésben pontos megoldást nyújtani. Ennek következtében ezek a szoftverek olyan algoritmusokat használnak, amelyek csak megközelítik az elméleti pontos értéket annyira, hogy számunkra ne legyen jelentősége annak, hogy a tényleges vagy egy közelített értékel dolgozunk. A 70-es évektől számos algoritmust dolgoztak ki, hogy megoldja a különböző mérnöki optimalizálási problémákat. A legtöbb algoritmus lineáris vagy nem-lineáris programozási módszerek alapján működik jelentős mennyiségű változó adattal. Az ilyen numerikus algoritmusok nagyon jó stratégiával relkeznek, hogy a globális optimumot egyszerűen és gyorsan találják meg. Viszont nagyon sok algoritmusnak van egy jelentős hibája. Ha nem jól választjuk meg a kiindulópontot, akkor egy bonyolultabb feladatnál, ahol több optimum is létezik, akkor a keresés könnyen csapdába eshet, leragadhat egy lokális optimum pontnál és nem a legjobb eredményt kapjuk meg. 6

8 III. A MATLAB bemutatása A MATLAB (jelentése: matrix laboratory ) egy speciális, programrszer, amely numerikus számítások elvégzésére lett kifejlesztve. Az elnevezés emellett egy magas szintű programozási nyelvet is jelent. A The MathWorks által kifejlesztett programrszer alkalmas: numerikus analízis, mátrixalgebra, jelfeldolgozás, optimalizálás, irányítási rszerek, grafikus ábrázolási feladatok megoldására. A MATLAB-ot az 1970-es évek elején az Új-Mexikói Egyetem Számítástudományi Intézetének akkori elnöke, Cleve Moler kezdte el fejleszteni. Kezdetben csak a diákjai munkáját szerette volna megkönnyíteni, hogy ezen keresztül el tudják érni a LINPACK és EISPACK csomagokat Fortran tudás nélkül. Hamarosan elterjedt más egyetemek hallgatói és munkatársai között is, így erős érdeklődésre tett szert az alkalmazott matematikával foglalkozók körében. Jack Little, a Molernél tett látogatása során felismerte a MATLAB-ban lévő lehetőségeket 1983-ban. Utána nem sokkal csatlakozott Molerhez és Steve Bangert-hez, majd újraírták a MATLAB-ot C nyelven és, megalapították a The MathWorks-öt 1984-ben. Az újabb verziókat a c nyelv mellett Javaban is készítik. Ezek az újraírt könyvtárak JACKPAC néven váltak ismerté ben a MATLAB-ot ismét újraírták, hogy újabb módszereket alkalmazzon a mátrixokkal való műveletekre, ebből született a LAPACK csomag. [1] 1984 és 2012 között a MATLAB program nyelvnek számos verzióját fejlesztették ki. Állandó tökéletesítésének köszönhetően jelenleg a világ egyik legjobb terméke a numerikus számítások területén ben, hivatalos információk alapján, a MATLAB több, mint 1 millió felhasználóval relkezett. 7

9 Bár a szoftver kizárólag numerikus, a MuPAD csomag hozzáadásával képes matematikai kifejezéseket grafikusan is megjeleníteni. A MATLAB először az irányítástechnikával foglalkozók körében lett alkalmazva, de gyorsan elterjedt más területeken is. Manapság szintén használatos még az oktatásban (különösen a lineáris algebra és numerikus analízis szemléltetésében) és népszerű még a képfeldolgozással foglalkozó kutatók között is. [1] III.1. A MATLAB programnyelv jellemzése Az egész MATLAB programrszer a MATLAB nyelv köré épül, amit néha M-code-nak vagy egyszerűen M-nek hívnak. A MATLAB program lényeges jellemzője, hogy a bennük lévő valamennyi változó globális. A legegyszerűbb módja az M-code fordításának az, hogy a fordítandó programot begépeljük a >> prompt után, a Command Windowban, amely a MATLAB felület része. Ebben az esetben a MATLAB egy interaktív matematikai burokként fog működni. Ha az M-code több sorból áll, a MATLAB Editort használatával akár saját függvényt is készíthetünk. A változókat a MATLAB nyelvben az értékadó operátorral lehet deklarálni, ami az =. A MATLAB egy dinamikusan típusos nyelv, ami azt jelenti, hogy a változókat típusdeklaráció nélkül is lehet használni, kivéve ha szimbolikus objektumnak szánjuk őket. A változók az értékeiket kaphatják konstansokból, számításokból vagy egy függvény visszatérési értékéből is. [1] A MATLAB egy Mátrix Laboratórium, így többféle kényelmes megadási módját kínálja a vektoroknak, mátrixoknak és többdimenziós tömböknek. A MATLAB nyelvben (ahogy a matematikában is) a tömbök és mátrixok indexelése 1-től kezdődik. A legtöbb programozási nyelvben ez leggyakrabban 0-tól történik. A mátrixokat az elemek felsorolásával is meg lehet adni szóközzel vagy veszővel elválasztva úgy, hogy 8

10 a listát szögletes zárójelek között helyezzük el. A pontosvessző azt jelenti a felsorolásban, hogy az utána álló elemek a következő sorba kerüljenek. A kerek zárójelek használatával al-mátrixok is megjeleníthetőek. [9] Más programozási nyelvekkel ellentétben, ahol a pontosvessző (;) választja el egymástól a parancsokat, a MATLAB-ban, a parancsok kiírása függ tőle. Ha egy parancs végén pontosvessző szerepel, akkor nem kerül kiíratásra. Ellenkező esetben kiíródik. Ha egy parancs vagy függvény nem relkezik visszatérési értékkel, akkor ugyanaz történik a pontosvessző megléte vagy hiánya esetén is. A plot függvény segítségével 2 dimenzióban ábrázolhatunk függvényeket, ahol az x tömb tartalmazza a megjelenítő tartományt, az y tömb pedig a függvényt. [1] III.2. MATLAB parancsok A MATLAB parancsokat (utasításokat) utasítássorokban kell megadni. Egy parancssor több, a ";"-pontosvessző jellel elválasztott utasítást is tartalmazhat. Az adott utasítás(ok) az "ENTER"- billentyű megnyomásának hatására kerül(nek) végrehajtásra. Célszerű egy adott feladathoz tartozó parancssorokat előbb egy M-file formátumban megírni (pl. a MATLAB saját szövegszerkesztőjével), azt elmenteni saját munkaterületünkre majd utána az adott M- file-t meghívással futtatni. Egy utasítássor szerkezetében a hozzárelés ("="-egyenlőség) jelének bal oldalán általában a kiszámításra kerülő változó neve (a kívánt eredmény) szerepel, míg jobb oldalán az utasítás neve, amit zárójelben az utasítás végrehajtásához szükséges változó nevek kísérnek. Ha a baloldali rész hiányzik, a program az eredményt az "ans" nevű mátrixban közli és tárolja mindaddig, amíg újabb, hasonló értékszámítás nem történik. [1] A MATLAB utasítások célja a különböző műveletek eredményeinek a meghatározása. Az eredmény az utasításokban szereplő változó(k) értékváltozásaként jelentkezik. A MATLAB változók értékei az alábbi alapvető műveletek nyomán változhatnak: 9

11 a) aritmetikai, algebrai, logikai és relációs műveletek, b) MATLAB matematikai függvényszámítások, c) speciális MATLAB utasítások, d) M-file típusú meghívások, e) MEX-file típusú meghívások. III.3. MATLAB változók A MATLAB-ban a változók típusára nincs külön definíció. A mátrix mérete és típusa a beírt értékek alapján automatikusan képződik. MATLAB mátrix műveletekre specializált szoftver. Műveleteihez az adatokat mátrix formában kell megadni illetve a változókat, mint mátrixtömböket lehet kezelni. Egy munkafolyamat megkezdésekor a felhasználó a változókat egyszerű megnevezéssel és/vagy értékhozzáreléssel tudja meghatározni. Az így meghatározott változók a továbbiakban bármilyen matematikai összefüggésben szerepelhetnek. Az egyszer meghatározott (nevesített) változók a munkafolyamat végéig (a "quit", az "exit" vagy a "clear" utasításokig) rezidensen maradnak a MATLAB munkaterületen, tehát bármikor előhívhatók. [9] Egy munkafolyamat során bármikor új változók is meghatározhatók. A változókhoz tartozó értékeket (mátrixtömböket) el lehet (lemezre) menteni a "save" parancs segítségével vagy elő lehet azokat hívni a "load" parancs segítségével. Adott MATLAB utasításokat, parancsokat mindig az ENTER billentyű lenyomásával érvényesítünk. Nagyon hosszú munkafolyamat vagy kiterjedt számítások során sok változó név összegyűlhet. A MATLAB listát vezet a változókról, amelyet a "who" paranccsal lehet lekérdezni. Fontos, hogy következetes, logikus jelőlési módot használjunk, mert még így is megtörténhet, hogy nehezen tudjuk utólag azonosítani az egyes változókat. [1] 10

12 IV. A Harmónia keresési algoritmus A Harmony Search algoritmus a számítási intelligenciák és metaheurisztikák területéhez tartozik. [3] A számítási intelligencia vagy régebbi nevén al-szimbolikus technika a Mesterséges Intelligenciakutatás speciális alterülete, ahol a technológia csak arra fókuszál, hogy a végeredmény minél tökéletesebb legyen. Ezt az ágát az AI kutatásnak nagyjából lefedi az öt legnagyobb alkalmazkodó és intelligens rszer [2]: Evolúciós számítások, Raj intelligencia (Rész Raj és Hangya Kolónia optimalizálás), Fuzzy rszerek, Mesterséges immunrszerek, Mesterséges neurális hálózatok. Ezek mellett található még rengeteg kisebb, nem annyira elterjedt elmélet. Ezek közé tartozik részben a Harmony Search technológia is. IV.1. Metaheurisztikák Metaheurisztikák a neve az olyan algoritmusok gyűjtőtáborának, amelyek az úgynevezett Koszos Mesterséges Intelligenciák csoportjába tartoznak ahol csak a kimenetel tökéletességére alapozzák stratégiájukat. Ebben a helyzetben a heurisztika egy olyan algoritmus, amely megkeresi azt a megoldást, ami már elég jó ahhoz, hogy már ne okozzon gondot annak a bizonyítása, hogy a megoldás optimális vagy sem. A heurisztikus módszerek nagy hangsúlyt fektetnek a pontosságra, minőségre és a számítógép (tárhely és futási idő) lehető legjobb kihasználására. [3] Úgy, mint a heurisztikák, a metaheurisztikák is egy algoritmust tartalmaznak egy általános keretben, amiket néhány kisebb változtatással sok különböző problémára lehet alkalmazni. 11

13 A metaheurisztika célja, hogy egy vagy több heurisztikus módszert építsen magába egy magasabb szintű stratégia eléréséhez (innen ered a meta az elején). Az eljárás a metaheurisztikában olyan, mint egy fekete doboz, nem lehet teljes mértékben minden körülményt, információt megismerni vagy megszerezni, de már kevés információból is képes a metaheurisztika eldönteni, hogy meghagyja, vagy kicseréli egy másik eljárásra. [3] Egy eljárás lehet akár egy olyan egyszerű lépés, mint a változók manipulálása, vagy akár egy másik összetettebb metaheurisztika is. Például létezik olyan metaheurisztika is, amely tartalmazza az iterált helyi keresést, a tabu keresést, a genetikus algoritmust, a hangya kolónia optimalizálót és a szimulált megközelítést. C. Blum és A. Roli megfogalmazták a metaheurisztikák 9 legfontosabb tulajdonságát [10]: 1. A metaheurisztikák csak stratégiák a keresési eljárás irányításához. 2. A cél az, hogy minél hatékonyabban vizsgálják át a keresési térrészt, hogy megtalálják a lehető legjobb megoldást. 3. A metaheurisztikát képező algoritmusok köre nincs korlátolva, a legegyszerűbb helyi kereső algoritmusoktól a komplex tanulási eljárásokig bármit tartalmazhat. 4. A metaheurisztika algoritmusai közelítő és általában nem determinisztikus eljárások. 5. Lehetnek benne olyan mechanizmusok, amelyek elkerülik a keresés beragadását egy térrészre (lokális optimum probléma). 6. A metaheurisztika alapfogalmait csak egy absztrakt, összefoglaló szinten lehet leírni. 7. A metaheurisztikák nem probléma specifikusak. 8. Egy magasabb szintű stratégia által vezérelve egy metaheurisztika átveheti egy heurisztika terület specifikus tudását. 9. A mai fejlett metaheurisztikus keresések felhasználhatnak más keresési tapasztalatokat (elmentve valamilyen memória formájában) a keresésük segítéséhez. 12

14 A legtöbb mérnöki optimalizálási algoritmus lineáris vagy nemlineáris programozási módszeren alapul. Ezeknek az algoritmusoknak viszont van egy nagy hibájuk: ha több optimális pont van, aminek a kiválasztása függ a kezdőponttól, akkor az algoritmus nem mindig az optimum pontot választja ki. Léteznek már úgynevezett hiperheurisztikák is, amelyek kiemelt szerepet szentelnek azokra a heurisztikákra, amelyek offline vagy online módon meg tudják változatni a paramétereiket úgy, hogy ennek hatására javuljon a számítási munka hatékonyság vagy a megoldás. A hiperheurisztikák olyan magas szintű stratégiákat alkalmaznak, mint a gépi tanulás és módosítják a keresés viselkedését aszerint, hogy melyikkel lehet az adott esetben jobb eredményt generálni. [3] Optimalizálásnak nevezzük azt az eljárást, amikor egy problémára olyan megoldást keresünk és választunk ki több lehetséges változat közül, amely a célfüggvényt a lehető legjobban kielégíti. A költségek észrevehető minőségromlás nélküli csökkentését nevezzük költség szerinti optimalizálásnak. Lehetséges célfüggvények: összköltség min anyagmozgatási munka min szállítási távolság min átfutási idő min anyagmozgatás tevékenységek időtartama min gépek, eszközök, munkaerő kihasználtsága max anyag, energia felhasználás min egyenletes anyagáram Ezen kívül még rengeteg célfüggvény létezik, de az első és legfontosabb egy vállalat számára mindig az összköltség minimalizálása. 13

15 IV.2. Harmony Search algoritmus Nemrégiben Z.W. Geem, J.-H. Kim és G.V. Loganathan kifejlesztettek egy olyan metaheurisztikus algoritmust, amelyet a zenei életből vett tökéletesség vagy más néven harmónia megteremtése alapján készítettek el és a Harmónia Keresési (Harmony Search) algoritmus nevet adták neki. A harmonikus zene az optimalizált megoldás vektornak és a zenészek az improvizációikkal a lokális és globális kereső rszereknek felelnek meg. Az algoritmus alapja a zenei harmónia keresés, amelyet sztochasztikus véletlenszerű elemekkel épít fel, a megszokott gradiens elemek helyett, amivel a járulékos szükségtelen számítások is eltűnnek. Különféle mérnöki optimalizációs problémára, matematikai függvények minimalizálására, maximalizálására és magasépítésben is használható eljárás. A metaheurisztikus algoritmusok egyesítik szabályos és véletlenszerű természeti jelenségeket. Ezek közé sorolható az evolúciós vagy genetikai algoritmus, amelyet szintén a természet inspirált és számos tudományos területen alkalmazzák. A harmóniakeresési algoritmus is ezeken a természeti jelenségeken, még pedig a zene harmóniáján nyugszik. Zenés előadások célja, hogy megtalálják kellemes harmónia által meghatározott esztétikai standardot, ahogy az optimalizálási folyamat célja, hogy megtalálja a globális megoldás által meghatározott célt. A zene harmóniája egy optimalizált megoldásvektor és a zenész improvizációs technikája egy lokális és globális keresési séma az optimalizálási technikában. Az algoritmus nem igényel kezdőértéket a döntési változóknak. Az alappillérei a Harmónia Memória Figyelési Arány (Harmony Memory Considering Rate, röviden HMCR) és a Hangmagasság Szabályzó Arány (Pitch Adjust Rate, röviden PAR). Az esztétikai minőséget a különböző hangszerek hangmagassága és azok aránya határozza meg, ahogy egy eredményt a célfüggvény és változóinak értéke ad meg. A HS algoritmus alapját olyan zenék adják, ahol a zenei előadást a zenész improvizációval kívánja feldobni. Ilyen zenei irányzat például a JAZZ. [2] 14

16 1. ábra: Zenészek és változók Forrás: Kang Seok Lee, Zong Woo Geem (2005): A new meta-heuristic algorithm for continuous engineering optimization: harmony search theory and practice. A fenti ábrán látszik, ahogy több zenész, más-más hangszerrel és hangmagassággal a tökéletes zenei harmóniára törekszik, úgy több változó is az optimális értékre törekszik. Ha az összes hangmagasság közül a legjobbat, amivel a legszebben hangzott a zene minden zenész megjegyzi, akkor a következő alkalommal, már azt fogja alkalmazni és egyre kimagaslóbb lesz a zenei élmény. Ugyanígy működik a harmónia keresés algoritmusa is, ha megjegyezzük az eredeti változók értékeit és változtatunk valamin, ami ha jobb eredményt mutat, akkor az újat használjuk inkább. Így lépésenként egyre jobb megoldást kapunk. A lépéseket pedig addig ismételjük, amíg meg nem találjuk a tökéletes harmóniát, az optimális megoldást. [2] A HS algoritmus 5 lépésből áll: 1. Meg kell adni az optimalizálási problémát és az algoritmus paramétereit. 2. El kell készíteni a Harmónia Memória mátrixot (HM). 3. Meg kell alkotni (improvizálni) egy új harmónia változatot. 4. Be kell illeszteni az új harmóniát a Harmónia Memória mátrixba. 5. Ismételni kell a 3. és 4. lépést, amíg el nem érjük a tökéletes harmóniát. 15

17 A lépéseket az alábbi módon lehet felírni: 2. ábra: A Harmony Search elmélete Forrás: Kang Seok Lee, Zong Woo Geem (2005): A new meta-heuristic algorithm for continuous engineering optimization: harmony search theory and practice. Az alábbi folyamatábra a 3. lépést fejti ki bővebben és a programomat is ezek a képletek alapján alkottam meg kisebb változtatásokkal. 3. ábra: A Harmony Search algoritmus leírása Forrás: Kang Seok Lee, Zong Woo Geem (2005): A new meta-heuristic algorithm for continuous engineering optimization: harmony search theory and practice. 16

18 V. A függvény optimalizáló program Az alábbi programokat MATLAB-ban készítettem a fent bemutatott elmélet alapján. Ezeket a programokat úgy alkottam meg, hogy a lehető legjobban kövessék az elméletet, de javításokat és fejlesztéseket is eszközöltem rajtuk, hogy minél jobban kihasználja az algoritmusban rejlő lehetőségeket. A függvény optimalizáló programnál, amelynek a HSM.m nevet adtam a fent közölt elméletet próbáltam minél pontosabban megírni, ami majd az alapját adja a speciális optimálási feladokra írt algoritmusoknak. V.1. A HSM program felépítése sorok alapján: sor: Az alábbi alap paramétereket itt kéri a program a további számolásokhoz: alsó és felső kezdőpont (tol; ig {- }) minimum (0) vagy maximum (1) keresést végzünk iteráció szám (i N) változók száma (xek N) HMCR (0 1) PAR (0 1) bw (0 1) Harmónia Memória mérete (yek N) sor: A Harmónia Memória mátrixot (H) egy random generátorral elkészítjük, úgy hogy olyan értékeket generálunk véletlenszerűen az állapottérben, amely a két kezdőpont közé esik (tol; ig). A H mátrix oszlopa a változók számának ( xek ) felel meg, a sora pedig a változatok számának ( yek ). Ezután a program az ET nevű funkciófájlban található 17

19 egyenleten lefuttatja a különböző változatokat és a megoldásokat egy függőleges F vektorba menti le sor: Az előre beállított iterációs számmal a program for ciklust futtat le, amely magába foglalja az optimalizálási algoritmust. Minden lépésben a meghatározott arányokat figyelembe véve kiválaszt egy módszert a három közül, amelyikkel próbál minél jobb eredményt alkotni. Ha sikerül a futtatás végén kedvezőbb megoldást találnia, mint a H mátrixban található legrosszabb megoldás, akkor az új változatot helyettesíti a legrosszabb helyére és a megoldását is lecseréli az F vektorban. Ha viszont rosszabb eredményt alkot, akkor változatlanul hagy mindent sor: Ha a HMCR és PAR értéke is nagyobb, mint két különböző random szám, akkor ebben a részben leprogramozott módszer fog optimalizálni. Ennek a módszernek a lényege, hogy random generátorral minden változóra meghatározzuk, hogy a H mátrixban található változatokból melyikből emelje ki az adott változót. Amint ilyen módon összerakta az új változatot, megvizsgáltatjuk a funkció fájllal, hogy jobb értéket ad-e, mint a kiemelt változat. Ha igen, akkor kicseréljük a H mátrixban találhatót az újra, ha nem akkor mindent hagyunk változatlanul sor: Ha a HMCR értéke nagyobb, de a PAR értéke kisebb, mint két különböző random szám akkor ez a módszer fog ebben a lépésben érvényesülni. Ennél a módszernél majdnem ugyanaz játszódik le, mint az előzőnél annyi különbséggel, hogy nem csak összeválogatjuk a változókat, de kicsit meg is változtatjuk azokat. Azt, hogy ez a változtatás mekkora értékkel történik, arról csak annyit ír a HS elmélete, hogy valamilyen számot hozzáadunk vagy kivonunk. Ha csak egy konkrét számot adnánk hozzá, akkor lehet, hogy ez a szám egy kis idő után túl nagy lenne a finomításhoz, vagy az elején túl kicsi ahhoz, hogy az állapottér megfelelő részét elérje. Én ezért egy többszörösen dinamikusan mozgó bw -t találtam ki. 18

20 Először el kell döntenie a programnak random szám alapján hogy az eredeti bw -t használja- e vagy a lépésszám előrehaladtával egy redukált bw-t alkalmaz inkább. Erre azért van szükség, mert az elején nagyobb szabadságot kell adni a programnak, hogy a megfelelő minimumpont közeli értékeket találjon, de ha ez megvan, folyamatosan finomítania kell a változókat, a minél pontosabb kereséshez. Miután kiválasztotta melyiket szeretné alkalmazni, meg kell határozni minden lépésben azokat az értékeket, amennyivel megváltoztatja a változókat. Ezt az alábbi képlet alapján számolja ki: Minden futtatásnál megvizsgálja, hogy a különböző változóknál melyik a legnagyobb és legkisebb érték, és a kettejük különbségét szorozza meg a 2*bw számmal és egy random értékkel 0 és 1 között. Így akármilyen kis tartományban is mozog már a finomítás, mindig lehet rajta javítani. Ez után a program véletlenszerűen eldönti, hogy hozzáadja vagy kivonja-e a változóból a fent megkapott értéket és megkapjuk az új változatot sor: Az utolsó módszer akkor lép életbe, ha a HMCR értéke kisebb, mint egy random szám. Ennek a módszernek az alapja egy teljesen új változat generálása, amely csak minimálisan függ a már meglévő változatoktól [3]: D(1,m)=max(H(:,m))-min(H(:,m)); MH(1,m)=min(H(:,m)); A(1,m)=MH(1,m)+(D(1,m)/n)*round(rand(1)*(m-1)); 19

21 ahol: D: a változók értékei közötti legnagyobb különbség, MH: a változók közül a legkisebb érték, A: az új változat vektora, n: az aktuális lépésszám. Miután megalkotta a program az új változatot megvizsgáljuk, hogy jobb-e mint a H mátrix legrosszabb változata. Ha igen akkor kicseréljük rá az imént kapott vektort, ha nem akkor semmin nem változtatunk sor: Ebben a szakaszban minden lépésben kirajzoltatunk két pontot egy gráfra. Az egyik pont piros színű és az aktuális legjobb eredményt mutatja, a másik kék színű és az megoldásmátrix (F) átlagát reprezentálja. A for ciklus után a feliratozza a gráfot, és kiíratja az eredményeket. V.2. ET funkciófájl leírása Ennek a fájlnak nagy szerepe van a főprogramban, mivel ez számolja ki a különböző változatok eredményeit. Igazából itt a fájl mindössze két elemet tartalmaz, amit egy példán keresztül mutatok be: function [ E ] = ET( Q ) E=(Q(1,2)-Q(1,1)^2)^2+(1-Q(1,1))^2; Az első sor tartalmazza azt, hogy ez egy funkció fájl és az E a kimeneti érték, azaz a megoldás. Emellett a nevét a fájlnak ET és a bemeneti értéket, azaz a Q vektort, amely tartalmazza egy változat változóit. 20

22 A második sor az egyenletet foglalja magába. Az egyenletet viszont nem mindegy, hogy írjuk le. Az eredménynek mindig elől kell állnia és E a neve. A változókat is speciálisan kell megadni, a változó neve mindig Q(1,X), ahol az X a változószáma. Legyen két változónk: A és B. Az alábbi képletet akarjuk optimalizálni: Az A változót vesszük az 1 -es változónak ezért innentől Q(1,1) jelölést használunk helyette és így a B változó a 2 -es változó, aminek a jelölése Q(1,2). Így a képletet az alábbi módon kell átírni, hogy a program tudja futtatni: E=(Q(1,1)*Q(1,2)-Q(1,1)^2)^2+sqrt((1-Q(1,1))*Q(1,2)) Ezeket a szabályokat és a megfelelő MATLAB parancsokat felhasználva szinte bármilyen nehézségű egyenletet képes optimalizálni a program, ha jól van megadva. 21

23 V.3. A függvény optimalizáló program használata IV.3.1. Egyszerű 5 változós tesztfüggvény Elsőnek egy viszonylag egyszerű függvénnyel próbálkoztam. Ez a függvény öt darab változót tartalmaz, de csak egy globális minimum pontja létezik: Ennek a képletnek a minimum optimális megoldása az található. értékeknél A program futtatásának alapparaméterei: kiindulási érték: iterációs szám: 3000 HMCR: 0,8 PAR: 0,2 bw: 0,3 változók száma: 5 harmónia memória mérete: 40 22

24 A program a futtatás után az alábbi adatokat és ábrát adta ki: 4. ábra: 5 változós tesztfüggvény Forrás: saját Az ábrán található sok színből a piros reprezentálja a legjobb változat eredményét, és a többi szín a legjobb változat változóinak az értékét. Amint látszik, az értékek szépen konvergálnak az optimum ponthoz, azaz a 0 értékhez. A piros téglalapban található két eredményvektort a futtatás után kaptuk meg. Az atlagok vektor a futtatás után a Harmónia Memória mátrix (H) és a Megoldásvektor (F) átlagértékeit mutatja. A minek vektor a H mátrix és az F vektor legjobb eredményeit foglalja magába. Mindkét vektornál a 6 számból az első a megoldás a maradék a változók értékei sorba rezve. Ebből is látható, hogy a program legalább 4 tizedes pontossággal meg tudta határozni az optimális helyet az adott feltételek mellett. 23

25 V.3.2. Goldstein és Price 1. függvény A második tesztet a Goldstein és Price 1. függvényen végeztem. Ez a függvény nagyon mozgalmas, ahogy azt a 3D-s ábrán is látni lehet. Egy 6 6 egységnyi területen akár 10 6 nagyságrű eltérések is lehetnek a magassági értékekben. A függvényben 2 változó szerepel, de összesen 4 minimum ponttal relkezik, amelyeket a kontúr ábrán fekete keresztekkel jelöltem. A Goldstein és Price 1. függvény: A globális minimumpontja az pont felé egy M -et írtam. pontban található. A kontúr ábrán e felé a Emellett még található három minimumpont: 24

26 5. ábra: A Goldstein és Price függvény kontúr képe Forrás: saját 6. ábra: A Goldstein és Price függvény 3D-s képe Forrás: saját 25

27 Megoldás (log(f)) Miskolci Egyetem A futtatás alapparaméterei: kiindulási érték: iterációs szám: 3000 HMCR: 0,8 PAR: 0,15 bw: 0,25 változók száma: 2 harmónia memória mérete: 30 A futtatás eredményei: 10 Minimumpont keresés Iteráció szám (log(n)) 7. ábra: A Goldstein és Price függvény optimumának keresése Forrás: saját A fenti ábrából is jól látható, hogy az optimum pontot már kb. 10 3,2, azaz 1600 lépés után megtalálta a legjobb értéket (piros pontok) és az átlagértéket (kék pontok) is. 26

28 A program az alábbi eredményeket írta ki: Valtozok = Megoldas = Ebből is látszik, hogy az algoritmus 3000 lépés alatt 10-7 futtatásnál. pontosságot ért el ennél a V.3.3. Rosenbrock függvény A harmadik tesztet a Rosenbrock függvénnyel végeztem, amely egy globális minimumponttal relkező kétváltozós függvény: Tudjuk, hogy ennek a függvénynek a globális minimuma az pontban található, amelyet a kontúrábrán fekete kereszttel jelöltem. Mivel ennek a függvénynek az alapja egy negyedfokú függvény, ezért már nagyon kis értékeknél is kiemelkedően magas megoldás tartozhat hozzá. Amint az a 3D-s ábrán is látszik egy 4 4 egységnyi területen a legnagyobb és legkisebb érték közötti különbség több mint

29 8. ábra: A Rosenbrock függvény 3D-s képe Forrás: saját 9. ábra: A Rosenbrock függvény kontúr képe Forrás: saját 28

30 Ez a teszt két alapbeállítást is vizsgál: 1. Mi történik akkor, ha nem jól állítjuk be a kezdő értékeket (az optimum pont (1,1) nem esik a kezdőértékek ( ) közé) 2. Milyen megoldást ad két különböző iterációs érték (jelenleg és értékekkel futtattam le a programot) A futtatás alapparaméterei: kiindulási érték: iterációs szám: és HMCR: 0,85 PAR: 0,2 bw: 0,2 változók száma: 2 harmónia memória mérete: 40 A futtatás eredményei: 1. tesztfuttatás es iterációs számmal: A program által kiírt eredmények: Valtozok = Megoldas = e-05 29

31 Megoldás (log(f)) Miskolci Egyetem 6 Minimumpont keresés Iteráció szám (log(n)) 10. ábra: A Rosenbrock függvény optimumának keresése 1000-es iteráció számnál Forrás: saját 2. tesztfuttatás es iterációs számmal: A program által kiírt eredmények: Valtozok = Megoldas = e-19 30

32 Megoldás (log(f)) Miskolci Egyetem 10 Minimumpont keresés Iteráció szám (log(n)) 11. ábra: A Rosenbrock függvény optimumának keresése es iteráció számnál Forrás: saját Amint az a fenti két ábrán is megfigyelhető, hogy az első futtatás es iterációs lépésig jutott, amely alatt a változókat csak es, a megoldást pedig es pontossággal határozta meg. Ennek a futtatásnak az időtartama kb. 30 másodperc volt. A második futtatás annyiban tért el az előzőtől, hogy ott tízszer nagyobb iterációs számot adtam meg, azaz et. Ez a futtatás bár sokkal több ideig tartott, (kb. 4 perc) az eredményei is sokkal jobbak lettek. A változókat es, míg a megoldást es pontossággal tudta meghatározni. Ezekből a futtatásokból is látszik, hogy megfelelő beállításokkal a program és a HS módszer is alkalmazható optimalizálási feladatokra. 31

33 V.4. A HSH program Ez a program ugyanazokkal az alapokkal és algoritmusokkal működik, mint a függvényoptimalizáló program, csak itt kiinduló értékek helyett, határértékeket állítunk be. Minden egyes változóra meg tudunk adni egy olyan tartományt, amelyből a változó értéke nem léphet ki, ezáltal nem a globális optimum pontot fogja keresni a program, hanem egy helyi, lokális optimumot. A határértékeket a program a futtatás legelején kéri és két vízszintes vektor formájában kell megadni neki. Az alsó határérték vektor (I) tartalmazza azokat az értékeket, amelynél kisebb értéket a változó nem vehet fel. A felső határérték vektor (J) pedig azokat az értékeket tartalmazza, amelynél nagyobb értéket nem vehet fel a változó. A többi paramétert ugyanúgy kell a programnak megadni, mint a HSM esetében egy kivétellel, a változók számát a program automatikusan határozza meg, a két határérték vektor hosszából. Az optimalizálási algoritmusok leírása csak annyiban változott, hogy belekerültek olyan szabályzó elemek, amelyek nem engedik a változókat kilépni az előre definiált tartományukból. A tesztfüggvény alapját szintén a Goldstein és Price 1. függvény fogja adni, viszont jelen esetben leredukáljuk a keresési tartományt úgy, hogy a globális optimum pont X(0,-1) ne essen bele. A változóknak a keresési tartományát az alábbi határértékekkel határoztam meg: Ezt a keresési tartományt az alábbi ábrán be is jelöltem egy piros téglalappal. Amint látszik a területre két lokális minimumpont is esik: 32

34 Ezek közül az első pont az optimális megoldása a feladatnak, amely fölé a kontúrképen M -et írtam. 12. ábra: A Goldstein és Price függvény kontúrképe határértéken belüli optimalizálásnál Forrás: saját Az alábbi alapadatokkal indítottam a programomat: Alsó határérték: [1 2] Felső határérték [0 1] iterációs szám: HMCR: 0,8 PAR: 0,2 bw: 0,3 változók száma: 2 harmónia memória mérete: 40 33

35 Megoldás (log(f)) Miskolci Egyetem A futtatás eredménye: 3 Minimumpont keresés Iteráció szám (log(n)) 13. ábra: A Goldstein és Price függvény határétékes optimumkeresés menete Forrás: saját A program által kiírt eredmények: Valtozok = Megoldas = Az ábrából és a futtatás eredményeiből is látszik, hogy egy viszonylag kis iteráció számnál is nagyfokú pontosságot lehet elérni. Az változókat 10-8, a megoldást pedig pontossággal határozta meg a program. 34

36 VI. Hátizsák probléma Ez probléma már régen foglalkoztatja a matematikusokat. A kérdés az, hogy ha van egy hátizsákunk és rengeteg apróságunk, van-e módszer annak eldöntésére, hogy melyeket válasszunk ki úgy, hogy a hátizsák minél jobban megteljen és minél többet érjen a számunkra a benne lévő tárgyak összessége. Első olvasáskor is érezhető, hogy ha hatalmas hátizsák van birtokunkban és rengeteg kisebb nagyobb aprósággal akarjuk telezsúfolni, akkor a próbálgatós módszer elég sok ideig fog tartani. A próbálgatások biztos módszerét követve 2 n lehetőséget végig próbálva biztosan eredményre jutunk, ahol n a hátizsákba helyező tárgyaink száma. Ez 10 elemnél nem is tart túl sokáig, hiszen csak 1024 próbálkozásra van szükségünk. Ellenben, ha már néhány száz elemet kell végig próbálni, akkor már egy meglehetősen bonyolult problémának számit. [4] 14. ábra: Hátizsák probléma Forrás: Adott egy V térfogatú hátizsák, valamint n darab tárgy, melyek térfogata rre. A csomagok közül szeretnénk néhányat kiválasztani úgy, hogy a lehető legjobban kitöltsék a hátizsákot, de össztérfogatuk ne haladja meg a hátizsák befogadóképességét. Azaz keressünk egy olyan vektort (X), amely reprezentálja, hogy az adott tárgy bekerül-e a hátizsákba vagy sem. Exponenciálisan növekvő időigényével a próbálkozások módszere csak nagyon kis elemszám esetén alkalmazandó. Ezek helyett inkább más módszereket, algoritmusokat alkalmaznak, amiknek az időigénye jóval kisebb, viszont az eredmény nem annyira biztos, mint a próbálgatások módszerénél. 35

37 VI.1. A hátizsák probléma megoldása Egy egyszerű 10 elemes hátizsákproblémán fogom bemutatni a programom működését. Az alábbi adatokkal indulunk: Tudjuk, hogy a hátizsák 34 egység férőhellyel relkezik. Tíz elemünk van, amiből úgy szeretnénk elhelyezni benne a lehető legtöbbet, hogy a legjobb összértéket kapjuk. Elem Helyigény (H) Érték (E) E/H , , , , , , , , , ,17 Sum táblázat: Hátizsák tesztfeladat alapadatai Forrás: saját Az Érték/Helyigény (E/H), a Sum (H) és a Sum (E) már számolt adat, a program futtatásához ezeket nem kell megadni. Az egyik legegyszerűbb megoldási módszer: Az E/H szerint csökkenő sorrbe rakjuk az értékeket, majd fentről lefelé a helyigényt és az értéket összeadjuk. Ahol a helyigény túllépi a hátizsák férőhelyét, azt már nem helyezzük el benne, csak az előtte állókat. Jelenleg a helyigény a 6. elemnél már túllépi a megengedettet, ezért a hátizsákba csak az első 5 elem fér. Ezek név szerint a 2, 3, 6, 7, 9 -es elemek, melyek összesen 348 értékkel és 30 helyigénnyel relkeznek. 36

38 Sorr Helyigény (H) Érték (E) E/H Sum(H) Sum (E) , , , , , , , , , , Sum táblázat: Hátizsák tesztfeladat egyszerű megoldása Forrás: saját Ez az eljárás képes az optimális elhelyezést megadni, de csak abban az esetben, ha felhasználja az összes relkezésre álló szabad helyet. Jelenleg azonban a tárgyak csak 30 egységnyi helyet foglalnak el a 34 férőhelyből. Ezáltal előfordulhat, hogy létezik ennél jobb megoldás is. Mivel ez egy általam kitalált feladat, amit úgy alkottam meg, hogy ne lehessen optimálisan megoldani az egyszerűbb módszerrel, ezért az alábbi megoldás az optimális: Sorr Helyigény (H) Érték (E) E/H Sum(H) Sum (E) , , , , , , , , , , Sum táblázat: Hátizsák tesztfeladat optimális megoldása Forrás: saját 37

39 Ha a 2-es számú elemet eltávolítjuk a helyéről és berakjuk utolsónak, megváltozik a sorr, és a hátrébb lévők eggyel előrébb kerülnek. Így már 6 elem fér be a hátizsákba, amik a következőek: 3, 5, 6, 7, 9, 10. Ebben az esetben az elemek teljesen kitöltik a hátizsák térfogatát és az összérték is nagyobb lett, pontosan 379. Ha jól működik a program, akkor az imént kapott eredményt fogjuk megkapni a futtatás után is. VI.2. A hátizsák probléma megoldása a MATLAB programmal: A program a futtatás elején négy adatot kér: értékvektort (A), helyigény vektort (C), szabad helyek számát (B), iteráció számot (i). A két vektort és a szabad helyek számát már az előző módszerben definiáltuk, most mindössze az a dolgunk, hogy az értékeket két négyszögletű zárójel közé legalább egy szóközzel és elválasztó írásjelek használata nélkül megadni a programnak. Az iteráció számot saját magunknak kell megadni, az alapján, hogy mennyi elemmel dolgozunk. Jelen esetben ilyen kis elemszámnál elég az 2000-es iterációs érték is. Amint lentebb látjuk, a program megadta a darabszámnál, hogy melyik elemet helyezzük el a hátizsákban, ezt 1 -es számmal jelöli, és melyiket hagyjuk ki, ezt 0 -val mutatja. A helyfoglalas mátrixban az elemek egyenkénti helyigényét láthatjuk, amelyek bekerültek a hátizsákba. Az ertek mátrix pedig ezeknek az elemeknek az értékét adja meg külön-külön. Az osszes_helyfoglalas összeadta a helyfoglalás mátrix második sorát és itt látható, hogy jelenleg a 34 szabad helyből mindet ki tudta tölteni, azaz valószínűleg ez az optimális elhelyezés. 38

40 Az ossz_ertek összeadta az ertek mátrix második sorát és meghatározta a teli hátizsák teljes értékét. Az alábbi eredményeket produkálta a program: Amint látható, valóban létezik jobb megoldás, viszont az eltérés nem nagymértékű. Körül belül 9% az egyszerű módszer és a program által készített megoldás között. Minél nagyobb az elemszám, annál kisebb az eltérés. 10%-nál nagyobb eltérés a fentebb bemutatott egyszerű módszerrel is csak nagyon kicsi elemszámnál, vagy az elemek közötti nagy tulajdonságbeli eltérésnél tud adódni. Az alábbi ábrán a kék pontok a variációk közül az aktuális legjobb értéket, a piros pontok pedig a variációk átlag értékét mutatják. Az ábráról leolvasható, hogy már 600-as iterációs számnál megtalálta az optimális megoldást a program, 1200-nál pedig az összes variáció megerősíti ezt. 39

41 Megoldás (F) Miskolci Egyetem 400 Hátizsák feladat Iteráció szám (n) 15. ábra: Hátizsák probléma optimalizálása Forrás: saját VI.3. A HZF program leírása sorok alapján: A HZF.m fájl tartalmazza a hátizsák optimalizáló programot 1 8. sor: Adatok bevitelére szolgál. Itt kell megadni a következő értékeket: - elemek értéke (A), - elemek helyigénye (C), - férőhely (B), - iteráció szám (i), - HMCR megadása (HMCR), - változatok megadása (yek). 40

42 9 19.sor: A program véletlenszerűen generál yek mennyiségű változatot, amit egy Q mátrixba ment le, majd minden változatra kiszámolja az összértéket és az összes helyigényt sor A program ellenőrzi, hogy az egyes változatok összes helyigényei kevesebbek-e, mint a maximális kapacitás (B). Ha több helyet foglalnak, mint amennyi adott, akkor a változat összes változóját 0 -val helyettesítjük sor: Az optimalizálási folyamat itt történik, a megadott iterációszámnak megfelelő lépésben. Először megkeressük a legkisebb összértékű változatot, ha több ugyanolyan értékű van, akkor a sorban a legelsőt és megjelöljük a helyét (y). Ez után eldöntjük, hogy melyik optimalizáló algoritmust használjuk ebben a lépésben. A döntést végző arányszámot (HMCR) a program elején állítottuk be sor: Ha a random szám, amit a program a 33. sorban meghatározott, kisebb, mint a HMCR érték, akkor a Másoló algoritmus fog ebben a lépésben optimalizálni. Ha azt szeretnénk, hogy ez az algoritmus végezzen több munkát, adjunk a HMCR -nek nagyobb értéket. Ebben a részben a program a már meglévő változatok változóiból rak össze egy új változatot, majd megvizsgálja azt, hogy jobb összértéket mutat-e, mint az, amelyiket ki akarja cserélni, és hogy a helyigénye kevesebb-e, mint a szabad helyek száma. Ha mindkettő teljesül, akkor a program kicseréli a kiválasztott változatot az újra, ha valamelyik vagy egyik sem teljesül, akkor pedig változatlanul hagy mindent sor Ha a HMCR értéke kisebb, mint a 33. sorban a random szám, akkor egy teljesen új változatot generál a program, amelyet utána le is tesztel az előző algoritmusnál leírt módon, és ha megfelelőnek tartja, az új változatot kicseréli a már kiválasztottal. 41

43 67 69.sor A program minden lépés után a legjobb értéket kék pontként, az átlagértéket pedig piros pontként jeleníti meg a diagramon sor A kapott eredmények megfelelő kiírása a feladata ennek a résznek. 42

44 VII. Az utazóügynök probléma Az utazó ügynök problémája egy kombinatorikai optimalizálási feladat. A bonyolultságelmélet NPnehéz szinten kezeli ezt a feladatot. Ez annyit jelent, hogy a nem-determinisztikus polinomiális jellegű problémák közül a bonyolultak osztályába tartozik. Az utazó ügynök problémával matematika szinten először Sir William Rowan Hamilton és Thomas Penyngton Kirkman foglalkoztak a 19. század elején. Viszont a probléma első általános változatát csak az 1930-as évektől kezdtél el komolyabban vizsgálni. Olyan nagy egyetemeken is folytak kutatások erre a témára, mint a Harvardon, ahol a legjelentősebb eredményeket Karl Menger érte el vagy a Princetonon Hassler Whitney és Merrill M. Flood. [8] 16. ábra: Utazóügynök probléma eredete Forrás: Adott n számú város és az azokat összekötő utak valamilyen jellegzetes számszerűsíthető tulajdonsága, mint például a légvonalbeli távolságuk, szállítójárművel megtehető távolságuk vagy az utazás költsége. Az utazó ügynökünknek úgy kell az összes várost bejárnia, hogy egy várost csak egyszer érint és egy adott városból kell indulnia ahova az utazás végén visszatér. A feladatunk az, hogy meghatározzuk a fenti kritériumok alapján a legrövidebb vagy legolcsóbb útvonalat. Ha n darab városunk van, és minden városból el lehet jutni bármelyikbe, akkor könnyen belátható, hogy ezt egy gráfként ábrázolva egy teljes gráfot kapunk, aminek minden csúcsa össze van kötve minden más csúccsal. Hamilton körnek nevezzük azt a kört egy gráfban, amelyik egy csúcsból kiindulva és visszaérkezve az élek mentén érintkezik minden más ponttal, úgy hogy egyiken sem halad át kétszer. 43

45 Be van bizonyítva, hogy n csúccsal relkező teljes gráfban Hamilton kör fedezhető fel. Viszont mivel már tudjuk a kiindulópontot, ezért a lehetséges Hamilton körök száma az n -ed részére csökken, azaz Emiatt az utazóügynök feladatban is ennyi út lehetséges és ezek közül kell nekünk kiválasztani a lehető legjobbat. [8] Ezek alapján, ha van 13 városunk, mint amennyi a példafeladatban is szerepel, különböző úton lehetséges teljesen bejárni. Az utazóügynök probléma általános leírása [11]: 44

46 VII.1. Tesztfeladat az utazóügynök problémára: A MATLAB-ban készült programom teszteléséhez az alábbi tesztfeladatot használom, mert nagyon könnyen ellenőrizhető a megoldás. Az alább található pontok koordinátáik alapján egy körre illeszkednek, ilyenkor az ideális út könnyen belátható és kiszámítható, ugyanis jó közelítéssel megegyezik a kör kerületével plusz a centrum és hozzá legközelebb eső pont távolságával. Minimális eltérés azért tapasztalható, mert a pontok közötti távolságok nem körívek, hanem egyenesek. A városokat egy 50 egységnyi sugarú körre helyeztem, amelyből meghatározható a várható minimális út. A pontok neveit és koordinátáit az alábbi táblázat tartalmazza: Városok sorszáma X Y 1 (C) táblázat: Helyszínek koordinátái Forrás: saját 45

Konjugált gradiens módszer

Konjugált gradiens módszer Közelítő és szimbolikus számítások 12. gyakorlat Konjugált gradiens módszer Készítette: Gelle Kitti Csendes Tibor Vinkó Tamás Faragó István Horváth Róbert jegyzetei alapján 1 LINEÁRIS EGYENLETRENDSZEREK

Részletesebben

M-Fájlok létrehozása MATLAB-ban

M-Fájlok létrehozása MATLAB-ban M-Fájlok létrehozása MATLAB-ban 1 Mi az M-fájl Annak ellenére, hogy a MATLAB rendkívül kifinomult és fejlett számológépként használható, igazi nagysága mégis abban rejlik, hogy be tud olvasni és végrehajtani

Részletesebben

Megerősítéses tanulás 7. előadás

Megerősítéses tanulás 7. előadás Megerősítéses tanulás 7. előadás 1 Ismétlés: TD becslés s t -ben stratégia szerint lépek! a t, r t, s t+1 TD becslés: tulajdonképpen ezt mintavételezzük: 2 Akcióértékelő függvény számolása TD-vel még mindig

Részletesebben

Számítógép és programozás 2

Számítógép és programozás 2 Számítógép és programozás 2 6. Előadás Problémaosztályok http://digitus.itk.ppke.hu/~flugi/ Emlékeztető A specifikáció egy előfeltételből és utófeltételből álló leírása a feladatnak Léteznek olyan feladatok,

Részletesebben

Mátrixjátékok tiszta nyeregponttal

Mátrixjátékok tiszta nyeregponttal 1 Mátrixjátékok tiszta nyeregponttal 1. Példa. Két játékos Aladár és Bendegúz rendelkeznek egy-egy tetraéderrel, melyek lapjaira rendre az 1, 2, 3, 4 számokat írták. Egy megadott jelre egyszerre felmutatják

Részletesebben

Számítógépes döntéstámogatás. Genetikus algoritmusok

Számítógépes döntéstámogatás. Genetikus algoritmusok BLSZM-10 p. 1/18 Számítógépes döntéstámogatás Genetikus algoritmusok Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu BLSZM-10 p. 2/18 Bevezetés 1950-60-as

Részletesebben

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport 10-es Keressünk egy egész számokat tartalmazó négyzetes mátrixban olyan oszlopot, ahol a főátló alatti elemek mind nullák! Megolda si terv: Specifika cio : A = (mat: Z n m,ind: N, l: L) Ef =(mat = mat`)

Részletesebben

Szimuláció RICHARD M. KARP és AVI WIGDERSON. (Készítette: Domoszlai László)

Szimuláció RICHARD M. KARP és AVI WIGDERSON. (Készítette: Domoszlai László) Szimuláció RICHARD M. KARP és AVI WIGDERSON A Fast Parallel Algorithm for the Maximal Independent Set Problem című cikke alapján (Készítette: Domoszlai László) 1. Bevezetés A következőkben megadott algoritmus

Részletesebben

Optimumkeresés számítógépen

Optimumkeresés számítógépen C Optimumkeresés számítógépen Az optimumok megtalálása mind a gazdasági életben, mind az élet sok más területén nagy jelentőségű. A matematikában számos módszert dolgoztak ki erre a célra, például a függvények

Részletesebben

11. Előadás. 11. előadás Bevezetés a lineáris programozásba

11. Előadás. 11. előadás Bevezetés a lineáris programozásba 11. Előadás Gondolkodnivalók Sajátérték, Kvadratikus alak 1. Gondolkodnivaló Adjuk meg, hogy az alábbi A mátrixnak mely α értékekre lesz sajátértéke a 5. Ezen α-ák esetén határozzuk meg a 5 sajátértékhez

Részletesebben

További programozási esetek Hiperbolikus, kvadratikus, integer, bináris, többcélú programozás

További programozási esetek Hiperbolikus, kvadratikus, integer, bináris, többcélú programozás További programozási esetek Hiperbolikus, kvadratikus, integer, bináris, többcélú programozás Készítette: Dr. Ábrahám István Hiperbolikus programozás Gazdasági problémák optimalizálásakor gyakori, hogy

Részletesebben

Branch-and-Bound. 1. Az egészértéketű programozás. a korlátozás és szétválasztás módszere Bevezető Definíció. 11.

Branch-and-Bound. 1. Az egészértéketű programozás. a korlátozás és szétválasztás módszere Bevezető Definíció. 11. 11. gyakorlat Branch-and-Bound a korlátozás és szétválasztás módszere 1. Az egészértéketű programozás 1.1. Bevezető Bizonyos feladatok modellezése kapcsán előfordulhat olyan eset, hogy a megoldás során

Részletesebben

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás Algoritmusok Tervezése 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás Mi az algoritmus? Lépések sorozata egy feladat elvégzéséhez (legáltalánosabban) Informálisan algoritmusnak nevezünk bármilyen jól definiált

Részletesebben

LINEÁRIS PROGRAMOZÁSI FELADATOK MEGOLDÁSA SZIMPLEX MÓDSZERREL

LINEÁRIS PROGRAMOZÁSI FELADATOK MEGOLDÁSA SZIMPLEX MÓDSZERREL LINEÁRIS PROGRAMOZÁSI FELADATOK MEGOLDÁSA SZIMPLEX MÓDSZERREL x 1-2x 2 6 -x 1-3x 3 = -7 x 1 - x 2-3x 3-2 3x 1-2x 2-2x 3 4 4x 1-2x 2 + x 3 max Alapfogalmak: feltételrendszer (narancs színnel jelölve), célfüggvény

Részletesebben

Programozási segédlet

Programozási segédlet Programozási segédlet Programozási tételek Az alábbiakban leírtam néhány alap algoritmust, amit ismernie kell annak, aki programozásra adja a fejét. A lista korántsem teljes, ám ennyi elég kell legyen

Részletesebben

Algoritmusok és adatszerkezetek 2.

Algoritmusok és adatszerkezetek 2. Algoritmusok és adatszerkezetek 2. Varga Balázs gyakorlata alapján Készítette: Nagy Krisztián 1. gyakorlat Nyílt címzéses hash-elés A nyílt címzésű hash táblákban a láncolással ellentétben egy indexen

Részletesebben

1. Alapok. #!/bin/bash

1. Alapok. #!/bin/bash 1. oldal 1.1. A programfájlok szerkezete 1. Alapok A bash programok tulajnképpen egyszerű szöveges fájlok, amelyeket bármely szövegszerkesztő programmal megírhatunk. Alapvetően ugyanazokat a at használhatjuk

Részletesebben

Feladatunk, hogy az alábbiakban látható tízgépes elrendezésre meghatározzuk az operátorok optimális kiosztását a vevői igények függvényében.

Feladatunk, hogy az alábbiakban látható tízgépes elrendezésre meghatározzuk az operátorok optimális kiosztását a vevői igények függvényében. Kosztolányi János Operátorkiosztás tervezése Feladatunk, hogy az alábbiakban látható tízgépes elrendezésre meghatározzuk az operátorok optimális kiosztását a vevői igények függvényében. Első lépésként

Részletesebben

BASH script programozás II. Vezérlési szerkezetek

BASH script programozás II. Vezérlési szerkezetek 06 BASH script programozás II. Vezérlési szerkezetek Emlékeztető Jelölésbeli különbség van parancs végrehajtása és a parancs kimenetére való hivatkozás között PARANCS $(PARANCS) Jelölésbeli különbség van

Részletesebben

Algoritmuselmélet. Legrövidebb utak, Bellmann-Ford, Dijkstra. Katona Gyula Y.

Algoritmuselmélet. Legrövidebb utak, Bellmann-Ford, Dijkstra. Katona Gyula Y. Algoritmuselmélet Legrövidebb utak, Bellmann-Ford, Dijkstra Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 3. előadás Katona Gyula Y. (BME

Részletesebben

Keresés képi jellemzők alapján. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

Keresés képi jellemzők alapján. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék Keresés képi jellemzők alapján Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék Lusta gépi tanulási algoritmusok Osztályozás: k=1: piros k=5: kék k-legközelebbi szomszéd (k=1,3,5,7)

Részletesebben

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei. Atomerőművek üzemtana

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei. Atomerőművek üzemtana A MATLAB alapjai Kezdő lépések - Matlab Promt: >> - Help: >> help sqrt >> doc sqrt - Kilépés: >> quit >> exit >> Futó script leállítása: >> ctrl+c - Változók listásása >> who >> whos - Változók törlése

Részletesebben

MŰSZAKKIOSZTÁSI PROBLÉMÁK A KÖZÖSSÉGI KÖZLEKEDÉSBEN

MŰSZAKKIOSZTÁSI PROBLÉMÁK A KÖZÖSSÉGI KÖZLEKEDÉSBEN infokommunikációs technológiák MŰSZAKKIOSZTÁSI PROBLÉMÁK A KÖZÖSSÉGI KÖZLEKEDÉSBEN Készítette: Árgilán Viktor, Dr. Balogh János, Dr. Békési József, Dávid Balázs, Hajdu László, Dr. Galambos Gábor, Dr. Krész

Részletesebben

EuroOffice Optimalizáló (Solver)

EuroOffice Optimalizáló (Solver) 1. oldal EuroOffice Optimalizáló (Solver) Az EuroOffice Optimalizáló egy OpenOffice.org bővítmény, ami gyors algoritmusokat kínál lineáris programozási és szállítási feladatok megoldására. Szimplex módszer

Részletesebben

Számítógépes képelemzés 7. előadás. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

Számítógépes képelemzés 7. előadás. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék Számítógépes képelemzés 7. előadás Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék Momentumok Momentum-alapú jellemzők Tömegközéppont Irányultáság 1 2 tan 2 1 2,0 1,1 0, 2 Befoglaló

Részletesebben

Keresési algoritmusok, optimalizáció

Keresési algoritmusok, optimalizáció Keresési algoritmusok, optimalizáció Az eddig tanultakból a mostani részben gyakran használt (emiatt szükséges az ismeretük) programozási ismeretek: függvények létrehozása, meghívása (ld. 3. óra anyagában)

Részletesebben

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 4. kurzus. 3. Előadás: A mohó algoritmus

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 4. kurzus. 3. Előadás: A mohó algoritmus Csíkszereda IRT-. kurzus 3. Előadás: A mohó algoritmus 1 Csíkszereda IRT. kurzus Bevezetés Az eddig tanult algoritmus tipúsok nem alkalmazhatók: A valós problémák nem tiszta klasszikus problémák A problémák

Részletesebben

I. LABOR -Mesterséges neuron

I. LABOR -Mesterséges neuron I. LABOR -Mesterséges neuron A GYAKORLAT CÉLJA: A mesterséges neuron struktúrájának az ismertetése, neuronhálókkal kapcsolatos elemek, alapfogalmak bemutatása, aktivációs függvénytípusok szemléltetése,

Részletesebben

1.1.1 Dátum és idő függvények

1.1.1 Dátum és idő függvények 1.1.1 Dátum és idő függvények Azt már tudjuk, hogy két dátum különbsége az eltelt napok számát adja meg, köszönhetően a dátum tárolási módjának az Excel-ben. Azt is tudjuk a korábbiakból, hogy a MA() függvény

Részletesebben

Intelligens Rendszerek Elmélete IRE 4/32/1

Intelligens Rendszerek Elmélete IRE 4/32/1 Intelligens Rendszerek Elmélete 4 IRE 4/32/1 Problémamegoldás kereséssel http://nik.uni-obuda.hu/mobil IRE 4/32/2 Egyszerű lények intelligenciája? http://www.youtube.com/watch?v=tlo2n3ymcxw&nr=1 IRE 4/32/3

Részletesebben

Andó Mátyás Felületi érdesség matyi.misi.eu. Felületi érdesség. 1. ábra. Felületi érdességi jelek

Andó Mátyás Felületi érdesség matyi.misi.eu. Felületi érdesség. 1. ábra. Felületi érdességi jelek 1. Felületi érdesség használata Felületi érdesség A műszaki rajzokon a geometria méretek tűrése mellett a felületeket is jellemzik. A felületek jellemzésére leginkább a felületi érdességet használják.

Részletesebben

8. Előadás. Megyesi László: Lineáris algebra, , oldal. 8. előadás Mátrix rangja, Homogén lineáris egyenletrendszer

8. Előadás. Megyesi László: Lineáris algebra, , oldal. 8. előadás Mátrix rangja, Homogén lineáris egyenletrendszer 8. Előadás Megyesi László: Lineáris algebra, 51. 56., 70. 74. oldal. Gondolkodnivalók Elemi bázistranszformáció 1. Gondolkodnivaló Most ne vegyük figyelembe, hogy az elemi bázistranszformáció során ez

Részletesebben

26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA

26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA 26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA Az előző két fejezetben tárgyalt feladat általánosításaként a gráfban található összes csúcspárra szeretnénk meghatározni a legkisebb költségű utat. A probléma

Részletesebben

Közönséges differenciál egyenletek megoldása numerikus módszerekkel: egylépéses numerikus eljárások

Közönséges differenciál egyenletek megoldása numerikus módszerekkel: egylépéses numerikus eljárások Közönséges differenciál egyenletek megoldása numerikus módszerekkel: egylépéses numerikus eljárások Bevezetés Ebben a cikkben megmutatjuk, hogyan használhatóak a Mathematica egylépéses numerikus eljárásai,

Részletesebben

A PiFast program használata. Nagy Lajos

A PiFast program használata. Nagy Lajos A PiFast program használata Nagy Lajos Tartalomjegyzék 1. Bevezetés 3 2. Bináris kimenet létrehozása. 3 2.1. Beépített konstans esete.............................. 3 2.2. Felhasználói konstans esete............................

Részletesebben

A számok kiíratásának formátuma

A számok kiíratásának formátuma A számok kiíratásának formátuma Alapértelmezésben a Matlab négy tizedesjegy pontossággal írja ki az eredményeket, pl.» x=2/3 x = 0.6667 A format paranccsal átállíthatjuk a kiíratás formátumát. Ha több

Részletesebben

Általános algoritmustervezési módszerek

Általános algoritmustervezési módszerek Általános algoritmustervezési módszerek Ebben a részben arra mutatunk példát, hogy miként használhatóak olyan általános algoritmustervezési módszerek mint a dinamikus programozás és a korlátozás és szétválasztás

Részletesebben

Gauss-Seidel iteráció

Gauss-Seidel iteráció Közelítő és szimbolikus számítások 5. gyakorlat Iterációs módszerek: Jacobi és Gauss-Seidel iteráció Készítette: Gelle Kitti Csendes Tibor Somogyi Viktor London András Deák Gábor jegyzetei alapján 1 ITERÁCIÓS

Részletesebben

Dr. habil. Maróti György

Dr. habil. Maróti György infokommunikációs technológiák III.8. MÓDSZER KIDOLGOZÁSA ALGORITMUSOK ÁTÜLTETÉSÉRE KIS SZÁMÍTÁSI TELJESÍTMÉNYŰ ESZKÖZÖKBŐL ÁLLÓ NÉPES HETEROGÉN INFRASTRUKTÚRA Dr. habil. Maróti György maroti@dcs.uni-pannon.hu

Részletesebben

First Prev Next Last Go Back Full Screen Close Quit

First Prev Next Last Go Back Full Screen Close Quit Többváltozós függvények (2) First Prev Next Last Go Back Full Screen Close Quit 1. Egyváltozós függvények esetén a differenciálhatóságból következett a folytonosság. Fontos tudni, hogy abból, hogy egy

Részletesebben

Matematikai modellezés

Matematikai modellezés Matematikai modellezés Bevezető A diasorozat a Döntési modellek című könyvhöz készült. Készítette: Dr. Ábrahám István Döntési folyamatok matematikai modellezése Az emberi tevékenységben meghatározó szerepe

Részletesebben

Vállalati modellek. Előadásvázlat. dr. Kovács László

Vállalati modellek. Előadásvázlat. dr. Kovács László Vállalati modellek Előadásvázlat dr. Kovács László Vállalati modell fogalom értelmezés Strukturált szervezet gazdasági tevékenység elvégzésére, nyereség optimalizálási céllal Jellemzői: gazdasági egység

Részletesebben

Méretlánc átrendezés elmélete

Méretlánc átrendezés elmélete 1. Méretlánc átrendezés elmélete Méretlánc átrendezés elmélete Egyes esetekben szükség lehet, hogy arra, hogy a méretláncot átrendezzük. Ezeknek legtöbbször az az oka, hogy a rajzon feltüntetett méretet

Részletesebben

Algoritmusok bonyolultsága

Algoritmusok bonyolultsága Algoritmusok bonyolultsága 5. előadás http://www.ms.sapientia.ro/~kasa/komplex.htm 1 / 27 Gazdaságos faváz Kruskal-algoritmus Joseph Kruskal (1928 2010) Legyen V = {v 1, v 2,..., v n }, E = {e 1, e 2,...,

Részletesebben

Orvosi készülékekben használható modern fejlesztési technológiák lehetőségeinek vizsgálata

Orvosi készülékekben használható modern fejlesztési technológiák lehetőségeinek vizsgálata Kutatási beszámoló a Pro Progressio Alapítvány számára Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Mérnök informatika szak Orvosi készülékekben használható modern

Részletesebben

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék 2016/17 2. félév 8. Előadás Dr. Kulcsár Gyula egyetemi docens Kereső algoritmusok alkalmazása

Részletesebben

Táblázatok kezelése. 1. ábra Táblázat kezelése menüből

Táblázatok kezelése. 1. ábra Táblázat kezelése menüből Táblázat beszúrása, létrehozása A táblázatok készítésének igénye már a korai szövegszerkesztőkben felmerült, de ezekben nem sok lehetőség állt rendelkezésre. A mai szövegszerkesztőket már kiegészítették

Részletesebben

További forgalomirányítási és szervezési játékok. 1. Nematomi forgalomirányítási játék

További forgalomirányítási és szervezési játékok. 1. Nematomi forgalomirányítási játék További forgalomirányítási és szervezési játékok 1. Nematomi forgalomirányítási játék A forgalomirányítási játékban adott egy hálózat, ami egy irányított G = (V, E) gráf. A gráfban megengedjük, hogy két

Részletesebben

Kétfázisú szimplex algoritmus és speciális esetei

Kétfázisú szimplex algoritmus és speciális esetei 5. gyakorlat Kétfázisú szimplex algoritmus és speciális esetei. Emlékeztető Standard alak, áttérés Standard alak Minden feltétel et tartalmaz csak. A célfüggvényünket maximalizáljuk. A b vektor (jobb oldalon

Részletesebben

S Z Á L L Í T Á S I F E L A D A T

S Z Á L L Í T Á S I F E L A D A T Döntéselmélet S Z Á L L Í T Á S I F E L A D A T Szállítási feladat meghatározása Speciális lineáris programozási feladat. Legyen adott m telephely, amelyeken bizonyos fajta, tetszés szerint osztható termékből

Részletesebben

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008 Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 007/008 Az Előadások Témái Bevezető: mi a mesterséges intelligencia... Tudás reprezentáció i stratégiák Szemantikus hálók / Keretrendszerek

Részletesebben

15. LINEÁRIS EGYENLETRENDSZEREK

15. LINEÁRIS EGYENLETRENDSZEREK 15 LINEÁRIS EGYENLETRENDSZEREK 151 Lineáris egyenletrendszer, Gauss elimináció 1 Definíció Lineáris egyenletrendszernek nevezzük az (1) a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21 x 1 + a 22 x 2 + + a

Részletesebben

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI statisztika 10 X. SZIMULÁCIÓ 1. VÉLETLEN számok A véletlen számok fontos szerepet játszanak a véletlen helyzetek generálásában (pénzérme, dobókocka,

Részletesebben

Online algoritmusok. Algoritmusok és bonyolultságuk. Horváth Bálint március 30. Horváth Bálint Online algoritmusok március 30.

Online algoritmusok. Algoritmusok és bonyolultságuk. Horváth Bálint március 30. Horváth Bálint Online algoritmusok március 30. Online algoritmusok Algoritmusok és bonyolultságuk Horváth Bálint 2018. március 30. Horváth Bálint Online algoritmusok 2018. március 30. 1 / 28 Motiváció Gyakran el fordul, hogy a bemenetet csak részenként

Részletesebben

SZÁMÍTÁSOK A TÁBLÁZATBAN

SZÁMÍTÁSOK A TÁBLÁZATBAN SZÁMÍTÁSOK A TÁBLÁZATBAN Az Excelben az egyszerű adatok bevitelén kívül számításokat is végezhetünk. Ezeket a cellákba beírt képletek segítségével oldjuk meg. A képlet: olyan egyenlet, amely a munkalapon

Részletesebben

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás? Bevezetés Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések Forráskód Hibajegyzék p2p.wrox.com xiii xiii xiv xiv xvi xvii xviii

Részletesebben

1. Előadás Lineáris programozás

1. Előadás Lineáris programozás 1. Előadás Lineáris programozás Salamon Júlia Előadás II. éves gazdaság informatikus hallgatók számára Operációkutatás Az operációkutatás az alkalmazott matematika az az ága, ami bizonyos folyamatok és

Részletesebben

Robotok inverz geometriája

Robotok inverz geometriája Robotok inverz geometriája. A gyakorlat célja Inverz geometriai feladatot megvalósító függvények implementálása. A megvalósított függvénycsomag tesztelése egy kétszabadságfokú kar előírt végberendezés

Részletesebben

Követelmények Motiváció Matematikai modellezés: példák A lineáris programozás alapfeladata 2017/ Szegedi Tudományegyetem Informatikai Intézet

Követelmények Motiváció Matematikai modellezés: példák A lineáris programozás alapfeladata 2017/ Szegedi Tudományegyetem Informatikai Intézet Operációkutatás I. 2017/2018-2. Szegedi Tudományegyetem Informatikai Intézet Számítógépes Optimalizálás Tanszék 1. Előadás Követelmények, teljesítés feltételei Vizsga anyaga Előadásokhoz tartozó diasor

Részletesebben

Követelmények Motiváció Matematikai modellezés: példák A lineáris programozás alapfeladata 2017/ Szegedi Tudományegyetem Informatikai Intézet

Követelmények Motiváció Matematikai modellezés: példák A lineáris programozás alapfeladata 2017/ Szegedi Tudományegyetem Informatikai Intézet Operációkutatás I. 2017/2018-2. Szegedi Tudományegyetem Informatikai Intézet Számítógépes Optimalizálás Tanszék 1. Előadás Követelmények, teljesítés feltételei Vizsga anyaga Előadásokhoz tartozó diasor

Részletesebben

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t Ellenőrző kérdések 2. Kis dolgozat kérdései 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t 37. Ha t szintű indexet használunk,

Részletesebben

MATLAB alapismeretek I.

MATLAB alapismeretek I. Alkalmazott Informatikai Intézeti Tanszék MŰSZAKI INFORMATIKA Dr.Dudás László 0. MATLAB alapismeretek I. A MATLAB bemutatása MATLAB filozófia MATLAB modulok A MATLAB felhasználói felülete MATLAB tulajdonságok

Részletesebben

Boronkay György Műszaki Középiskola és Gimnázium

Boronkay György Műszaki Középiskola és Gimnázium Boronkay György Műszaki Középiskola és Gimnázium 2600 Vác, Németh László u. 4-6. (: 27-317 - 077 (/fax: 27-315 - 093 WEB: http://boronkay.vac.hu e-mail: boronkay@vac.hu Levelező Matematika Szakkör 2014/2015.

Részletesebben

12. előadás. Egyenletrendszerek, mátrixok. Dr. Szörényi Miklós, Dr. Kallós Gábor

12. előadás. Egyenletrendszerek, mátrixok. Dr. Szörényi Miklós, Dr. Kallós Gábor 12. előadás Egyenletrendszerek, mátrixok Dr. Szörényi Miklós, Dr. Kallós Gábor 2015 2016 1 Tartalom Matematikai alapok Vektorok és mátrixok megadása Tömbkonstansok Lineáris műveletek Mátrixok szorzása

Részletesebben

Mathematica automatikusan dolgozik nagy pontossággal, például 3 a 100-dik hatványon egy szám 48 tizedes jeggyel:

Mathematica automatikusan dolgozik nagy pontossággal, például 3 a 100-dik hatványon egy szám 48 tizedes jeggyel: Mathematica mint egy számológép Használhatja a Mathematica-t, mint egy közönséges számológépet, begépelve egy kifejezést, és a SHIFT + ENTER gombok egyidejű lenyomása után a Mathematica kiszámítja és megadja

Részletesebben

KOVÁCS BÉLA, MATEMATIKA II.

KOVÁCS BÉLA, MATEMATIKA II. KOVÁCS BÉLA, MATEmATIkA II 3 III NUmERIkUS SOROk 1 Alapvető DEFInÍCIÓ ÉS TÉTELEk Végtelen sor Az (1) kifejezést végtelen sornak nevezzük Az számok a végtelen sor tagjai Az, sorozat az (1) végtelen sor

Részletesebben

Függvények növekedési korlátainak jellemzése

Függvények növekedési korlátainak jellemzése 17 Függvények növekedési korlátainak jellemzése A jellemzés jól bevált eszközei az Ω, O, Θ, o és ω jelölések. Mivel az igények általában nemnegatívak, ezért az alábbi meghatározásokban mindenütt feltesszük,

Részletesebben

Tartalomjegyzék. Tartalomjegyzék... 3 Előszó... 9

Tartalomjegyzék. Tartalomjegyzék... 3 Előszó... 9 ... 3 Előszó... 9 I. Rész: Evolúciós számítások technikái, módszerei...11 1. Bevezetés... 13 1.1 Evolúciós számítások... 13 1.2 Evolúciós algoritmus alapfogalmak... 14 1.3 EC alkalmazásokról általában...

Részletesebben

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Függvények

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Függvények MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Függvények A szürkített hátterű feladatrészek nem tartoznak az érintett témakörhöz, azonban szolgálhatnak fontos információval az érintett feladatrészek

Részletesebben

SZÁLLÍTÁSI FELADAT KÖRUTAZÁSI MODELL WINDOWS QUANTITATIVE SUPPORT BUSINESS PROGRAMMAL (QSB) JEGYZET Ábragyűjtemény Dr. Réger Béla LÉPÉSRŐL - LÉPÉSRE

SZÁLLÍTÁSI FELADAT KÖRUTAZÁSI MODELL WINDOWS QUANTITATIVE SUPPORT BUSINESS PROGRAMMAL (QSB) JEGYZET Ábragyűjtemény Dr. Réger Béla LÉPÉSRŐL - LÉPÉSRE SZÁLLÍTÁSI FELADAT KÖRUTAZÁSI MODELL WINDOWS QUANTITATIVE SUPPORT BUSINESS PROGRAMMAL (QSB) JEGYZET Ábragyűjtemény Dr. Réger Béla LÉPÉSRŐL - LÉPÉSRE KÖRUTAZÁSI MODELL AVAGY AZ UTAZÓÜGYNÖK PROBLÉMÁJA Induló

Részletesebben

Megoldások a mintavizsga kérdések a VIMIAC04 tárgy ellenőrzési technikák részéhez kapcsolódóan (2017. május)

Megoldások a mintavizsga kérdések a VIMIAC04 tárgy ellenőrzési technikák részéhez kapcsolódóan (2017. május) Megoldások a mintavizsga kérdések a VIMIAC04 tárgy ellenőrzési technikák részéhez kapcsolódóan (2017. május) Teszt kérdések 1. Melyik állítás igaz a folytonos integrációval (CI) kapcsolatban? a. Folytonos

Részletesebben

SCILAB programcsomag segítségével

SCILAB programcsomag segítségével Felhasználói függvények de niálása és függvények 3D ábrázolása SCILAB programcsomag segítségével 1. Felhasználói függvények de niálása A Scilab programcsomag rengeteg matematikai függvényt biztosít a számítások

Részletesebben

ÁRAMKÖRÖK SZIMULÁCIÓJA

ÁRAMKÖRÖK SZIMULÁCIÓJA ÁRAMKÖRÖK SZIMULÁCIÓJA Az áramkörök szimulációja révén betekintést nyerünk azok működésébe. Meg tudjuk határozni az áramkörök válaszát különböző gerjesztésekre, különböző üzemmódokra. Végezhetők analóg

Részletesebben

First Prev Next Last Go Back Full Screen Close Quit. Matematika I

First Prev Next Last Go Back Full Screen Close Quit. Matematika I Matematika I (Analízis) Készítette: Horváth Gábor Kötelező irodalom: Ács László, Gáspár Csaba: Analízis 1 Oktatási segédanyagok és a tantárgyi követelményrendszer megtalálható a http://rs1.szif.hu/ horvathg/horvathg.html

Részletesebben

Láthatósági kérdések

Láthatósági kérdések Láthatósági kérdések Láthatósági algoritmusok Adott térbeli objektum és adott nézőpont esetén el kell döntenünk, hogy mi látható az adott alakzatból a nézőpontból, vagy irányából nézve. Az algoritmusok

Részletesebben

Mesterséges Intelligencia MI

Mesterséges Intelligencia MI Mesterséges Intelligencia MI Problémamegoldás kereséssel - csak lokális információra alapozva Pataki Béla BME I.E. 414, 463-26-79 pataki@mit.bme.hu, http://www.mit.bme.hu/general/staff/pataki Lokálisan

Részletesebben

Lakóház tervezés ADT 3.3-al. Segédlet

Lakóház tervezés ADT 3.3-al. Segédlet Lakóház tervezés ADT 3.3-al Segédlet A lakóház tervezési gyakorlathoz főleg a Tervezés és a Dokumentáció menüket fogjuk használni az AutoDesk Architectural Desktop programból. A program centiméterben dolgozik!!!

Részletesebben

Rekurzió. Dr. Iványi Péter

Rekurzió. Dr. Iványi Péter Rekurzió Dr. Iványi Péter 1 Függvényhívás void f3(int a3) { printf( %d,a3); } void f2(int a2) { f3(a2); a2 = (a2+1); } void f1() { int a1 = 1; int b1; b1 = f2(a1); } 2 Függvényhívás void f3(int a3) { printf(

Részletesebben

KOVÁCS BÉLA, MATEMATIKA I.

KOVÁCS BÉLA, MATEMATIKA I. KOVÁCS BÉLA MATEmATIkA I 6 VI KOmPLEX SZÁmOk 1 A komplex SZÁmOk HALmAZA A komplex számok olyan halmazt alkotnak amelyekben elvégezhető az összeadás és a szorzás azaz két komplex szám összege és szorzata

Részletesebben

openbve járműkészítés Leírás az openbve-hez kapcsolódó extensions.cfg fájl elkészítéséhez

openbve járműkészítés Leírás az openbve-hez kapcsolódó extensions.cfg fájl elkészítéséhez Leírás az openbve-hez kapcsolódó extensions.cfg fájl elkészítéséhez 1. oldal openbve járműkészítés Leírás az openbve-hez kapcsolódó extensions.cfg fájl elkészítéséhez A leírás az openbve-hez készített

Részletesebben

C programozási nyelv Pointerek, tömbök, pointer aritmetika

C programozási nyelv Pointerek, tömbök, pointer aritmetika C programozási nyelv Pointerek, tömbök, pointer aritmetika Dr. Schuster György 2011. június 16. C programozási nyelv Pointerek, tömbök, pointer aritmetika 2011. június 16. 1 / 15 Pointerek (mutatók) Pointerek

Részletesebben

Bevezető. Mi is az a GeoGebra? Tények

Bevezető. Mi is az a GeoGebra? Tények Bevezető Mi is az a GeoGebra? dinamikus matematikai szoftver könnyen használható csomagolásban az oktatás minden szintjén alkalmazható tanításhoz és tanuláshoz egyaránt egyesíti az interaktív geometriát,

Részletesebben

OPERÁCIÓKUTATÁS, AZ ELFELEDETT TUDOMÁNY A LOGISZTIKÁBAN (A LOGISZTIKAI CÉL ELÉRÉSÉNEK ÉRDEKÉBEN)

OPERÁCIÓKUTATÁS, AZ ELFELEDETT TUDOMÁNY A LOGISZTIKÁBAN (A LOGISZTIKAI CÉL ELÉRÉSÉNEK ÉRDEKÉBEN) OPERÁCIÓKUTATÁS, AZ ELFELEDETT TUDOMÁNY A LOGISZTIKÁBAN (A LOGISZTIKAI CÉL ELÉRÉSÉNEK ÉRDEKÉBEN) Fábos Róbert 1 Alapvető elvárás a logisztika területeinek szereplői (termelő, szolgáltató, megrendelő, stb.)

Részletesebben

Normák, kondíciószám

Normák, kondíciószám Normák, kondíciószám A fizika numerikus módszerei I. mf1n1a06- mf1n2a06 Csabai István Lineáris egyenletrendszerek Nagyon sok probléma közvetlenül lineáris egyenletrendszer megoldásával kezelhetı Sok numerikus

Részletesebben

Függvények Megoldások

Függvények Megoldások Függvények Megoldások ) Az ábrán egy ; intervallumon értelmezett függvény grafikonja látható. Válassza ki a felsoroltakból a függvény hozzárendelési szabályát! a) x x b) x x + c) x ( x + ) b) Az x függvény

Részletesebben

Felvételi tematika INFORMATIKA

Felvételi tematika INFORMATIKA Felvételi tematika INFORMATIKA 2016 FEJEZETEK 1. Természetes számok feldolgozása számjegyenként. 2. Számsorozatok feldolgozása elemenként. Egydimenziós tömbök. 3. Mátrixok feldolgozása elemenként/soronként/oszloponként.

Részletesebben

Szinkronizmusból való kiesés elleni védelmi funkció

Szinkronizmusból való kiesés elleni védelmi funkció Budapest, 2011. december Szinkronizmusból való kiesés elleni védelmi funkció Szinkronizmusból való kiesés elleni védelmi funkciót főleg szinkron generátorokhoz alkalmaznak. Ha a generátor kiesik a szinkronizmusból,

Részletesebben

A Markowitz modell: kvadratikus programozás

A Markowitz modell: kvadratikus programozás A Markowitz modell: kvadratikus programozás Losonczi László Debreceni Egyetem, Közgazdaság- és Gazdaságtudományi Kar Debrecen, 2011/12 tanév, II. félév Losonczi László (DE) A Markowitz modell 2011/12 tanév,

Részletesebben

angolul: greedy algorithms, románul: algoritmi greedy

angolul: greedy algorithms, románul: algoritmi greedy Mohó algoritmusok angolul: greedy algorithms, románul: algoritmi greedy 1. feladat. Gazdaságos telefonhálózat építése Bizonyos városok között lehet direkt telefonkapcsolatot kiépíteni, pl. x és y város

Részletesebben

Mio Technology Limited www.mio-tech.be C510, C710. Gyors használati utasítás a Mio Map v3 programhoz. Magyar

Mio Technology Limited www.mio-tech.be C510, C710. Gyors használati utasítás a Mio Map v3 programhoz. Magyar Mio Technology Limited www.mio-tech.be C510, C710 Gyors használati utasítás a Mio Map v3 programhoz Magyar 2 A Fő menü Amikor a Mio Map elindul, a fő menü jelenik meg. Innen lehet elérni a Mio Map minden

Részletesebben

19. AZ ÖSSZEHASONLÍTÁSOS RENDEZÉSEK MŰVELETIGÉNYÉNEK ALSÓ KORLÁTJAI

19. AZ ÖSSZEHASONLÍTÁSOS RENDEZÉSEK MŰVELETIGÉNYÉNEK ALSÓ KORLÁTJAI 19. AZ ÖSSZEHASONLÍTÁSOS RENDEZÉSEK MŰVELETIGÉNYÉNEK ALSÓ KORLÁTJAI Ebben a fejezetben aszimptotikus (nagyságrendi) alsó korlátot adunk az összehasonlításokat használó rendező eljárások lépésszámára. Pontosabban,

Részletesebben

C++ programozási nyelv

C++ programozási nyelv C++ programozási nyelv Gyakorlat - 13. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. december A C++ programozási nyelv Soós Sándor 1/10 Tartalomjegyzék Objektumok

Részletesebben

SZOFTVERES SZEMLÉLTETÉS A MESTERSÉGES INTELLIGENCIA OKTATÁSÁBAN _ Jeszenszky Péter Debreceni Egyetem, Informatikai Kar jeszenszky.peter@inf.unideb.

SZOFTVERES SZEMLÉLTETÉS A MESTERSÉGES INTELLIGENCIA OKTATÁSÁBAN _ Jeszenszky Péter Debreceni Egyetem, Informatikai Kar jeszenszky.peter@inf.unideb. SZOFTVERES SZEMLÉLTETÉS A MESTERSÉGES INTELLIGENCIA OKTATÁSÁBAN _ Jeszenszky Péter Debreceni Egyetem, Informatikai Kar jeszenszky.peter@inf.unideb.hu Mesterséges intelligencia oktatás a DE Informatikai

Részletesebben

Algoritmuselmélet. Bonyolultságelmélet. Katona Gyula Y.

Algoritmuselmélet. Bonyolultságelmélet. Katona Gyula Y. Algoritmuselmélet Bonyolultságelmélet Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 12. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet

Részletesebben

A lineáris programozás alapjai

A lineáris programozás alapjai A lineáris programozás alapjai A konvex analízis alapjai: konvexitás, konvex kombináció, hipersíkok, félterek, extrém pontok, Poliéderek, a Minkowski-Weyl tétel (a poliéderek reprezentációs tétele) Lineáris

Részletesebben

Navigáci. stervezés. Algoritmusok és alkalmazásaik. Osváth Róbert Sorbán Sámuel

Navigáci. stervezés. Algoritmusok és alkalmazásaik. Osváth Róbert Sorbán Sámuel Navigáci ció és s mozgástervez stervezés Algoritmusok és alkalmazásaik Osváth Róbert Sorbán Sámuel Feladat Adottak: pálya (C), játékos, játékos ismerethalmaza, kezdőpont, célpont. Pálya szerkezete: akadályokkal

Részletesebben

BetBulls Opciós Portfolió Manager

BetBulls Opciós Portfolió Manager BetBulls Opciós Portfolió Manager Ennek a modulnak a célja, hogy ügyfeleinknek lehetőséget biztosítson virtuális számlanyitásra és részvény, valamint opciós pozíciók vásárlására, eladására a naponta frissülő,

Részletesebben

Gibbs-jelenség viselkedésének vizsgálata egyszer négyszögjel esetén

Gibbs-jelenség viselkedésének vizsgálata egyszer négyszögjel esetén Matematikai modellek, I. kisprojekt Gibbs-jelenség viselkedésének vizsgálata egyszer négyszögjel esetén Unger amás István B.Sc. szakos matematikus hallgató ungert@maxwell.sze.hu, http://maxwell.sze.hu/~ungert

Részletesebben

Bevezetés a programozásba. 5. Előadás: Tömbök

Bevezetés a programozásba. 5. Előadás: Tömbök Bevezetés a programozásba 5. Előadás: Tömbök ISMÉTLÉS Specifikáció Előfeltétel: milyen körülmények között követelünk helyes működést Utófeltétel: mit várunk a kimenettől, mi az összefüggés a kimenet és

Részletesebben

Genetikus algoritmusok

Genetikus algoritmusok Genetikus algoritmusok Zsolnai Károly - BME CS zsolnai@cs.bme.hu Keresőalgoritmusok osztályai Véletlent használó algoritmusok Keresőalgoritmusok Kimerítő algoritmusok Dinamikus programozás BFS DFS Tabu

Részletesebben