Dinamikus programozás párhuzamosítási lehetőségekkel

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

Download "Dinamikus programozás párhuzamosítási lehetőségekkel"

Átírás

1 8. tavasz Dinamikus programozás párhuzamosítási lehetőségekkel A. Grama, A. Gupta, G. Karypis és V. Kumar: Introduction to Parallel Computing, Addison Wesley, könyv, valamint Michael Goodrich (Univ. California) anyaga alapján Vázlat A dinamikus programozás (DP) áttekintése Soros, egyszerű-argumentumú (Monadic) DP Nem soros, egyszerű-argumentumú DP Soros, összetett-argumentumú (Polyadic) DP Nem soros, összetett-argumentumú DP Dinamikus programozás Dinamikus programozás

2 8. tavasz A dinamikus programozás áttekintése A dinamikus programozás (DP) széles körben használt optimalizációs problémák megoldására: ütemezés, string-szerkesztés, csomagolási probléma, stb. A problémákat részproblémákra bontjuk és ezek megoldásait kombináljuk, hogy a nagyobb probléma megoldását megtaláljuk. Az oszd meg és uralkodj típusú megoldási módszerrel szemben, itt a részproblémák között kapcsolatok, átfedések állhatnak fent (overlapping subproblems). Az elnevezés matematikai optimailzálásra utal. Dinamikus programozás A dinamikus programozás áttekintése A problémamegoldás menete:. Részproblémákra osztás.. A részproblémák optimális megoldása rekurzívan.. Az optimális megoldások felhasználása az eredeti feladat optimális megoldásának megtalálásához. A dinamikus programozás (DP) során a részmegoldások eredményeit gyakran táblázatokban tároljuk, hogy azokat szemben a rekurzív megközelítésekkel ne kelljen újra és újra kiszámolni (memoization). Dinamikus programozás Dinamikus programozás

3 8. tavasz Dinamikus programozás: példa Tekintsük a hurokmentes irányított gráfokban két csúcs (csomópont) között a legrövidebb út problémáját. Az i és j csomópontokat összekötő él költsége c(i, j). A gráf n csomópontot tartalmaz:,,, n-, és az i csomópontból a j csomópontba akkor vezethet él, ha i < j. A csomópont a forrás és az n- csomópont a cél. Jelölje f(x) a legrövidebb utat a csomóponttól x-ig. Dinamikus programozás Dinamikus programozás: példa Irányított gráf, melyben a legrövidebb utat számolhatjuk a és csomópontok között. Dinamikus programozás 6 Dinamikus programozás

4 8. tavasz Dinamikus programozás A DP formátumú probléma megoldását tipikusan a lehetséges megoldások minimumaként vagy maximumaként fejezzük ki. Ha r az x, x,, x l részproblémák kompozíciójából meghatározott megoldás költségét jelenti, akkor r a következő alakban írható Itt g az un. kompozíciós függvény. Ha minden probléma optimális megoldása a részfeladatok optimális megoldásának optimális kompozíciójaként kerül meghatározásra és a minimum (vagy maximum) érték kiválasztásra kerül, akkor DP formátumú megoldásról beszélünk. (Metamódszer, nem konkrét algoritmus.) Dinamikus programozás 7 Dinamikus programozás: példa f(x) f(x) r=g(f(x),f(x)) f(x) f(x8)=min{r,r,r} f(x) f(x) r=g(f(x),f(x)) f(x6) f(x7) r=g(f(x),f(x6),f(x7)) Composition of solutions into a term Minimization of terms Az f(x 8 ) megoldás meghatározásának kompozíciója és számítása részfeladatok megoldásából. Dinamikus programozás 8 Dinamikus programozás

5 8. tavasz Dinamikus programozás A rekurzív DP egyenletet funkcionális egyenletnek, vagy optimalizációs egyenletnek is nevezzük. A legrövidebb út problémánál a kompozíciós függvény f(j) + c(j, x). Ez egyszerű rekurzív tagként tartalmazza (f(j)). Az ilyen DP megfogalmazású feladatot monadic típusúnak (egyszerű-argumentumúnak) nevezzük. Ha a rekurzív kompozíciós függvény több tagú, akkor a DP feladat megszövegezése polyadic (összetettargumentumú) típusú. Dinamikus programozás 9 Dinamikus programozás A részproblémák közötti kapcsolatokat gráf segítségével fejezhetjük ki. Ha a gráf szintekre bontható és a probléma megoldása egy bizonyos szinten csak az előző szinten megjelenő problémamegoldástól függ, ekkor a megfogalmazást sorosnak nevezzük, egyébként pedig nem sorosnak. A két kritérium alapján a DP feladat megfogalmazásokat osztályozhatjuk: serial-monadic, serial-polyadic, nonserial-monadic, non-serial-polyadic, vagy egyéb. Az osztályozás azért fontos, mert meghatározza konkurenciát és a függőségeket, amely a párhuzamos megoldásokhoz vezethet. Dinamikus programozás Dinamikus programozás

6 8. tavasz Soros, egyszerű-argumentumú DP Az egész osztályra vonatkozó általános megfogalmazást, mintát nehéz megadni. Két reprezentatív feladat kerül bemutatásra: A legrövidebb út probléma többszintű gráfban (shortest-path problem for a multistage graph), / típusú hátizsák probléma (/ knapsack problem). Célunk a feladatok párhuzamos megfogalmazása és ezek alapján az osztályon belüli közös elvek lefektetése. Dinamikus programozás Legrövidebb út probléma A legrövidebb út problémának speciális osztálya, amikor a gráf súlyozott és többszintű. Jelen esetben a szintek száma r +. Minden szinten n csomópont van és minden csomópont az i. szintről össze van kötve az i + szint minden egyes csomópontjával. A. szint és az r. csak egy csomópontot tartalmaz, ezeket forrás (S) és cél (R) csomópontoknak nevezzük. Célunk legrövidebb utat találni S-től R-ig. Dinamikus programozás Dinamikus programozás 6

7 8. tavasz Legrövidebb út probléma v v v c c vr- cs v v cr-r cs S R csn- cr-n-r vn- cn-n- cn-n- vn- vn- vr-n- Soros, egyszerű-argumentumú (monadic) DP megfogalmazása a legrövidebb út problémának olyan gráfban, ahol a csomópontokat szintekbe szervezhetjük. Dinamikus programozás Legrövidebb út probléma A gráf l szintjének i. csomópontja:v il és a v il csomópontot v j l+ csomóponttal összekötött él súlya c i l,j. Bármely v il csomópont és az cél csomópont R költsége: C il. Ha n csomópont van egy szinten (l), akkor a költségek (legrövidebb utak R-ig) egy vektorban foglalhatók össze [C l, C l,, C n l - ] T. Ez a vektor C l. Megjegyzés: C = [C ]. Az l szint i eleme a céltól C il = min {(c i l,j + C j l+ ) j az l + szint egy csomópontjának indexe} Dinamikus programozás Dinamikus programozás 7

8 8. tavasz Legrövidebb út probléma Mivel a v j r- csomópontokat csak egy-egy él köti össze a cél, R csomóponttal az r szinten, a C j r- költsége: c j r, - R. Ezért: A feladat soros és egyszerű-argumentumú (monadic) típusú. Dinamikus programozás Legrövidebb út probléma Az l színt valamely csomópontjától a célcsomópont, R elérésének költsége, ahol ( < l < r ): Dinamikus programozás 6 Dinamikus programozás 8

9 8. tavasz Legrövidebb út probléma A probléma megoldását egy módosított mátrix-vektor szorzat formájában fejezhetjük ki Helyettesítsük az összeadás operációt minimalizálással és a szorzás műveletet összeadással, az előző egyenletek a következő alakúak lesznek: ahol C l és C l+ n x méretű vektorok a cél csomópont elérésének költségeit reprezentálják az l és l + színt minden egyes csomópontjától mérve. Dinamikus programozás 7 Legrövidebb út probléma Az M l,l+ mátrix n x n méretű, és minden (i, j) eleme az l szint i csomópontjának az l + szint j csomópontjával történő összekötés költségét tartalmazza: A legrövidebb út problémát r mátrix-vektor szorzatok sorozataként definiáltuk: C r-,c r-k- (k =,,, r-), C. Dinamikus programozás 8 Dinamikus programozás 9

10 8. tavasz Párhuzamos legrövidebb út probléma Az algoritmus úgy párhuzamosítható, mint bármelyik mátrix-vektor szorzást megvalósító algoritmus. n processzor elem számolhat minden C l vektort. Sok gyakorlati esetben az M mátrix elemei ritkák lehetnek. Ilyenkor ritkamátrixokhoz kapcsolódó módszert alkalmazzunk. Dinamikus programozás 9 / hátizsák probléma / knapsack problem A thief is robbing the King s treasury, but he can only carry a load weighing at most W Adott: S halmaz n elemmel és egy súlyhatár c, minden i elemnek p i pozitív egész értéke van (profit) és pozitív egész súlya Cél: úgy válasszuk ki az elemeket, hogy az összérték maximális legyen, de az összsúly kisebb legyen, mint c. T jelölje azokat az elemeket, amit kiválasztunk, T S Cél: összérték maximalizálása i T Feltétel: a súlyhatáron belül kell maradni p i i T C Dinamikus programozás Dinamikus programozás

11 8. tavasz / hátizsák probléma: példa Adott: n elemű S halmaz, minden elem p i pozitív értékű és pozitív súlyú Cél: válasszunk ki elemeket, hogy az összérték maximális legyen, de az összsúly ne haladja meg c-t. Összesen n eset lehet! Elemek: Súly: Érték: N N N 6 N N $ $ $6 $ $8 knapsack 9 N Megoldás: ( N) ( N) ( N) Összérték: 8+6+ = $6 Dinamikus programozás / hátizsák probléma, első próbálkozás S i : A halmaz elemeinek azonosítója -től i-ig (i < n). Definiálja F[i] = a legjobb kiválasztást S i -ből. Legyen pl. S = {(,),(,),(8,),(,),(,9)} érték-súly párok, c = A legjobb S, ha csak négyet veszünk ki: Összsúly:, érték: A legjobb S : az. benne van, de a. nem Rossz hír: S nem része az S optimális megoldásnak Dinamikus programozás Dinamikus programozás

12 8. tavasz / hátizsák probléma, más megközelítés S i : Az elemek halmaza -től i-ig, i < n. Definiálja F[i, x] = azs i halmazból a legjobb kiválasztást, ahol a súly legföljebb x további paraméter Ez optimális részprobléma megoldáshoz vezet. Az S i legjobb kiválasztás legföljebb x súllyal, két esetet jelenthet: -Ha > x, akkor az i. elemet nem lehet hozzávenni, mert súlya nagyobb, mint az aktuális határ - Egyébként: ha a legjobb S i- részhalmaz súlya x - és ehhez vagy jön i, vagy nem eredményez nagyobb értéket F[ i, x] if wi > x F[ i, x] = max{ F[ i, x], F[ i, x w ] + p } i i Dinamikus programozás / hátizsák algoritmus F[i, x] rekurzív formula: F[ i, x] F[ i, x] = max{ F[ i, x], F[ i, x wi ] + pi} if w i > x F[i, x] = az -től i-ig tartó elemekből a legjobb kiválasztás, ahol az összsúly legfeljebb x Alapeset: i =, nem került elem kiválasztásra. Összérték. A feladat megoldása: a legnagyobb érték az n. sorban, utolsó (c) oszlopban Futási idő: O(nc). Nem n ideig tart. Dinamikus programozás Dinamikus programozás

13 8. tavasz / hátizsák algoritmus Algorithm -Knapsack(S, c): Input: S halmaz elemei p i értékkel, súllyal; valamint a max. súly c Output: a legjobb részhalmaz értéke (F[n, c]), hogy teljesül: összsúly c for x to c do F[, x] for i to n do F[i, ] for i to n do for x to c do if <= x F[i, x] max(f[i -, x], F[i -, x - ] +p i ) F[i, x] F[i -, x] Mivel F[i, x] csak F[i -,*] értékeitől függ, elég lehet vektorokat használni Dinamikus programozás / hátizsák példa n = az adatok száma c = kapacitás (maximális összsúly) Elemek: i súly ( ), profit (p i ) 6 Dinamikus programozás 6 Dinamikus programozás

14 8. tavasz Példa i \ x for x to c do F[, x] Dinamikus programozás 7 Példa i \ x for i to n do F[i, ] Dinamikus programozás 8 Dinamikus programozás

15 8. tavasz Példa ; p i : (; ) : (; ) : (; ) : (; 6) i \ x if <= x F[i, x] max(f[i -, x], F[i -, x - ] +p i ) F[i, x] F[i -, x] i = p i = = x = x - = - Dinamikus programozás 9 Példa ; p i : (; ) : (; ) : (; ) : (; 6) i \ x if <= x F[i, x] max(f[i -, x], F[i -, x - ] +p i ) F[i, x] F[i -, x] i = p i = = x = x - = Dinamikus programozás Dinamikus programozás

16 8. tavasz Példa ; p i : (; ) : (; ) : (; ) : (; 6) i \ x if <= x F[i, x] max(f[i -, x], F[i -, x - ] +p i ) F[i, x] F[i -, x] i = p i = = x = x - = Dinamikus programozás Példa ; p i : (; ) : (; ) : (; ) : (; 6) i \ x if <= x F[i, x] max(f[i -, x], F[i -, x - ] +p i ) F[i, x] F[i -, x] i = p i = = x = x - = Dinamikus programozás Dinamikus programozás 6

17 8. tavasz Példa ; p i : (; ) : (; ) : (; ) : (; 6) i \ x if <= x F[i, x] max(f[i -, x], F[i -, x - ] +p i ) F[i, x] F[i -, x] i = p i = = x = x - = Dinamikus programozás Példa ; p i : (; ) : (; ) : (; ) : (; 6) i \ x if <= x F[i, x] max(f[i -, x], F[i -, x - ] +p i ) F[i, x] F[i -, x] i = p i = = x = x - = - Dinamikus programozás Dinamikus programozás 7

18 8. tavasz Példa ; p i : (; ) : (; ) : (; ) : (; 6) i \ x if <= x F[i, x] max(f[i -, x], F[i -, x - ] +p i ) F[i, x] F[i -, x] i = p i = = x = x - = - Dinamikus programozás Példa ; p i : (; ) : (; ) : (; ) : (; 6) i \ x if <= x F[i, x] max(f[i -, x], F[i -, x - ] +p i ) F[i, x] F[i -, x] i = p i = = x = x - = Dinamikus programozás 6 Dinamikus programozás 8

19 8. tavasz Példa ; p i : (; ) : (; ) : (; ) : (; 6) i \ x if <= x F[i, x] max(f[i -, x], F[i -, x - ] +p i ) F[i, x] F[i -, x] i = p i = = x = x - = Dinamikus programozás 7 Példa ; p i : (; ) : (; ) : (; ) : (; 6) i \ x 7 if <= x F[i, x] max(f[i -, x], F[i -, x - ] +p i ) F[i, x] F[i -, x] i = p i = = x = x - = Dinamikus programozás 8 Dinamikus programozás 9

20 8. tavasz Példa ; p i : (; ) : (; ) : (; ) : (; 6) i \ x 7 if <= x F[i, x] max(f[i -, x], F[i -, x - ] +p i ) F[i, x] F[i -, x] i = p i = = x =.. x - = -..- Dinamikus programozás 9 Példa ; p i : (; ) : (; ) : (; ) : (; 6) i \ x 7 if <= x F[i, x] max(f[i -, x], F[i -, x - ] +p i ) F[i, x] F[i -, x] i = p i = = x = x - = Dinamikus programozás Dinamikus programozás

21 8. tavasz Példa ; p i : (; ) : (; ) : (; ) : (; 6) i \ x 7 7 if <= x F[i, x] max(f[i -, x], F[i -, x - ] +p i ) F[i, x] F[i -, x] i = p i = = x = x - = Dinamikus programozás Példa ; p i : (; ) : (; ) : (; ) : (; 6) i \ x 7 7 if <= x F[i, x] max(f[i -, x], F[i -, x - ] +p i ) F[i, x] F[i -, x] i = p i = 6 = x =.. x - = -..- Dinamikus programozás Dinamikus programozás

22 8. tavasz Példa ; p i : (; ) : (; ) : (; ) : (; 6) i \ x if <= x F[i, x] max(f[i -, x], F[i -, x - ] +p i ) F[i, x] F[i -, x] i = p i = 6 = x = x - = Dinamikus programozás Példa Az algoritmus a maximális összsúlyt vette figyelembe úgy, hogy a zsákba tehető F[n, c] érték a lehető legnagyobb legyen. Az elemek kiolvasásához egy visszafele haladó algoritmus szükséges, amely a táblázatot használja: i n, x c while (i, x > ) if F[i, x] <> F[i -, x] Jelöljük meg az i. elemet, hogy a zsákban van i = i -,x = x i = i - Dinamikus programozás Dinamikus programozás

23 8. tavasz / hátizsák probléma (könyv szerint) Adott a c kapacitású hátizsák és n objektumból álló halmaz,,,n. Minden objektumot súly és p i profit jellemez. Legyen v = [v, v,, v n ] egy megoldás vektor, amelyben v i = ha az i. objektum nincs a hátizsákban v i = ha a hátizsákban van. A cél az objektumok olyan részhalmazát megtalálni, amit a hátizsákba helyezhetünk, azaz (az összsúly nem nagyobb, mint a kapacitás) és a profit maximalizált. Dinamikus programozás / hátizsák probléma Legyen a maximális profit F[i, x] az x kapacitású hátizsákhoz kapcsolódóan ha a következő objektumrészhalmazt használjuk {,,,i}. A DP megfogalmazása: Dinamikus programozás 6 Dinamikus programozás

24 8. tavasz / hátizsák probléma Konstruáljuk meg az n x c méretű F táblázatot soronként haladva. Egy elem kitöltése két elem ismeretét igényli az előző sorból: egy ugyanabból az oszlopból és egy olyan oszloptávolságnyira, mint amilyen súllyal az objektum a sorhoz tartozik. Minden elem kiszámolása konstans idejű; a soros futási komplexitás Θ(nc). A megfogalmazás soros, egyszerű-argumentumú. Dinamikus programozás 7 / hátizsák probléma Table F n i Fij Weights j-wi j c- c Processors P Pj-wi- Pj- Pc- Pc- A / hátizsák probléma F táblájának számítása. Az F[i,j] meghatározásához szükséges kommunikáció processzorelemekkel, amelyek tartalmazzák F[i-,j] és F[i-,j- ] elemeket. Dinamikus programozás 8 Dinamikus programozás

25 8. tavasz / hátizsák probléma Ha c processzorelemet használunk (CREW PRAM ideális, közös memóriás modellen), párhuzamos algoritmust készíthetünk az oszlopok processzorokhoz particionálásával és O(n) futási idővel. Ha osztott memóriás modellen minden processzorelem lokálisan tárolja az objektumok súlyait és profitjait a j. iteráció során, F[j, r] számításához a P r- processzoron lokálisan rendelkezésre áll F[j-, r], de F[j-, r-w j ]-t másik processzorelemtől kell megkapni. n iteráció ekkor O(n log c) ideig tart Dinamikus programozás 9 Nem soros, egyszerű-argumentumú DP megfogalmazás: Longest-Common- Subsequence (LCS) Adott egy A = <a, a,, a n > sorozat; az A részsorozatát kapjuk, ha valahány elemet törlünk belőle. Cél: Adott két részsorozat: A = <a, a,, a n > és B = <b, b,, b m >, keressük meg a leghosszabb sorozatot, ami részsorozata egyaránt A-nak és B-nek. Példa: ha A = <c,a,d,b,r,z> és B = <a,s,b,z>, a leghosszabb közös részsorozata A-nak és B-nek <a,b,z>. Dinamikus programozás Dinamikus programozás

26 8. tavasz Leghosszabb közös részsorozat Jelölje F[i, j] az A első i elemének és B első j elemének leghosszabb közös részsorozat hosszát. Az LCS célja, hogy megtaláljuk F[n, m] értékét (és a sorozat elemeit). Ekkor igaz, hogy: Dinamikus programozás Leghosszabb közös részsorozat Az algoritmus kiszámolja a két-dimenziós F táblát soroszlop sorrendben. Az átlós csomópontok mindegyike két részproblémához kapcsolódik, az előző szinthez és az azt megelőző szinthez. Ezért ez a DP megfogalmazás nem soros, egyszerű-argumentumú típusú. Dinamikus programozás Dinamikus programozás 6

27 8. tavasz Leghosszabb közös részsorozat m n p p pn- (a) (b) (a) Az LCS táblázat számítási elemei. A számítás a jelzett átlós irányban halad. (b) A táblázat elemeinek leképzése a processzor elemekre. Dinamikus programozás Leghosszabb közös részsorozat Consider the LCS of two amino-acid sequences H E A G A W G H E E and P A W H E A E. For the interested reader, the names of the corresponding amino-acids are A: Alanine, E: Glutamic acid, G: Glycine, H: Histidine, P: Proline, and W: Tryptophan. H E A G A W G H E E P A W H E A E Az LCS: A W H E E. Dinamikus programozás Dinamikus programozás 7

28 8. tavasz Parallel LCS A táblázat elemeinek kiszámolása átlós irányban történik a bal felső saroktól a a jobb alsó irányban. Ha n processzort használunk (CREW PRAM), minden elem kiszámolása átlósan konstans ideig tart. A két n hosszú szekvenciával az algoritmus n- átlós lépést tesz összesen. Dinamikus programozás Parallel LCS Az algoritmus processzorok lineáris tömbjére is adaptálható: a P i processzor elem az F tábla (i+). oszlopának meghatározásáért felelős. Az F[i,j] kiszámolásához a P j- processzorelemnek szüksége van F[i-,j-] vagy F[i,j-] értékre a tőle balra lévő processzor elemtől, amely kommunikációt jelent. A számítás konstans idejű (t c ) minden elemre. A teljes parallel idő: A hatékonyság felső korlátja.! Dinamikus programozás 6 Dinamikus programozás 8

29 8. tavasz Soros, összetett-argumentumú DP: Floyd legrövidebb út algoritmusa, minden párra Adott egy súlyozott gráf G(V,E), Floyd algoritmusa a csúcspárok közötti d i,j költségeket határozza meg, hogy a legrövidebb utat célozza meg. Legyen d i k,j a minimum költségű út az i csomóponttól a j csomópontig, és csak a következő csúcsokat használja v,v,,v k-. Így: Csak a,, k- csúcsokat használja i A,, k- csúcsokat használja (nem megy át k-n) k j Csak a,, k- csúcsokat használja Dinamikus programozás 7 Nem soros összetett-argumentumú DP megfogalmazás: Optimális mátrix zárójelezési probléma Amikor mátrixok sorozatát kell összeszorozni, akkor a szorzás sorrendje alapvetően meghatározza a műveletek (szorzások) számát. Legyen C[i,j] (egy résznél N[i,j] a jelölés!) az A i, A j mátrixok optimális szorzásának költsége. A láncszorzást két kisebb lánc szorzására lehet bontani, A i,a i+,,a k és A k+,,a j. Az A i,a i+,,a k eredménye d i x d k+ méretű mátrix, az A k+,,a j lánc eredménye d k+ x d j+ méretű mátrix. A két mátrix összeszorzásának költsége (a szorzások száma) d i d k+ d j+. Dinamikus programozás 8 Dinamikus programozás 9

30 8. tavasz Mátrixok láncszorzása Emlékeztető: Mátrix-szorzás C = AB A mérete d e, B mérete e f C[ i, j] = e k = A[ i, k] B[ k, j] e B f j O(def )idő e d A i C i,j d f Dinamikus programozás 9 Mátrixok láncszorzása Mátrixok láncszorzása: Számítandó A = A A A n- A i mérete d i d i+ Feladat: hogyan zárójelezzük? Példa B: C: 7 D: 7 (BC)D = szorzás B(CD) + 7 = szorzás Dinamikus programozás 6 Dinamikus programozás

31 8. tavasz Felsorolásos megközelítés Mátrixok láncszorzása algoritmus: Próbáljuk minden lehetséges módon zárójelezni A=A A A n- Számoljuk ki minden esetre a szorzások számát A legjobbat vegyük Futási idő: A zárójelezések száma = az n csomópontú bináris fák számával azonos Exponenciálisan nő Gyakorlatban nem megvalósítható Dinamikus programozás 6 Egy mohó algoritmus Ötlet: a legkevesebb műveletet használó szorzatokat válasszuk ki elsőként. Példa: A: B: 9 C: 9 D: 99 Ötlet szerint: A((BC)D) A legjobb (AB)(CD) =8789 szorzás =899 szorzás Dinamikus programozás 6 Dinamikus programozás

32 8. tavasz Másik mohó algoritmus Ötlet: a legtöbb műveletet használó szorzatokat válasszuk ki elsőként. Példa: A: B: C: D: Ötlet szerint (AB)(CD) Legjobb A((BC)D) ++ = szorzás ++ = szorzás Dinamikus programozás 6 Egy rekurzív megközelítés Definiáljunk részproblémákat: Keressük meg az A i A i+ A j legjobb zárójelezését. Legyen N i,j = a műveletek száma ennél a részfeladatnál. Az egész feladatra optimális megoldás N,n-. A részfeladat optimalizálás: Az optimális megoldás optimális részproblémákként lehet definiálni Kell, hogy legyen néhány legvégül futó szorzás (a kifejezésfa gyökere) az optimális megoldásnál. Mondjuk a végső szorzás az i indexnél van: (A A i )(A i+ A n- ). Ekkor az optimális megoldás N,n- két optimális részfeladat megoldása: N,i és N i+,n-, valamint az utolsó szorzás költsége. Ha a globális optimumnak nem ezek az optimális részproblémái, akkor tudunk definiálni még jobb optimális megoldást. Dinamikus programozás 6 Dinamikus programozás

33 8. tavasz Karakterisztikus egyenlet A globális optimális megoldást optimális részproblémákként kell definiálni, attól függően, hogy hol van az utolsó szorzás. Tételezzük fel az összes lehetséges helyet a végső szorzatra: Az A i mérete d i d i+. Így a karakterisztikus egyenlet N i,j -re a következő: N i, j = j+ i k< j min{ Ni, k + Nk+, j + didk+ d } Ezek a részfeladatok nem függetlenek, hanem átfedésben vannak egymással. Dinamikus programozás 6 Dinamikus programozási algoritmus Mivel a részfeladatok átfedik egymást, nem használunk rekurziót. Helyette bottomup módon építkezünk. N i,i -k meghatározása egyszerű, ezzel kezdünk. Ezután,, részfeladat. Futási idő: O(n ) Algorithm matrixchain(s): Input: a szorzandó mátrixok S sorozata Output: az S optimális zárójelezésének a száma for i to n- do N i,i for b to n- do for i to n-b- do j i+b N i,j + for k i to j- do N i,j min{n i,j, N i,k +N k+,j +d i d k+ d j+ } Dinamikus programozás 66 Dinamikus programozás

34 8. tavasz Dinamikus programozás A bottom-up konstrukció átlósan tölti ki az N tömböt. N i,j értékeket kap az előző i. sor és j. oszlop elemeiből. A tábla elemeinek kitöltése O(n) idejű. Teljes futási idő: O(n ) A zárójelezést úgy kaphatjuk meg, ha eltároljuk k -t N minden elemére. N i, j = { Ni, k + Nk+, j + didk+ d j+ i k< j N j n- i n- min } válasz Dinamikus programozás 67 Láncszorzás algoritmus Algorithm matrixchain(s): Input: a szorzandó mátrixok S sorozata Output: az S optimális zárójelezésének száma for i to n- do N i,i for b to n- do //b a műveletek száma for i to n-b- do j i+b N i,j +infinity for k i to j- do sum = N i,k +N k+,j +d i d k+ d j+ if (sum < N i,j ) then N i,j sum O i,j k return N,n- Példa: ABCD A: B: C: D: N A AB A(BC) (A(BC))D B BC (BC)D Dinamikus programozás 68 C CD D Dinamikus programozás

35 8. tavasz A műveletek visszanyerése Példa: ABCD A: B: C: D: N A AB A(BC) (A(BC))D B BC (BC)D C CD D // return expression for multiplying // matrix chain A i through A j exp(i,j) if (i=j) then // base case, matrix return A i k = O[i,j] // see red values on left S = exp(i,k) // recursive calls S = exp(k+,j) return ( S S ) Dinamikus programozás 69 Optimal Matrix-Parenthesization Problem We have: Dinamikus programozás 7 Dinamikus programozás

36 8. tavasz Optimális mátrix láncszorzás C[,] C[,] C[,] C[,] C[,] C[,] C[,] C[,] C[,] C[,] Nem soros, összetett-argumentumú DP megfogalmazás mátrixok láncszorzásának optimális meghatározására. A négyzetek a mátrixok láncszorzatának optimális költségét jelentik. A körök lehetséges zárójelezést. C[i, j] jelölés azonos a korábbi N i,j -vel Dinamikus programozás 7 Optimális mátrix láncszorzás P P P P P P P6 P7 (,) (,) (,) (,) (,) (,6) (,7) (,8) (,) (,) (,) (,) (,6) (,7) (,8) Diagonal 7 (,) (,) (,) (,6) (,7) (,8) Diagonal 6 (,) (,) (,6) (,7) (,8) (,) (,6) (,7) (,8) (6,6) (6,7) (6,8) (7,7) (7,8) Diagonal (8,8) Diagonal Diagonal Átlós számítási sorrend Dinamikus programozás 7 Dinamikus programozás 6

37 8. tavasz Párhuzamosítási lehetőség Tételezzünk fel egy gyűrűs logikai processzor topológiát. Az l lépésben minden processzor elem egyetlen elemet számol ki, amely az l. átlóhoz tartozik. A C tábla kiszámítása során, minden processzor elküldi broadcasting módon az általa kiszámolt elemeket az összes többi processzornak. A következő érték lokálisan számítható. Dinamikus programozás 7 Az általános dinamikus programozási technika Általában olyan feladatoknál alkalmazzuk, amelyek első ránézésre rengeteg időt vesznek igénybe. Részei: Egyszerű részproblémák: a részproblémákat néhány változó függvényeként kell definiálni. Részprobléma optimalitás: a globális optimum a részproblémák optimumaként definiálható. Átfedő, kapcsolódó részproblémák: a részfeladatok nem függetlenek, hanem átfedőek (ezért bottom-up konstrukcióban kell dolgozni). Dinamikus programozás 7 Dinamikus programozás 7

38 8. tavasz Parallel dinamikus programozási algoritmusok A számítási menetet gráfként reprezentálva, háromféle párhuzamosítási lehetőséget azonosíthatunk: csomópontokon belüli párhuzamosság; egy szinten a csomópontok közötti párhuzamosítás; és futószalagosított csomópontok (pipelining) eltérő szintű csomópontok között. AZ első kettő soros megfogalmazású, a harmadik nem soros DP. Az adatok helyzete (hová rendeljük) a teljesítmény szempontjából kritikus. Dinamikus programozás 7 Dinamikus programozás 8

Partíció probléma rekurzíómemorizálással

Partíció probléma rekurzíómemorizálással Partíció probléma rekurzíómemorizálással A partíciószám rekurzív algoritmusa Ω(2 n ) műveletet végez, pedig a megoldandó részfeladatatok száma sokkal kisebb O(n 2 ). A probléma, hogy bizonyos már megoldott

Részletesebben

Programozási módszertan. Mohó algoritmusok

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

Részletesebben

Fibonacci számok. Dinamikus programozással

Fibonacci számok. Dinamikus programozással Fibonacci számok Fibonacci 1202-ben vetette fel a kérdést: hány nyúlpár születik n év múlva, ha feltételezzük, hogy az első hónapban csak egyetlen újszülött nyúl-pár van; minden nyúlpár, amikor szaporodik

Részletesebben

Programozási módszertan. Dinamikus programozás: szerelőszalag ütemezése Mátrixok véges sorozatainak szorzása

Programozási módszertan. Dinamikus programozás: szerelőszalag ütemezése Mátrixok véges sorozatainak szorzása PM-06 p. 1/28 Programozási módszertan Dinamikus programozás: szerelőszalag ütemezése Mátrixok véges sorozatainak szorzása Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu

Részletesebben

Dinamikus programozás vagy Oszd meg, és uralkodj!

Dinamikus programozás vagy Oszd meg, és uralkodj! Dinamikus programozás Oszd meg, és uralkodj! Mohó stratégia Melyiket válasszuk? Dinamikus programozás vagy Oszd meg, és uralkodj! Háromszögfeladat rekurzívan: c nj := a nj ha 1 j n c ij := a ij + max{c

Részletesebben

Kereső algoritmusok a diszkrét optimalizálás problémájához

Kereső algoritmusok a diszkrét optimalizálás problémájához Kereső algoritmusok a diszkrét optimalizálás problémájához A. Grama, A. Gupta, G. Karypis és V. Kumar: Introduction to Parallel Computing, Addison Wesley, 2003. könyv anyaga alapján A kereső eljárások

Részletesebben

Kereső algoritmusok a diszkrét optimalizálás problémájához

Kereső algoritmusok a diszkrét optimalizálás problémájához Kereső algoritmusok a diszkrét optimalizálás problémájához A. Grama, A. Gupta, G. Karypis és V. Kumar: Introduction to Parallel Computing, Addison Wesley, 2003. könyv anyaga alapján A kereső eljárások

Részletesebben

Programozási módszertan. Dinamikus programozás: A leghosszabb közös részsorozat

Programozási módszertan. Dinamikus programozás: A leghosszabb közös részsorozat PM-07 p. 1/13 Programozási módszertan Dinamikus programozás: A leghosszabb közös részsorozat Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu PM-07

Részletesebben

Optimalizációs stratégiák 1.

Optimalizációs stratégiák 1. Optimalizációs stratégiák 1. Nyers erő, Oszd meg és uralkodj, Feljegyzéses, Dinamikus, Mohó 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

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

Á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

A félév során előkerülő témakörök

A félév során előkerülő témakörök A félév során előkerülő témakörök rekurzív algoritmusok rendező algoritmusok alapvető adattípusok, adatszerkezetek, és kapcsolódó algoritmusok dinamikus programozás mohó algoritmusok gráf algoritmusok

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

Dinamikus programozás II.

Dinamikus programozás II. Dinamikus programozás II. Dinamikus programozás stratégiája A dinamikus programozás stratégiája 1. Az [optimális] megoldás szerkezetének tanulmányozása. 2. Részproblémákra és összetevőkre bontás úgy, hogy:

Részletesebben

Dinamikus programozás - Szerelőszalag ütemezése

Dinamikus programozás - Szerelőszalag ütemezése Dinamikus programozás - Szerelőszalag ütemezése A dinamikus programozás minden egyes részfeladatot és annak minden részfeladatát pontosan egyszer oldja meg, az eredményt egy táblázatban tárolja, és ezáltal

Részletesebben

egy szisztolikus példa

egy szisztolikus példa Automatikus párhuzamosítás egy szisztolikus példa Áttekintés Bevezetés Példa konkrét szisztolikus algoritmus Automatikus párhuzamosítási módszer ötlet Áttekintés Bevezetés Példa konkrét szisztolikus algoritmus

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

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás) Matematika A2c gyakorlat Vegyészmérnöki, Biomérnöki, Környezetmérnöki szakok, 2017/18 ősz 1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás) 1. Valós vektorterek-e a következő

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

Algoritmusok bonyolultsága

Algoritmusok bonyolultsága Algoritmusok bonyolultsága 9. előadás http://www.ms.sapientia.ro/~kasa/komplex.htm 1 / 18 Közelítő algoritmusok ládapakolás (bin packing) Adott n tárgy (s i tömeggel) és végtelen sok 1 kapacitású láda

Részletesebben

Műveletek mátrixokkal. Kalkulus. 2018/2019 ősz

Műveletek mátrixokkal. Kalkulus. 2018/2019 ősz 2018/2019 ősz Elérhetőségek Előadó: (safaro@math.bme.hu) Fogadóóra: hétfő 9-10 (H épület 3. emelet 310-es ajtó) A pontos tárgykövetelmények a www.math.bme.hu/~safaro/kalkulus oldalon találhatóak. A mátrix

Részletesebben

Algoritmizálás, adatmodellezés tanítása 8. előadás

Algoritmizálás, adatmodellezés tanítása 8. előadás Algoritmizálás, adatmodellezés tanítása 8. előadás Elágazás és korlátozás A backtrack alkalmas-e optimális megoldás keresésére? Van költség, és a legkisebb költségű megoldást szeretnénk előállítani. Van

Részletesebben

Programozási módszertan. Függvények rekurzív megadása "Oszd meg és uralkodj" elv, helyettesítő módszer, rekurziós fa módszer, mester módszer

Programozási módszertan. Függvények rekurzív megadása Oszd meg és uralkodj elv, helyettesítő módszer, rekurziós fa módszer, mester módszer PM-03 p. 1/13 Programozási módszertan Függvények rekurzív megadása "Oszd meg és uralkodj" elv, helyettesítő módszer, rekurziós fa módszer, mester módszer Werner Ágnes Villamosmérnöki és Információs Rendszerek

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

Gráfelméleti feladatok. c f

Gráfelméleti feladatok. c f Gráfelméleti feladatok d e c f a b gráf, csúcsok, élek séta: a, b, c, d, e, c, a, b, f vonal: c, d, e, c, b, a út: f, b, a, e, d (walk, lanţ) (trail, lanţ simplu) (path, lanţ elementar) 1 irányított gráf,

Részletesebben

A lineáris programozás alapfeladata Standard alak Az LP feladat megoldása Az LP megoldása: a szimplex algoritmus 2018/

A lineáris programozás alapfeladata Standard alak Az LP feladat megoldása Az LP megoldása: a szimplex algoritmus 2018/ Operációkutatás I. 2018/2019-2. Szegedi Tudományegyetem Informatika Intézet Számítógépes Optimalizálás Tanszék 2. Előadás LP alapfeladat A lineáris programozás (LP) alapfeladata standard formában Max c

Részletesebben

Mohó algoritmusok. Példa:

Mohó algoritmusok. Példa: Mohó algoritmusok Optimalizálási probléma megoldására szolgáló algoritmus sokszor olyan lépések sorozatából áll, ahol minden lépésben adott halmazból választhatunk. Ezt gyakran dinamikus programozás alapján

Részletesebben

Edényrendezés. Futási idő: Tegyük fel, hogy m = n, ekkor: legjobb eset Θ(n), legrosszabb eset Θ(n 2 ), átlagos eset Θ(n).

Edényrendezés. Futási idő: Tegyük fel, hogy m = n, ekkor: legjobb eset Θ(n), legrosszabb eset Θ(n 2 ), átlagos eset Θ(n). Edényrendezés Tegyük fel, hogy a rendezendő H = {a 1,...,a n } halmaz elemei a [0,1) intervallumba eső valós számok. Vegyünk m db vödröt, V [0],...,V [m 1] és osszuk szét a rendezendő halmaz elemeit a

Részletesebben

Algoritmusok és adatszerkezetek gyakorlat 03 Oszd meg és uralkodj. Nagy

Algoritmusok és adatszerkezetek gyakorlat 03 Oszd meg és uralkodj. Nagy Algoritmusok és adatszerkezetek gyakorlat 03 Oszd meg és uralkodj Divide & Conquer (,,Oszd meg és uralkodj ) paradigma Divide: Osszuk fel az adott problémát kisebb problémákra. Conquer: Oldjuk meg a kisebb

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

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

A lineáris programozás alapfeladata Standard alak Az LP feladat megoldása Az LP megoldása: a szimplex algoritmus 2017/

A lineáris programozás alapfeladata Standard alak Az LP feladat megoldása Az LP megoldása: a szimplex algoritmus 2017/ Operációkutatás I. 2017/2018-2. Szegedi Tudományegyetem Informatika Intézet Számítógépes Optimalizálás Tanszék 2. Előadás LP alapfeladat A lineáris programozás (LP) alapfeladata standard formában Max c

Részletesebben

Adatszerkezetek 2. Dr. Iványi Péter

Adatszerkezetek 2. Dr. Iványi Péter Adatszerkezetek 2. Dr. Iványi Péter 1 Fák Fákat akkor használunk, ha az adatok között valamilyen alá- és fölérendeltség van. Pl. könyvtárszerkezet gyökér (root) Nincsennek hurkok!!! 2 Bináris fák Azokat

Részletesebben

2. Visszalépéses keresés

2. Visszalépéses keresés 2. Visszalépéses keresés Visszalépéses keresés A visszalépéses keresés egy olyan KR, amely globális munkaterülete: egy út a startcsúcsból az aktuális csúcsba (az útról leágazó még ki nem próbált élekkel

Részletesebben

Dinamikus modellek szerkezete, SDG modellek

Dinamikus modellek szerkezete, SDG modellek Diagnosztika - 3. p. 1/2 Modell Alapú Diagnosztika Diszkrét Módszerekkel Dinamikus modellek szerkezete, SDG modellek Hangos Katalin PE Villamosmérnöki és Információs Rendszerek Tanszék Diagnosztika - 3.

Részletesebben

4. Fuzzy relációk. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI

4. Fuzzy relációk. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI 4. Fuzzy relációk Gépi intelligencia I. Fodor János BMF NIK IMRI NIMGI1MIEM Tartalomjegyzék I 1 Klasszikus relációk Halmazok Descartes-szorzata Relációk 2 Fuzzy relációk Fuzzy relációk véges alaphalmazok

Részletesebben

Programozási módszertan. Dinamikus programozás: Nyomtatási feladat A leghosszabb közös részsorozat

Programozási módszertan. Dinamikus programozás: Nyomtatási feladat A leghosszabb közös részsorozat PM-04 p. 1/18 Programozási módszertan Dinamikus programozás: Nyomtatási feladat A leghosszabb közös részsorozat Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu

Részletesebben

Algoritmusok és adatszerkezetek gyakorlat 07

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

Részletesebben

A szimplex algoritmus

A szimplex algoritmus . gyakorlat A szimplex algoritmus Az előző órán bevezetett feladat optimális megoldását fogjuk megvizsgálni. Ehhez új fogalmakat, és egy algoritmust tanulunk meg. Hogy az algoritmust alkalmazni tudjuk,

Részletesebben

1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok. HálózatokII, 2007

1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok. HálózatokII, 2007 Hálózatok II 2007 1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok 1 Az előadáshoz Előadás: Szerda 17:00 18:30 Gyakorlat: nincs Vizsga írásbeli Honlap: http://people.inf.elte.hu/lukovszki/courses/g/07nwii

Részletesebben

Occam 1. Készítette: Szabó Éva

Occam 1. Készítette: Szabó Éva Occam 1. Készítette: Szabó Éva Párhuzamos programozás Egyes folyamatok (processzek) párhuzamosan futnak. Több processzor -> tényleges párhuzamosság Egy processzor -> Időosztásos szimuláció Folyamatok közötti

Részletesebben

Az optimális megoldást adó algoritmusok

Az optimális megoldást adó algoritmusok Az optimális megoldást adó algoritmusok shop ütemezés esetén Ebben a fejezetben olyan modellekkel foglalkozunk, amelyekben a munkák több műveletből állnak. Speciálisan shop ütemezési problémákat vizsgálunk.

Részletesebben

Gráf-algoritmusok Legrövidebb utak

Gráf-algoritmusok Legrövidebb utak https://www.cs.princeton.edu/~rs/algsds07/15shortestpaths.pdf Gráf-algoritmusok Legrövidebb utak Sapientia-EMTE 2017-18 Typesetting in TeX Két pont között, akkor van él, ha közéjük 1 2 3 4 eső szó szekvencia

Részletesebben

Megoldás meghatározása Ez a szakasz kitölti a c és S táblázatokat, a kiíratás S alapján egy rekurzív algoritmussal megtehető.

Megoldás meghatározása Ez a szakasz kitölti a c és S táblázatokat, a kiíratás S alapján egy rekurzív algoritmussal megtehető. Leghosszabb közös részsorozat Egy sorozat, akkor részsorozata egy másiknak, ha abból elemeinek elhagyásával megkapható. A feladat két sorozat X = (x 1,...,x m ) és Y = (y 1,...,y n ) leghosszabb közös

Részletesebben

Korlátozás és szétválasztás módszere Holló Csaba 2

Korlátozás és szétválasztás módszere Holló Csaba 2 Korlátozás és szétválasztás módszere Holló Csaba 2 A módszert Imreh Balázs, Imreh Csanád: Kombinatorikus optimalizálás Novadat, Győr, 25 egyetemi tankönyve alapján, kisebb változtatásokkal fogjuk bemutatni.

Részletesebben

Gráfok, definíciók. Gráfok ábrázolása. Az adott probléma megoldásához ténylegesen mely műveletek szükségesek. Ábrázolások. Példa:

Gráfok, definíciók. Gráfok ábrázolása. Az adott probléma megoldásához ténylegesen mely műveletek szükségesek. Ábrázolások. Példa: Gráfok, definíciók Irányítatlan gráf: G = (V,E), ahol E rendezetlen (a,b),a,b V párok halmaza. Irányított gráf: G = (V,E) E rendezett (a,b) párok halmaza; E V V. Címkézett (súlyozott) gráf: G = (V,E,C)

Részletesebben

Algoritmuselmélet 18. előadás

Algoritmuselmélet 18. előadás Algoritmuselmélet 18. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu 2002 Május 7. ALGORITMUSELMÉLET 18. ELŐADÁS 1 Közelítő algoritmusok

Részletesebben

Dr. Schuster György február / 32

Dr. Schuster György február / 32 Algoritmusok és magvalósítások Dr. Schuster György OE-KVK-MAI schuster.gyorgy@kvk.uni-obuda.hu 2015. február 10. 2015. február 10. 1 / 32 Algoritmus Alapfogalmak Algoritmus Definíció Algoritmuson olyan

Részletesebben

Infobionika ROBOTIKA. X. Előadás. Robot manipulátorok II. Direkt és inverz kinematika. Készült a HEFOP P /1.0 projekt keretében

Infobionika ROBOTIKA. X. Előadás. Robot manipulátorok II. Direkt és inverz kinematika. Készült a HEFOP P /1.0 projekt keretében Infobionika ROBOTIKA X. Előadás Robot manipulátorok II. Direkt és inverz kinematika Készült a HEFOP-3.3.1-P.-2004-06-0018/1.0 projekt keretében Tartalom Direkt kinematikai probléma Denavit-Hartenberg konvenció

Részletesebben

Számítógép hálózatok, osztott rendszerek 2009

Számítógép hálózatok, osztott rendszerek 2009 Számítógép hálózatok, osztott rendszerek 2009 1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok 1 Az előadáshoz Előadás: Hétfő 10:00 12:00 óra Gyakorlat: Hétfő 14:00-16:00 óra Honlap: http://people.inf.elte.hu/lukovszki/courses/0910nwmsc

Részletesebben

I. VEKTOROK, MÁTRIXOK

I. VEKTOROK, MÁTRIXOK 217/18 1 félév I VEKTOROK, MÁTRIXOK I1 I2 Vektorok 1 A síkon derékszögű koordinátarendszerben minden v vektornak van vízszintes és van függőleges koordinátája, ezeket sorrendben v 1 és v 2 jelöli A v síkbeli

Részletesebben

2. Visszalépéses stratégia

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:

Részletesebben

Példa Hajtsuk végre az 1 pontból a Dijkstra algoritmust az alábbi gráfra. (A mátrixban a c i j érték az (i, j) él hossza, ha nincs él.

Példa Hajtsuk végre az 1 pontból a Dijkstra algoritmust az alábbi gráfra. (A mátrixban a c i j érték az (i, j) él hossza, ha nincs él. Legrövidebb utak súlyozott gráfokban A feladat egy súlyozott gráfban egy adott pontból kiinduló legrövidebb utak megkeresése. Az input a súlyozott gráf és a kiindulási s pont. Outputként egy legrövidebb

Részletesebben

Algoritmuselmélet 1. előadás

Algoritmuselmélet 1. előadás Algoritmuselmélet 1. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu 2002 Február 11. ALGORITMUSELMÉLET 1. ELŐADÁS 1 Források

Részletesebben

MATE-INFO UBB verseny, március 25. MATEMATIKA írásbeli vizsga

MATE-INFO UBB verseny, március 25. MATEMATIKA írásbeli vizsga BABEŞ-BOLYAI TUDOMÁNYEGYETEM, KOLOZSVÁR MATEMATIKA ÉS INFORMATIKA KAR MATE-INFO UBB verseny, 218. március 25. MATEMATIKA írásbeli vizsga FONTOS TUDNIVALÓK: 1 A feleletválasztós feladatok,,a rész esetén

Részletesebben

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik. Algoritmus Az algoritmus olyan elemi műveletekből kompozíciós szabályok szerint felépített összetett művelet, amelyet megadott feltételt teljesítő bemeneti adatra végrehajtva, a megkívánt kimeneti adatot

Részletesebben

Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!

Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel! függvények RE 1 Relációk Függvények függvények RE 2 Definíció Ha A, B és ρ A B, akkor azt mondjuk, hogy ρ reláció A és B között, vagy azt, hogy ρ leképezés A-ból B-be. Ha speciálisan A=B, azaz ρ A A, akkor

Részletesebben

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10. Összetett programozási tételek Sorozathoz sorozatot relő feladatokkal foglalkozunk. A bemenő sorozatot le kell másolni, s közben az elemekre vonatkozó átalakításokat lehet végezni rajta: Input : n N 0,

Részletesebben

Gauss-Jordan módszer Legkisebb négyzetek módszere, egyenes LNM, polinom LNM, függvény. Lineáris algebra numerikus módszerei

Gauss-Jordan módszer Legkisebb négyzetek módszere, egyenes LNM, polinom LNM, függvény. Lineáris algebra numerikus módszerei A Gauss-Jordan elimináció, mátrixinvertálás Gauss-Jordan módszer Ugyanazzal a technikával, mint ahogy a k-adik oszlopban az a kk alatti elemeket kinulláztuk, a fölötte lévő elemeket is zérussá lehet tenni.

Részletesebben

Mátrixok 2017 Mátrixok

Mátrixok 2017 Mátrixok 2017 számtáblázatok" : számok rendezett halmaza, melyben a számok helye két paraméterrel van meghatározva. Például lineáris egyenletrendszer együtthatómátrixa 2 x 1 + 4 x 2 = 8 1 x 1 + 3 x 2 = 1 ( 2 4

Részletesebben

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból ÜTEMTERV Programozás-elmélet c. tárgyhoz (GEMAK233B, GEMAK233-B) BSc gazdaságinformatikus, programtervező informatikus alapszakok számára Óraszám: heti 2+0, (aláírás+kollokvium, 3 kredit) 2019/20-es tanév

Részletesebben

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik. Algoritmus Az algoritmus olyan elemi műveletekből kompozíciós szabályok szerint felépített összetett művelet, amelyet megadott feltételt teljesítő bemeneti adatra végrehajtva, a megkívánt kimeneti adatot

Részletesebben

2017/ Szegedi Tudományegyetem Informatikai Intézet

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 8. Előadás Bevezetés Egy olyan LP-t, amelyben mindegyik változó egészértékű, tiszta egészértékű

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

Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok.

Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok. Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás 4. előadás Procedurális programozás: iteratív és rekurzív alprogramok Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

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

minden x D esetén, akkor x 0 -at a függvény maximumhelyének mondjuk, f(x 0 )-at pedig az (abszolút) maximumértékének.

minden x D esetén, akkor x 0 -at a függvény maximumhelyének mondjuk, f(x 0 )-at pedig az (abszolút) maximumértékének. Függvények határértéke és folytonossága Egy f: D R R függvényt korlátosnak nevezünk, ha a függvényértékek halmaza korlátos. Ha f(x) f(x 0 ) teljesül minden x D esetén, akkor x 0 -at a függvény maximumhelyének

Részletesebben

Gráfalgoritmusok ismétlés ősz

Gráfalgoritmusok ismétlés ősz Gráfalgoritmusok ismétlés 2017. ősz Gráfok ábrázolása Egy G = (V, E) gráf ábrázolására alapvetően két módszert szoktak használni: szomszédsági listákat, illetve szomszédsági mátrixot. A G = (V, E) gráf

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

Valasek Gábor valasek@inf.elte.hu

Valasek Gábor valasek@inf.elte.hu Számítógépes Grafika Valasek Gábor valasek@inf.elte.hu Eötvös Loránd Tudományegyetem Informatikai Kar 2013/2014. őszi félév ( Eötvös LorándSzámítógépes TudományegyetemInformatikai Grafika Kar) 2013/2014.

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

A valós számok halmaza

A valós számok halmaza VA 1 A valós számok halmaza VA 2 A valós számok halmazának axiómarendszere és alapvető tulajdonságai Definíció Az R halmazt a valós számok halmazának nevezzük, ha teljesíti a következő axiómarendszerben

Részletesebben

Struktúra nélküli adatszerkezetek

Struktúra nélküli adatszerkezetek Struktúra nélküli adatszerkezetek Homogén adatszerkezetek (minden adatelem azonos típusú) osztályozása Struktúra nélküli (Nincs kapcsolat az adatelemek között.) Halmaz Multihalmaz Asszociatív 20:24 1 A

Részletesebben

Párhuzamos és Grid rendszerek

Párhuzamos és Grid rendszerek Párhuzamos és Grid rendszerek (2. ea) párhuzamos algoritmusok tervezése Szeberényi Imre BME IIT Az ábrák egy része Ian Foster: Designing and Building Parallel Programs (Addison-Wesley)

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

INFORMATIKA javítókulcs 2016

INFORMATIKA javítókulcs 2016 INFORMATIKA javítókulcs 2016 ELMÉLETI TÉTEL: Járd körbe a tömb fogalmát (Pascal vagy C/C++): definíció, egy-, két-, több-dimenziós tömbök, kezdőértékadás definíciókor, tömb típusú paraméterek átadása alprogramoknak.

Részletesebben

A szimplex tábla. p. 1

A szimplex tábla. p. 1 A szimplex tábla Végződtetés: optimalitás és nem korlátos megoldások A szimplex algoritmus lépései A degeneráció fogalma Komplexitás (elméleti és gyakorlati) A szimplex tábla Példák megoldása a szimplex

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 06/7. félév 7. Előadás Dr. Kulcsár Gyula egyetemi docens Tartalom. A projektütemezés alapjai..

Részletesebben

Bonyolultságelmélet. Thursday 1 st December, 2016, 22:21

Bonyolultságelmélet. Thursday 1 st December, 2016, 22:21 Bonyolultságelmélet Thursday 1 st December, 2016, 22:21 Tárbonyolultság A futásidő mellett a felhasznált tárterület a másik fontos erőforrás. Ismét igaz, hogy egy Ram-program esetében ha csak a használt

Részletesebben

Rekurzív algoritmusok

Rekurzív algoritmusok Rekurzív algoritmusok 11. előadás Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2011. november 14. Sergyán (OE NIK) AAO 11 2011. november 14. 1 / 32 Rekurzív

Részletesebben

Párhuzamos algoritmusok tervezésének alapjai

Párhuzamos algoritmusok tervezésének alapjai Többszálú, többmagos architektúrák és programozásuk Óbudai Egyetem, Neumann János Informatikai Kar Párhuzamos algoritmusok tervezésének alapjai Bevezetés Részfeladatok és dekompozíció Processzek és leképzés

Részletesebben

Programozás alapjai. 6. gyakorlat Futásidő, rekurzió, feladatmegoldás

Programozás alapjai. 6. gyakorlat Futásidő, rekurzió, feladatmegoldás Programozás alapjai 6. gyakorlat Futásidő, rekurzió, feladatmegoldás Háziellenőrzés Egészítsd ki úgy a simplemaths.c programot, hogy megfelelően működjön. A program feladata az inputon soronként megadott

Részletesebben

3. Előadás. Megyesi László: Lineáris algebra, oldal. 3. előadás Lineáris egyenletrendszerek

3. Előadás. Megyesi László: Lineáris algebra, oldal. 3. előadás Lineáris egyenletrendszerek 3. Előadás Megyesi László: Lineáris algebra, 47. 50. oldal. Gondolkodnivalók Determinánsok 1. Gondolkodnivaló Determinánselméleti tételek segítségével határozzuk meg a következő n n-es determinánst: 1

Részletesebben

Hatékonyság 1. előadás

Hatékonyság 1. előadás Hatékonyság 1. előadás Mi a hatékonyság Bevezetés A hatékonyság helye a programkészítés folyamatában: csak HELYES programra Erőforrásigény: a felhasználó és a fejlesztő szempontjából A hatékonyság mérése

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

Polinomok, Lagrange interpoláció

Polinomok, Lagrange interpoláció Közelítő és szimbolikus számítások 8. gyakorlat Polinomok, Lagrange interpoláció Készítette: Gelle Kitti Csendes Tibor Somogyi Viktor Vinkó Tamás London András Deák Gábor jegyzetei alapján 1. Polinomok

Részletesebben

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása 1 Információk 2 A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin Elérhetőség mesko.katalin@tfk.kefo.hu Fogadóóra: szerda 9:50-10:35 Számonkérés időpontok Április 25. 9 00 Május 17. 9 00 Június

Részletesebben

Számjegyes vagy radix rendezés

Számjegyes vagy radix rendezés Számláló rendezés Amennyiben a rendezendő elemek által felvehető értékek halmazának számossága kicsi, akkor megadható lineáris időigényű algoritmus. A bemenet a rendezendő elemek egy n méretű A tömbben

Részletesebben

JAVASLAT A TOP-K ELEMCSERÉK KERESÉSÉRE NAGY ONLINE KÖZÖSSÉGEKBEN

JAVASLAT A TOP-K ELEMCSERÉK KERESÉSÉRE NAGY ONLINE KÖZÖSSÉGEKBEN JAVASLAT A TOP-K ELEMCSERÉK KERESÉSÉRE NAGY ONLINE KÖZÖSSÉGEKBEN Supporting Top-k item exchange recommendations in large online communities Barabás Gábor Nagy Dávid Nemes Tamás Probléma Cserekereskedelem

Részletesebben

Készítette: Trosztel Mátyás Konzulens: Hajós Gergely

Készítette: Trosztel Mátyás Konzulens: Hajós Gergely Készítette: Trosztel Mátyás Konzulens: Hajós Gergely Monte Carlo Markov Chain MCMC során egy megfelelően konstruált Markov-lánc segítségével mintákat generálunk. Ezek eloszlása követi a céleloszlást. A

Részletesebben

2. Rekurzió. = 2P2(n,n) 2 < 2P2(n,n) 1

2. Rekurzió. = 2P2(n,n) 2 < 2P2(n,n) 1 2. Rekurzió Egy objektum definícióját rekurzívnak nevezünk, ha a definíció tartalmazza a definiálandó objektumot. Egy P eljárást (vagy függvényt) rekurzívnak nevezünk, ha P utasításrészében előfordul magának

Részletesebben

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem } Funkcionális és logikai programozás { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem } http://www.ms.sapientia.ro/~mgyongyi ` 1 Jelenlét: Követelmények, osztályozás Az első 4 előadáson

Részletesebben

Algoritmuselmélet. Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás. Katona Gyula Y.

Algoritmuselmélet. Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás. Katona Gyula Y. Algoritmuselmélet Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

Részletesebben

értékel függvény: rátermettségi függvény (tness function)

é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

Részletesebben

Az Országos Középiskolai Tanulmányi Verseny 2006-2007. tanévi első fordulójának feladatmegoldásai

Az Országos Középiskolai Tanulmányi Verseny 2006-2007. tanévi első fordulójának feladatmegoldásai Az Országos Középiskolai Tanulmányi Verseny 006-007. tanévi első fordulójának feladatmegoldásai matematikából, a II. kategória számára 1. Melyek azok a pozitív egészek, amelyeknek pontosan négy pozitív

Részletesebben

Ú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 Ú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

Részletesebben

Nagyságrendek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT február 1.

Nagyságrendek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT február 1. Nagyságrendek Kiegészítő anyag az Algoritmuselmélet tárgyhoz (a Rónyai Ivanyos Szabó: Algoritmusok könyv mellé) Friedl Katalin BME SZIT friedl@cs.bme.hu 018. február 1. Az O, Ω, Θ jelölések Az algoritmusok

Részletesebben

BBTE Matek-Infó verseny mintatételsor Informatika írásbeli vizsga

BBTE Matek-Infó verseny mintatételsor Informatika írásbeli vizsga BABEȘ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR A. tételsor (30 pont) 1. (5p) Tekintsük a következő alprogramot: Alprogram f(a): Ha a!= 0, akkor visszatérít: a + f(a - 1) különben visszatérít

Részletesebben

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje 1. Alapfogalmak 1.1. Algoritmus Az algoritmus olyan elemi műveletekből kompozíciós szabályok szerint felépített összetett művelet, amelyet megadott feltételt teljesítő bemeneti adatra végrehajtva, a megkívánt

Részletesebben

Optimalizálás alapfeladata Legmeredekebb lejtő Lagrange függvény Log-barrier módszer Büntetőfüggvény módszer 2017/

Optimalizálás alapfeladata Legmeredekebb lejtő Lagrange függvény Log-barrier módszer Büntetőfüggvény módszer 2017/ Operációkutatás I. 2017/2018-2. Szegedi Tudományegyetem Informatikai Intézet Számítógépes Optimalizálás Tanszék 9. Előadás Az optimalizálás alapfeladata Keressük f függvény maximumát ahol f : R n R és

Részletesebben