Evolúciós algoritmusok
|
|
- Erika Bognár
- 5 évvel ezelőtt
- Látták:
Átírás
1 Evolúciós algoritmusok
2 Evolúciós algoritmusok Alapelvük a megoldások egy populációján történő keresés, melyet a biológiából megismert törvényszerűségek vezérelnek A populáció egyedei a feladat egy-egy megoldását jelentik A populáció fejlődik, egyre jobb egyedeket kapunk EVOLÚCIÓS ALGORITMUSOK BEVEZETÉS 2
3 A kezdetek Az ötlet, hogy használjunk szimulált evolúciót mérnöki és tervezési problémák megoldására az 1950-es években megjelenik már Az 1960-as években kialakul a három fő klasszikus terület: Evolúciós programozás (Lawrence Fogel, 1962), Genetikus algoritmusok (Holland, 1975) Evolúciós Stratégiák (Rechenberg, 1965 & Schwefel, 1968) Az egyes technikák kifejlesztői megmutatták, hogy a módszerük alkalmas a következő probléma típusok megoldására Fogel előrejelzési problémákkal foglalkozott Rechenberg & Schwefel paraméter optimalizációs problémákkal Holland robusztus adaptív rendszerek fejlesztésével EVOLÚCIÓS ALGORITMUSOK BEVEZETÉS 3
4 Optimalizációs módszerek Determinisztikus Calculus alapú Hegymászó módszer Sztochasztikus Véletlen keresés Szimulált lehűtés Evolúciós algoritmusok: sztochasztikus módszerek, melyek a természetes evolúció folyamatát szimulálják felhasználva a legalkalmasabb egyed túlélésének törvényét EVOLÚCIÓS ALGORITMUSOK BEVEZETÉS 4
5 Terminológia Gén: funkcionális entitás, mely az egyed egy speciális tulajdonságát kódolja (pl. hajszín) Allél: a gén értéke (pl. szőke) Egyed: kromoszóma, egy megoldás jelölt a problémára Genotípus: egy egyed alléljainak egy speciális kombinációja Fenotípus: az egyed külső-belső tulajdonságainak összessége Locus: egy gén pozíciója a kromoszómán belül Populáció: egyszerre együtt élő egyedek összessége EVOLÚCIÓS ALGORITMUSOK BEVEZETÉS 5
6 A populáció evolúciója Egyedek eloszlása a 0. generációban Egyedek eloszlása a N. generációban EVOLÚCIÓS ALGORITMUSOK BEVEZETÉS 6
7 Genetikus algoritmus kezdeti populáció létrehozása egyedek rangsorolása szelekció keresztezés mutáció visszahelyettesítés EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 7
8 Az egyed Az egyed egy megoldás jelölt a problémára A probléma egy lehetséges megoldása valamilyen formában az egyedbe van kódolva pl. bináris, vagy valós Fitnesz érték (alkalmassági érték): az egyedeket valamilyen kritérium szerint értékeljük ki, aszerint, hogy mennyire jó megoldást adnak a feladatra Jobb egyednek nagyobb a fitnesz értéke, és nagyobb eséllyel él túl EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 8
9 Szelekciós módszerek többféle kiválasztási módszer terjedt el minél jobb az egyed, annál nagyobb az esély a kiválasztására Rulett kerék szelekció: az egyedek a fitnesz értékükkel arányos szeletet kapnak a gurításnál a nagyobb fitnesz értékű egyedek nagyobb eséllyel választódnak ki EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 9
10 Keresztezés (Crossover) Véletlenszerű keresztezési pont kiválasztása a két szülőn Utódok létrehozása az információ kicserélődésével a keresztezési pont alapján EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 10
11 Mutáció Gén értékének véletlenszerű megváltoztatása pm valószínűséggel (mutációs arány) EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 11
12 Egy példa (Goldberg) Egyszerű probléma: x 2 maximumának megkeresése a {0,1,,31} alaphalmazon Genetikus algoritmussal: Reprezentáció: bináris, pl Populáció méret: 4 Keresztezés, mutáció Rulett kerék szelekció Véletlenszerű inicializálás EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 12
13 Egy példa: szelekció EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 13
14 Egy példa: keresztezés EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 14
15 Egy példa: mutáció EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 15
16 Alternatív keresztezés operátorok n-pontos: uniform: EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 16
17 Valós GA Keresztezés például: szülők: x1,,xn és y1,,yn utód1: αx+(1-α)y a másik utódra felcserélve pl.: (a = 0.5) Mutáció: x= x1,,xn x = x 1,,x n xi,x i [LBi,UBi] EVOLÚCIÓS ALGORITMUSOK GENETIKUS ALGORITMUSOK 17
18 Evolúció stratégia (1+1)-ES: egy szülő egy mutált utódot hoz létre és a jobbat fogadjuk el (iteratív javítás) (μ+1)-es: μ szülő hoz létre 1 utódot (μ+λ)-es: μ szülő hoz létre λ utódot, és a legjobb μ fog túlélni az egyesített szülő és utód populációból (μ,λ)-es: μ szülő hoz létre λ utódot, és a legjobb μ fog túlélni az utód populációból EVOLÚCIÓS ALGORITMUSOK EVOLÚCIÓ STRATÉGIÁK 18
19 Evolúció stratégiák kódolás: fenotípus (valós szám, egész) szelekció mutáció μ: populáció mérete λ: leszármattak száma (μ,λ)-es: diszkrét modell (μ+λ)-es: folytonos modell (µ+λ)-es λ gyerek mutáció rangsor legjobb µ egyed µ egyed Populáció(t) Populáció(t+1) EVOLÚCIÓS ALGORITMUSOK EVOLÚCIÓ STRATÉGIÁK 19
20 Különböző evolúció stratégiák (µ+λ)-es szülők gyerekek (1,1)-ES: véletlen keresés szülő gyerek (1+1)-ES: hegymászó alg. (1+λ)-ES: többpontos szomszédos keresés (µ+1)-es: állandósult Steady-state állapotú GA szülők szülő szülő gyerek gyerekek gyerek EVOLÚCIÓS ALGORITMUSOK EVOLÚCIÓ STRATÉGIÁK 20
21 Bakteriális evolúciós algoritmusok Természetből ellesett optimalizációs technika A baktériumok evolúciós folyamatán alapul Alkalmas bonyolult optimalizációs problémák megoldására Egyed: egy megoldás a problémára Intelligens keresési stratégia eléggé jó megoldás keresésére (kvázi optimum) Gyors konvergencia (feltételesen) EVOLÚCIÓS ALGORITMUSOK BAKTERIÁLIS EVOLÚCIÓS ALGORITMUSOK 21
22 Az algoritmus Kezdeti populáció véletlenszerű létrehozása Bakteriális mutáció végrehajtása minden egyeden Génátadás végrehajtása a populációban Ha megfelelő eredményt értünk el, akkor megállunk, különben folytatjuk a bakteriális mutációs lépéssel n. generáció (n+1). generáció EVOLÚCIÓS ALGORITMUSOK BAKTERIÁLIS EVOLÚCIÓS ALGORITMUSOK 22
23 Bakteriális mutáció 1. rész i. rész n. rész Egy rész véletlenszerű kiválasztása Az i. részt változtatjuk az N klón számú másolatban, de az eredeti baktériumban nem A legjobb baktérium átadja az i. részt a többi baktériumnak Ismételjük addig, amíg az összes részt ki nem választottuk EVOLÚCIÓS ALGORITMUSOK BAKTERIÁLIS EVOLÚCIÓS ALGORITMUSOK 23
24 Génátadás 1. A populációt 2 részre osztjuk, jó egyedekre, és rossz egyedekre 2. Egy baktériumot véletlenszerűen kiválasztunk a jobbik alpopulációból (forrásbaktérium) egy másikat pedig a rossz egyedek közül (célbaktérium) 3. A forrásbaktérium egy része felülírja a célbaktérium egy részét Ez a ciklus ismétlődik N inf -szer ( infekciók száma) jó egyedek rossz egyedek EVOLÚCIÓS ALGORITMUSOK BAKTERIÁLIS EVOLÚCIÓS ALGORITMUSOK 24
25 Paraméterek Ngen: generációk száma Nind: egyedek száma Nklón: másolatok (klónok) száma a bakteriális mutációban Ninf: génátadások (infekciók) száma a génátadásnál EVOLÚCIÓS ALGORITMUSOK BAKTERIÁLIS EVOLÚCIÓS ALGORITMUSOK 25
26 Különbségek a GA és a BEA között A GA az emlősállatok evolúciós folyamatát utánozza, míg a BEA a baktériumok fejlődését Az információ terjesztésére a GA a keresztezés operátort használja, a BEA pedig a génátadást A bakteriális mutáció hatékonyabb a GA klasszikus mutációjánál A bakteriális evolúciós algoritmusban nincs szelekció, viszont van osztódás EVOLÚCIÓS ALGORITMUSOK BAKTERIÁLIS EVOLÚCIÓS ALGORITMUSOK 26
27 Genetikus programozás John Koza (~1990) A genetikus programozás a genetikus algoritmusok alapötletét alkalmazza a lehetséges programok terére Különbözőnek tűnő problémák különböző területekről átfogalmazhatók egy számítógépes program-keresési feladattá EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 27
28 Egy számítógépes program EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 28
29 Egy számítógépes program C nyelven int foo (int time) { int temp1, temp2; if (time > 10) temp1 = 3; else temp1 = 4; temp2 = temp ; return (temp2); } EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 29
30 Program fa (+ 1 2 (IF (> TIME 10) 3 4)) EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 30
31 Véletlen programok létrehozása Rendelkezésre álló függvények: pl. F = {+, -, *, %, IF} Rendelkezésre álló terminálisok: pl. T = {X, Y, konstansok} A véletlen programok: szintaktikailag érvényesek végrehajthatók A fák különböző méretűek és alakúak lehetnek EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 31
32 Genetikus operátorok a GP-ben Reprodukció Mutáció Keresztezés Reprodukció: szülő kiválasztása (fitness alapján) változatlan lemásolása a populáció következő generációjába EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 32
33 Mutáció 1 szülő kiválasztása (fitness alapján) A fa egy pontjának kiválasztása A kiválasztott pontnál lévő részfa törlése Új részfa növesztése a mutációs pontnál hasonló módon, mint a kezdeti véletlen fa létrehozásánál Az eredmény egy szintaktikailag érvényes, végrehajtható program legyen A leszármazott elhelyezése a populáció következő generációjába EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 33
34 Függvény mutáció kiválasztott csomópont * + T4 * + T4 + T3 T6 * T1 T2 T5 T7 új részfa a függvény mutáció után EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 34
35 Terminális mutáció * * + T4 + T4 + T3 + T5 T1 T2 kiválasztott csomópont T1 T2 megváltozott csomópont EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 35
36 Keresztezés 2 szülő kiválasztása (fitness alapján) Az első szülő fájában egy pont véletlen kiválasztása A második szülő fájában egy pont véletlen kiválasztása A két kiválasztott ponthoz tartozó részfák kicserélése Az eredmények szintaktikailag érvényes, végrehajtható programok legyenek A leszármazottak elhelyezése a populáció következő generációjába EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 36
37 Keresztezés EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 37
38 Előkészítő lépések A terminálisok halmazának meghatározása A függvények halmazának meghatározása A fitness mérték meghatározása A futtatás paramétereinek meghatározása A megállási feltétel meghatározása EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 38
39 Egy példa: szimbolikus regresszió Független változó (X) Függő változó (Y) EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 39
40 Előkészítő lépések Cél: Találjunk egy egybemenetű (X független változó) számítógépes programot, amelynek a kimenete megegyezik a kívánt kimenettel. 1 Terminális halmaz: T={X, konstansok} 2 Függvény halmaz: F={+, -, *, %} 3 Fitness: A program kimenetei és a kívánt kimenetek közötti különbségek abszolútértékeinek összege. 4 Paraméterek: Populáció mérete: M=4 5 Megállási feltétel: Ha kialakul egy olyan egyed, amelynél az abszolút hibák összege kisebb, mint 0.1. EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 40
41 Szimbolikus regresszió (x 2 +x+1) 4 véletlenszerűen létrehozott egyed populációja (0. generáció): EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 41
42 Szimbolikus regresszió (x 2 +x+1) A 4 egyed fitness értéke a 0. generációban: x+1 x x EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 42
43 Szimbolikus regresszió (x 2 +x+1) 1. generáció: (a) másolata (c) mutánsa mutációs pont a 2 -nél (a) és (b) keresztezésének első leszármazottja keresztezési pont a + -nál (a) és a legbaloldalibb x -nél (a) és (b) keresztezésének második leszármazottja keresztezési pont a + -nál (a) és a legbaloldalibb x -nél EVOLÚCIÓS ALGORITMUSOK GENETIKUS PROGRAMOZÁS 43
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
Algoritmusok Tervezése. 9. Előadás Genetikus Algoritmusok Dr. Bécsi Tamás
Algoritmusok Tervezése 9. Előadás Genetikus Algoritmusok Dr. Bécsi Tamás Biológiai háttér (nagyvonalúan) A sejt genetikai információit hordozó DNS általában kromoszómának nevezett makromolekulákba van
Intelligens Rendszerek Elmélete. Párhuzamos keresés genetikus algoritmusokkal
Intelligens Rendszerek Elmélete Dr. Kutor László Párhuzamos keresés genetikus algoritmusokkal http://mobil.nik.bmf.hu/tantargyak/ire.html login: ire jelszó: IRE0 IRE / A természet általános kereső algoritmusa:
Evolúciós algoritmusok
Evolúciós algoritmusok Evolúció, mint kereső rendszer A problémára adható néhány lehetséges választ, azaz a problématér több egyedét tároljuk egyszerre. Ez a populáció. Kezdetben egy többnyire véletlen
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
értékel függvény: rátermettségi függvény (tness function)
Genetikus algoritmusok globális optimalizálás sok lehetséges megoldás közül keressük a legjobbat értékel függvény: rátermettségi függvény (tness function) populáció kiválasztjuk a legrátermettebb egyedeket
Informatikai Rendszerek Tervezése
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT.- 5. kurzus 1 Informatikai Rendszerek Tervezése 4. Előadás: Genetikus algoritmusok Illyés László 1 Tartalom Bevezető A kanonikus genetikus
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
Intelligens Rendszerek Elmélete. Párhuzamos keresés genetikus algoritmusokkal. A genetikus algoritmus működése. Az élet információ tárolói
Intelligens Rendszerek Elmélete dr. Kutor László Párhuzamos keresés genetikus algoritmusokkal http://mobil.nik.bmf.hu/tantargyak/ire.html login: ire jelszó: IRE07 IRE 5/ Természetes és mesterséges genetikus
Universität M Mis is k k olol cic, F Eg a y kultä etem t, für Wi Gazda rts ságcha tudfts o w máis n s yen i scha Kar, ften,
8. Előadás Speciális optimalizációs eljárások Genetikus algoritmusok OPTIMALIZÁLÁSI ELJÁRÁSOK Gradiens alapú módszerek Véletlent használó módszerek Kimerítő keresésen alapuló módszerek Direkt módszerek
A genetikus algoritmus, mint a részletes modell többszempontú és többérdekű "optimálásának" általános és robosztus módszere
A genetikus algoritmus, mint a részletes modell többszempontú és többérdekű "optimálásának" általános és robosztus módszere Kaposvári Egyetem, Informatika Tanszék I. Kaposvári Gazdaságtudományi Konferencia
Genetikus algoritmusok az L- rendszereken alapuló. Werner Ágnes
Genetikus algoritmusok az L- rendszereken alapuló növénymodellezésben Werner Ágnes Motiváció: Procedurális modellek a növénymodellezésben: sok tervezési munka a felhasználónak ismerni kell az eljárás részleteit
Képrekonstrukció 9. előadás
Képrekonstrukció 9. előadás Balázs Péter Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem hv-konvex összefüggő halmazok Mag-burok-szerű rekonstrukció: S. Brunetti, A. Del Lungo, F.
értékel függvény: rátermettségi függvény (tness function)
Genetikus algoritmusok globális optimalizálás sok lehetséges megoldás közül keressük a legjobbat értékel függvény: rátermettségi függvény (tness function) populáció kiválasztjuk a legrátermettebb egyedeket
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
HÁROM KÖR A HÁROMSZÖGBEN
Debreceni Egyetem Informatikai Kar HÁROM KÖR A HÁROMSZÖGBEN Konzulens: dr. Aszalós László egyetemi adjunktus Készítette: Király Péter programtervező matematikus szakos hallgató DEBRECEN, 008 Tartalomjegyzék
Intelligens technikák k a
Intelligens technikák k a döntéstámogatásban Genetikus algoritmusok Starkné Dr. Werner Ágnes Bevezetés A 60-as években merült fel először az a gondolat, hogy az evolúcióban megfigyelhető szelekciós folyamatok
Automatikus tesztgenerálás formális protokollspecifikáció alapján
Automatikus tesztgenerálás formális protokollspecifikáció alapján VINCZE GÁBOR Budapesti Mûszaki és Gazdaságtudományi Egyetem, Távközlési és Médiainformatikai Tanszék vincze@alpha.ttt.bme.hu Reviewed Kulcsszavak:
Képrekonstrukció 6. előadás
Képrekonstrukció 6. előadás Balázs Péter Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem Diszkrét tomográfia (DT) A CT-hez több száz vetület szükséges időigényes költséges károsíthatja
Hátterükben egyetlen gén áll, melynek általában számottevő a viselkedésre gyakorolt hatása, öröklési mintázata jellegzetes.
Múlt órán: Lehetséges tesztfeladatok: Kitől származik a variáció-szelekció paradigma, mely szerint az egyéni, javarészt öröklött különbségek között a társadalmi harc válogat? Fromm-Reichmann Mill Gallton
Bevezetés az informatikába
Bevezetés az informatikába 9. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Matematikus BSc - I. félév / 2008 / Budapest Dr.
Zenegenerálás, majdnem természetes zene. Bernád Kinga és Roth Róbert
Zenegenerálás, majdnem természetes zene Bernád Kinga és Roth Róbert Tartalom 1. Bevezető 2. Eddigi próbálkozások 3. Módszerek 4. Algoritmus bemutatása 5. Összefoglaló (C) Bernád Kinga, Roth Róbert 2 1.
Intelligens számítástechnikai modellek identifikációja evolúciós és gradiens alapú tanuló algoritmusokkal
Intelligens számítástechnikai modellek identifikációja evolúciós és gradiens alapú tanuló algoritmusokkal Ph.D. tézisfüzet Botzheim János okleveles mérnök-informatikus Témavezető: Dr. Kóczy T. László egyetemi
Mesterséges Intelligencia MI
Mesterséges Intelligencia MI Problémamegoldás kereséssel - lokális információval Pataki Béla Bolgár Bence BME I.E. 414, 463-26-79 pataki@mit.bme.hu, http://www.mit.bme.hu/general/staff/pataki Rugó tervezése
DOKTORI (PhD) ÉRTEKEZÉS BALOGH SÁNDOR KAPOSVÁRI EGYETEM GAZDASÁGTUDOMÁNYI KAR
DOKTORI (PhD) ÉRTEKEZÉS BALOGH SÁNDOR KAPOSVÁRI EGYETEM GAZDASÁGTUDOMÁNYI KAR 2009 KAPOSVÁRI EGYETEM GAZDASÁGTUDOMÁNYI KAR Informatika Tanszék A doktori iskola vezetője: PROF. DR. UDOVECZ GÁBOR az MTA
Evolúciós alapfogalmak, általános algoritmusok
MI2 előadás jegyzet Tartalom: - Evolúciós alapfogalmak, általános algoritmusok - Evolúciós stratégiák - Raj intelligencia, részecske-raj optimalizálás A jegyzetet Jelasity Márk 2008. 04. 08., 2008. 04.
Az evolúció folyamatos változások olyan sorozata, melynek során bizonyos populációk öröklődő jellegei nemzedékről nemzedékre változnak.
Evolúció Az evolúció folyamatos változások olyan sorozata, melynek során bizonyos populációk öröklődő jellegei nemzedékről nemzedékre változnak. Latin eredetű szó, jelentése: kibontakozás Időben egymást
Mesterséges intelligencia 3. laborgyakorlat
Mesterséges intelligencia 3. laborgyakorlat Kétszemélyes játékok - Minimax A következő típusú játékok megoldásával foglalkozunk: (a) kétszemélyes, (b) determinisztikus, (c) zéróösszegű, (d) teljes információjú.
Természetes szelekció és adaptáció
Természetes szelekció és adaptáció Amiről szó lesz öröklődő és variábilis fenotípus természetes szelekció adaptáció evolúció 2. Természetes szelekció Miért fontos a természetes szelekció (TSZ)? 1. C.R.
Számítógép és programozás 2
Számítógép és programozás 2 11. Előadás Halmazkeresések, dinamikus programozás http://digitus.itk.ppke.hu/~flugi/ A keresési feladat megoldása Legyen a lehetséges megoldások halmaza M ciklus { X legyen
HÁLÓZATSZERŰEN MŰKÖDŐ LOGISZTIKÁVAL INTEGRÁLT TERMELÉSÜTEMEZÉS MEGOLDÁSA GENETIKUS ALGORITMUS ALKALMAZÁSÁVAL. OLÁH Béla
HÁLÓZATSZERŰEN MŰKÖDŐ LOGISZTIKÁVAL INTEGRÁLT TERMELÉSÜTEMEZÉS MEGOLDÁSA GENETIKUS ALGORITMUS ALKALMAZÁSÁVAL OLÁH Béla A TERMELÉSÜTEMEZÉS MEGFOGALMAZÁSA Flow shop: adott n számú termék, melyeken m számú
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)
Adaptív dinamikus szegmentálás idősorok indexeléséhez
Adaptív dinamikus szegmentálás idősorok indexeléséhez IPM-08irAREAE kurzus cikkfeldolgozás Balassi Márton 1 Englert Péter 1 Tömösy Péter 1 1 Eötvös Loránd Tudományegyetem Informatikai Kar 2013. november
Evolúció. Dr. Szemethy László egyetemi docens Szent István Egyetem VadVilág Megőrzési Intézet
Evolúció Dr. Szemethy László egyetemi docens Szent István Egyetem VadVilág Megőrzési Intézet Mi az evolúció? Egy folyamat: az élőlények tulajdonságainak változása a környezethez való alkalmazkodásra Egy
Evolúció. Dr. Szemethy László egyetemi docens Szent István Egyetem VadVilág Megőrzési Intézet
Evolúció Dr. Szemethy László egyetemi docens Szent István Egyetem VadVilág Megőrzési Intézet Mi az evolúció? Egy folyamat: az élőlények tulajdonságainak változása a környezethez való alkalmazkodásra Egy
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...
Mesterséges Intelligencia alapjai
Mesterséges Intelligencia alapjai Evolúciós algoritmusok - neurális hálózatok Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék 2010 / Budapest
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
TARTALOMJEGYZÉK. TARTALOMJEGYZÉK...vii ELŐSZÓ... xiii BEVEZETÉS A lágy számításról A könyv célkitűzése és felépítése...
TARTALOMJEGYZÉK TARTALOMJEGYZÉK...vii ELŐSZÓ... xiii BEVEZETÉS...1 1. A lágy számításról...2 2. A könyv célkitűzése és felépítése...6 AZ ÖSSZETEVŐ LÁGY RENDSZEREK...9 I. BEVEZETÉS...10 3. Az összetevő
Adatszerkezetek és algoritmusok
2010. január 8. Bevezet El z órák anyagainak áttekintése Ismétlés Adatszerkezetek osztályozása Sor, Verem, Lengyelforma Statikus, tömbös reprezentáció Dinamikus, láncolt reprezentáció Láncolt lista Lassú
Populációgenetikai. alapok
Populációgenetikai alapok Populáció = egyedek egy adott csoportja Az egyedek eltérnek egymástól morfológiailag, de viselkedésüket tekintve is = genetikai különbségek Fenotípus = külső jellegek morfológia,
Osztott jáva programok automatikus tesztelése. Matkó Imre BBTE, Kolozsvár Informatika szak, IV. Év 2007 január
Osztott jáva programok automatikus tesztelése Matkó Imre BBTE, Kolozsvár Informatika szak, IV. Év 2007 január Osztott alkalmazások Automatikus tesztelés Tesztelés heurisztikus zaj keltés Tesztelés genetikus
Sodródás Evolúció neutrális elmélete
Sodródás Evolúció neutrális elmélete Egy kísérlet Drosophila Drosophila pseudoobscura 8 hím + 8 nőstény/tenyészet 107 darab tenyészet Minden tenyészet csak heterozigóta egyedekkel indul a neutrális szemszín
Algoritmusok és adatszerkezetek gyakorlat 07
Algoritmusok és adatszerkezetek gyakorlat 0 Keresőfák Fák Fa: összefüggő, körmentes gráf, melyre igaz, hogy: - (Általában) egy gyökér csúcsa van, melynek 0 vagy több részfája van - Pontosan egy út vezet
Közösség detektálás gráfokban
Közösség detektálás gráfokban Önszervező rendszerek Hegedűs István Célkitűzés: valamilyen objektumok halmaza felett minták, csoportok detektálása csakis az egyedek közötti kapcsolatok struktúrájának a
Intelligens Rendszerek Elmélete. Versengéses és önszervező tanulás neurális hálózatokban
Intelligens Rendszerek Elmélete : dr. Kutor László Versengéses és önszervező tanulás neurális hálózatokban http://mobil.nik.bmf.hu/tantargyak/ire.html Login név: ire jelszó: IRE07 IRE 9/1 Processzor Versengéses
Gépi tanulás. Neurális hálók, genetikus algoritmus. Közlekedési informatika MSc. Földes Dávid St. 405.
Gépi tanulás Neurális hálók, genetikus algoritmus Közlekedési informatika MSc Földes Dávid foldes.david@mail.bme.hu St. 405. Tartalom Mesterséges intelligencia - bevezetés Neurális hálózatok Evolúciós
Szakdolgozat. Miskolci Egyetem. A genetikus algoritmus alkalmazási lehetőségei. Készítette: Biró Szilárd 5. Programtervező informatikus
Szakdolgozat Miskolci Egyetem A genetikus algoritmus alkalmazási lehetőségei Készítette: Biró Szilárd 5. Programtervező informatikus Témavezető: Dr. Körei Attila Miskolc, 2013 Miskolci Egyetem Gépészmérnöki
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,
Szelekció. Szelekció. A szelekció típusai. Az allélgyakoriságok változása 3/4/2013
Szelekció Ok: több egyed születik, mint amennyi túlél és szaporodni képes a sikeresség mérése: fitnesz Szelekció Ok: több egyed születik, mint amennyi túlél és szaporodni képes a sikeresség mérése: fitnesz
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,
Új típusú döntési fa építés és annak alkalmazása többtényezős döntés területén
Új típusú döntési fa építés és annak alkalmazása többtényezős döntés területén Dombi József Szegedi Tudományegyetem Bevezetés - ID3 (Iterative Dichotomiser 3) Az ID algoritmusok egy elemhalmaz felhasználásával
1.1 Genetikus algoritmusok
1.1 Genetikus algoritmusok A genetikus algoritmus (genetic algorithm, GA) iránt mutatkozó érdeklődésnek sok oka van, de egy dolog biztosan fontos szerepet játszik: bizonyos mértékig kapcsolatban áll az
Heurisztikák algoritmusok ütemezési problémákra. 1. Állapottér és a megoldások kezelése
Heurisztikák algoritmusok ütemezési problémákra 1. Állapottér és a megoldások kezelése Számos nehéz ütemezési probléma esetén az exponenciális idejű optimális megoldást adó algoritmusok rendkívül nagy
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
Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával)
Adatszerkezetek I. 7. előadás (Horváth Gyula anyagai felhasználásával) Bináris fa A fa (bináris fa) rekurzív adatszerkezet: BinFa:= Fa := ÜresFa Rekord(Elem,BinFa,BinFa) ÜresFa Rekord(Elem,Fák) 2/37 Bináris
10. előadás Speciális többágú fák
10. előadás Adatszerkezetek és algoritmusok előadás 2018. április 17., és Debreceni Egyetem Informatikai Kar 10.1 A többágú fák kezelésére nincsenek általános elvek, implementációjuk elsősorban alkalmazásfüggő.
Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek
Programozás alapjai gyakorlat 4. gyakorlat Konstansok, tömbök, stringek Házi ellenőrzés (f0069) Valósítsd meg a linuxos seq parancs egy egyszerűbb változatát, ami beolvas két egész számot, majd a kettő
A sz.ot.ag. III. Magyar Számítógépes Nyelvészeti Konferencia december 8. Bíró Tamás, ELTE, Budapest / RUG, Groningen, NL 1/ 16
A sz.ot.ag Optimalitáselmélet szimulált hőkezeléssel Bíró Tamás Humanities Computing, CLCG University of Groningen, Hollandia valamint Eötvös Loránd Tudományegyetem, Budapest birot@let.rug.nl, birot@nytud.hu
Universität M Mis is k k olol ci c, F Eg a y kultä etem t, für Wi Gazda rts ságcha tudft o sw máis n s yen i scha Kar, ften,
9. Előadás 1. Genetikus algoritmusok közgazdasági alkalmazása 2. Ökológiai és evolúciós közgazdaságtan Universität Miskolc, Fakultät für Wirtschaftswissenschaften, Istitut für Wirtschaftstheorie Miskolci
Mintavételes szabályozás mikrovezérlő segítségével
Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés
Simon Károly Babes Bolyai Tudományegyetem ksimon@cs.ubbcluj.com
Evolúciósalgoritmusokalkalmazása azadatelemzésben SimonKároly Babes BolyaiTudományegyetem ksimon@cs.ubbcluj.com 1 Evolúciósszámítástechnikaimodellek Evolúciósszámítástechnika:biológiaiinspirációjúkeresésiés
Borgulya I. PTE KTK 1. Fuzzy-rendszerek. Fuzzy rendszerekről általában
Borgulya I. PTE KTK 1 Fuzzy-rendszerek Fuzzy rendszerekről általában Fuzzy-rendszerek Témák 1. Fuzzy rendszerekről általában 2. Fuzzy halmazelmélet Fuzzy halmazműveletek 3. Fuzzy logika Fuzzy logika műveletek
Gépi tanulás a gyakorlatban. Lineáris regresszió
Gépi tanulás a gyakorlatban Lineáris regresszió Lineáris Regresszió Legyen adott egy tanuló adatbázis: Rendelkezésünkre áll egy olyan előfeldolgozott adathalmaz, aminek sorai az egyes ingatlanokat írják
Keresések Gregorics Tibor Mesterséges intelligencia
Keresések ADAT := kezdeti érték while terminálási feltétel(adat) loop SELECT SZ FROM alkalmazható szabályok ADAT := SZ(ADAT) endloop KR vezérlési szintjei vezérlési stratégia általános modellfüggő heurisztikus
Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)
Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Függvények C program egymás mellé rendelt függvényekből áll. A függvény (alprogram) jó absztrakciós eszköz a programok
Kupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1]
Kupac adatszerkezet A bináris kupac egy majdnem teljes bináris fa, amely minden szintjén teljesen kitöltött kivéve a legalacsonyabb szintet, ahol balról jobbra haladva egy adott csúcsig vannak elemek.
Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)
Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.05. -1- Függvények C program egymás mellé rendelt függvényekből
Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek
Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás, rendezések 2015 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Algoritmusok és programozási tételek
Párhuzamos genetikus algoritmus
Párhuzamos genetikus algoritmus Szimuláció Készítette: Eperjesi Alfréd epaeaat.elte 2 1. Bevezetés A GRID rendszerek megjelenésével lehetővé vált a személyi számítógépek, a szuperszámítógépek, a számítógépes
Matematikai alapok és valószínőségszámítás. Valószínőségi eloszlások Binomiális eloszlás
Matematikai alapok és valószínőségszámítás Valószínőségi eloszlások Binomiális eloszlás Bevezetés A tudományos életben megfigyeléseket teszünk, kísérleteket végzünk. Ezek többféle különbözı eredményre
Többgénes jellegek. 1. Klasszikus (poligénes) mennyiségi jellegek. 2.Szinte minden jelleg több gén irányítása alatt áll
Többgénes jellegek Többgénes jellegek 1. 1. Klasszikus (poligénes) mennyiségi jellegek Multifaktoriális jellegek: több gén és a környezet által meghatározott jellegek 2.Szinte minden jelleg több gén irányítása
A Hardy-Weinberg egyensúly. 2. gyakorlat
A Hardy-Weinberg egyensúly 2. gyakorlat A Hardy-Weinberg egyensúly feltételei: nincs szelekció nincs migráció nagy populációméret (nincs sodródás) nincs mutáció pánmixis van allélgyakoriság azonos hímekben
A következő feladat célja az, hogy egyszerű módon konstruáljunk Poisson folyamatokat.
Poisson folyamatok, exponenciális eloszlások Azt mondjuk, hogy a ξ valószínűségi változó Poisson eloszlású λ, 0 < λ
Neumann János Számítógép-tudományi Társaság Programozás, robotprogramozás szakkör Három félév 3 * 8 foglalkozás
Neumann János Számítógép-tudományi Társaság Programozás, robotprogramozás szakkör Három félév 3 * 8 foglalkozás Első félév A modul időtartama: A modul célja: A modul tartalma: 8 foglalkozás, alkalmanként
Dr. Kalló Noémi. Termelés- és szolgáltatásmenedzsment. egyetemi adjunktus Menedzsment és Vállalatgazdaságtan Tanszék. Dr.
Termelés- és szolgáltatásmenedzsment egyetemi adjunktus Menedzsment és Vállalatgazdaságtan Tanszék Termelés- és szolgáltatásmenedzsment 13. Ismertesse a legfontosabb előrejelzési módszereket és azok gyakorlati
RSA algoritmus. P(M) = M e mod n. S(C) = C d mod n. A helyesség igazoláshoz szükséges számelméleti háttér. a φ(n) = 1 mod n, a (a 1,a 2,...
RSA algoritmus 1. Vegyünk véletlenszerűen két különböző nagy prímszámot, p-t és q-t. 2. Legyen n = pq. 3. Vegyünk egy olyan kis páratlan e számot, amely relatív prím φ(n) = (p 1)(q 1)-hez. 4. Keressünk
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 2007/2008 Az Előadások Témái Bevezető: mi a mesterséges intelligencia... Tudás reprezentáció stratégiák Szemantikus hálók / Keretrendszerek
Osztályozás, regresszió. Nagyméretű adathalmazok kezelése Tatai Márton
Osztályozás, regresszió Nagyméretű adathalmazok kezelése Tatai Márton Osztályozási algoritmusok Osztályozás Diszkrét értékkészletű, ismeretlen attribútumok értékének meghatározása ismert attribútumok értéke
B-fa. Felépítés, alapvető műveletek. Programozás II. előadás. Szénási Sándor.
B-fa Felépítés, alapvető műveletek előadás http://nik.uni-obuda.hu/prog2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar B-fa Felépítése Beszúrás művelete Törlés
Fák 2009.04.06. Témakörök. Fa definíciója. Rekurzív típusok, fa adatszerkezet Bináris keresőfa, bejárások Bináris keresőfa, módosítás B-fa
Fák szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Rekurzív típusok, fa adatszerkezet Bináris keresőfa, bejárások Bináris keresőfa, módosítás B-fa Témakörök 2 Fa (Tree): csomópontok
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
V. Kétszemélyes játékok
Teljes információjú, véges, zéró összegű kétszemélyes játékok V. Kétszemélyes játékok Két játékos lép felváltva adott szabályok szerint. Mindkét játékos ismeri a maga és az ellenfele összes választási
2. Visszalépéses stratégia
2. Visszalépéses stratégia A visszalépéses keres rendszer olyan KR, amely globális munkaterülete: út a startcsúcsból az aktuális csúcsba (ezen kívül a még ki nem próbált élek nyilvántartása) keresés szabályai:
Megkülönböztetett kiszolgáló routerek az
Megkülönböztetett kiszolgáló routerek az Interneten Megkülönböztetett kiszolgálás A kiszolgáló architektúrák minősége az Interneten: Integrált kiszolgálás (IntServ) Megkülönböztetett kiszolgálás (DiffServ)
Hidraulikus hálózatok robusztusságának növelése
Dr. Dulovics Dezső Junior Szimpózium 2018. Hidraulikus hálózatok robusztusságának növelése Előadó: Huzsvár Tamás MSc. Képzés, II. évfolyam Témavezető: Wéber Richárd, Dr. Hős Csaba www.hds.bme.hu Az előadás
Mesterséges Intelligencia MI
Mesterséges Intelligencia MI Valószínűségi hálók - következtetés Dobrowiecki Tadeusz Eredics Péter, és mások BME I.E. 437, 463-28-99 dobrowiecki@mit.bme.hu, http://www.mit.bme.hu/general/staff/tade Következtetés
HÁZI FELADAT PROGRAMOZÁS I. évf. Fizikus BSc. 2009/2010. I. félév
1. feladat (nehézsége:*****). Készíts C programot, mely a felhasználó által megadott függvényt integrálja (numerikusan). Gondosan tervezd meg az adatstruktúrát! Tervezz egy megfelelő bemeneti nyelvet.
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
ÓRARENDTERVEZÉS GENETIKUS ALGORITMUS SEGÍTSÉGÉVEL
Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Automatizálási és Alkalmazott Informatikai Tanszék Hideg Attila ÓRARENDTERVEZÉS GENETIKUS ALGORITMUS SEGÍTSÉGÉVEL KONZULENS
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
Algoritmuselmélet. 2-3 fák. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 8.
Algoritmuselmélet 2-3 fák Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 8. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet 8. előadás
Fuzzy-rendszerek. Fuzzy halmazm veletek. Fuzzy logika m veletek. Borgulya I. PTE KTK 2. 1.Fuzzy rendszerekr l általában
Fuzzy-rendszerek Fuzzy rendszerekrl általában Fuzzy-rendszerek Témák 1. Fuzzy rendszerekrl általában 2. Fuzzy halmazelmélet Fuzzy halmazmveletek 3. Fuzzy logika Fuzzy logika mveletek 4. Fuzzy közelít következtetés
Kétszemélyes játékok Gregorics Tibor Mesterséges intelligencia
Kétszemélyes játékok Kétszemélyes, teljes információjú, véges, determinisztikus,zéró összegű játékok Két játékos lép felváltva adott szabályok szerint, amíg a játszma véget nem ér. Mindkét játékos ismeri
Valószínűségi változók. Várható érték és szórás
Matematikai statisztika gyakorlat Valószínűségi változók. Várható érték és szórás Valószínűségi változók 2016. március 7-11. 1 / 13 Valószínűségi változók Legyen a (Ω, A, P) valószínűségi mező. Egy X :
Dobzhansky: In Biology nothing makes sense except in the light of Evolution.
Dobzhansky: In Biology nothing makes sense except in the light of Evolution. Az Evolúcióbiológia Története Molnár István im54@invitel.hu Mai témák 1. Mi az evolúció? 2. Hogyan alakult ki a mai evolúciós
Hatwágner Ferenc Miklós
Doktori értekezés Hatwágner Ferenc Miklós Széchenyi István Egyetem, Műszaki Tudományi Kar 2012 Hatwágner Ferenc Miklós Dinamikai rendszerek modellezése genetikus algoritmusok segítségével doktori értekezés
Optimalizáció és modularitás evolúciós hálókban
XX. reál- és humántudományi Erdélyi Tudományos Diákköri Konferencia (ETDK) Kolozsvár, 2017. május 18-21. Optimalizáció és modularitás evolúciós hálókban Szerző: Lénárt Levente Babeş-Bolyai Tudományegyetem,
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
Programozási módszertan. Mohó algoritmusok
PM-08 p. 1/17 Programozási módszertan Mohó algoritmusok Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu PM-08 p. 2/17 Bevezetés Dinamikus programozás