Bodó Alexandra. Algoritmusok többgépes ütemezési feladatokra

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

Download "Bodó Alexandra. Algoritmusok többgépes ütemezési feladatokra"

Átírás

1 Eötvös Loránd Tudományegyetem Természettudományi Kar Bodó Alexandra Algoritmusok többgépes ütemezési feladatokra BSc Elemz Matematikus Szakdolgozat Témavezet : Jordán Tibor Operációkutatási Tanszék Budapest, 2015

2 Köszönetnyilvánítás Ezúton szeretnék köszönetet mondani konzulensemnek Jordán Tibornak, aki felkeltette az érdekl désem a téma iránt, munkám során végig segített és motivált. Emellett szeretném megköszönni családomnak és barátaimnak a sok biztatást, kitartást és érdekl dést, amely nélkül nem jöhetett volna létre ez a szakdolgozat. 2

3 Tartalomjegyzék 1. Bevezetés Alapfogalmak Történet Párhuzamos gépes ütemezések P C max Listás ütemezés Knuth-Kleitman Algoritmus P 2 prec, p j = 1 C max Coman és Graham algoritmusa P p j = 1, r i L max Uniform gépes ütemezések Q pmtn C max Q pmtn, r i L max Q C i Q pmtn C i Q p i = 1 f i és Q p i = 1 f max Független gépes ütemezések R pmtn C max, R pmtn L max, R pmtn, r i L max

4 1. fejezet Bevezetés Egy matematikai probléma megoldásában van valami élvezetes. Az ember szembetalálja magát egy problémával, aminek még nem ismeri a nyitját, de tisztában van vele, hogy vannak bizonyos szabályok, amelyeket követhet, és bizonyos megközelítésmódok, amelyeket alkalmazhat, és bár az eljárás során a közbens lépcs fokok gyakran még bonyolultabbak a kiindulási helyzetnél, a végeredmény már annál egyszer bb. Az ember bizony örömét leli abban, ahogyan végighalad ezen az úton. - Malcolm Gladwell 1.1. Alapfogalmak Deníció. (Ütemezés) Bizonyos tevékenységek elvégzésére olyan id beosztást találni, ami gyelembe veszi a rendelkezésre álló er forrásokat, és valamilyen szempont szerint optimális Deníció. Munkákat végzünk gépeken. Adottak a munkák, J = {j 1, j 2,..., j n } és a gépek M = {M 1, M 2,..., M m }. Minden munkához adott a megmunkálási ideje, az az id amely alatt a munka elvégezhet {p 1, p 2,..., p n }. A gépek fajtái: Egygépes ütemezés: egy darab gépünk van. Jelölése: 1 Párhuzamos gépes ütemezés: m db egyforma gépünk van. Jelölése: P Uniform gépes ütemezés: m db különböz sebesség gépünk van (s 1, s 2,..., s m sebességek). Jelölése: Q Független gépes ütemezés: m db gépünk van és p i,j -k adottak (az i-edik gépen a j-edik munka megmunkálási idejei). Jelölése: R Feltételek fajtái: 4

5 pmtn: a munkák megszakíthatóak prec: a munkákhoz adottak megel zési feltételek, azaz például a j munkát az i munka el tt kell elvégezni r j : rendelkezésre állási id, azaz a j munka csak r j után kezdhet el d j : határid, azaz j munkát d j ideig be kell fejezni w j : súly, a j munka w j súllyal számít Célfüggvények fajtái: C max : C j : L max : U j : max C j : teljes átfutási id minimalizálása j C j min: befejezési id k összegének minimalizálása j max L j : maximális késést minimalizálni j U j min: a késések számának az összegének a minimalizálása j f max : f j : Megjegyzés. max f j (C j ) min: az j. munka maximális büntetésének minimalizálása i f j min: a büntetések összegének minimalizálása j L j := C i d i késés { 1 ha m késik U j = 0 ha m nem késik 1.2. Történet A történet Ronald L. Graham t l származik ([11]) ábra. Részmunkaid k A dolgok nem mentek túl jól az Acme kerékpárgyártó cég összeszerelési részlegén. Sosem sikerült az el írt kvótát teljesíteni. Így kineveztek egy új csoportvezet t a részlegen, és 5

6 elmondták neki, hogy mi a probléma és a feladata, hogy ezt orvosolja. Az új csoportvezet rájött, hogy neki ez egy jó lehet ség, hogy a felettesei felgyeljenek rá, ezért mindent alaposan tanulmányozni kezdett. Az els dolog amit megtanult, hogy a kerékpár összeszerelési folyamata több kisebb munkára bomlik. Részmunkák megnevezése, jelölése FP: a váz el készítése FW: az elüls kerék összeszerelése és egyenesbe állítása BW: a hátsó kerék összeszerelése és egyenesbe állítása DE: a váltó hozzákapcsolása a vázhoz GC: a fogaskerekek felszerelése CW: a lánc hozzákapcsolása a fogantyúhoz CR: a fogantyú és a lánc hozzákapcsolása a vázhoz RP: a jobb pedál összeszerelése LW: a bal pedál összeszerelése FA: utolsó simítások, a kormány, az ülés, a fékek összeszerelése és szabályozása A következ dolog amit tanulmányozott, hogy meddig tart képzett szakembereknek ezen részmunkák elvégzése (1.1 ábra). Ezt a korábbi információkból tudta összeszedni ábra. Részmunka-sorrend A hely és a felszerelés miatt a 20 szerel, akik a részlegen dolgoztak, csoportokba voltak osztva; 10 csoport mindegyikében 2 ember, és minden csapat 1 biciklit szerelhet egy id ben. Egy gyors számolás alapján kaphatjuk, hogy egy bicikli összeszerelési ideje összesen 64 perc, ami azt jelentené, hogy egy csapatnak ezt 32 perc alatt kéne elvégeznie. Ekkor egy 8 órás munkanap alatt minden csapat 15 biciklit tudna összeszerelni, azaz naponta 150 kerékpár lenne készen. A csoportvezet lelkesedése csökkent amikor rájött, hogy a kerékpárhoz tartozó részmunkákat nem végezheti tetsz leges sorrendben. Bizonyos munkákat másik munkák el tt kell elvégezni. A csoportvezet hosszas megbeszélés után, elkészítette az alábbi táblázatot (1.2 ábra). 6

7 1.3. ábra. Általános kerékpár-szerelési sorrend Ezen felül két szabály van, amit a munkaid alatt be kell tartani, a helyi menedzsment el írása szerint. Els szabály: Egyik szerel sem pihenhet, ha van mit csináljon. Második szabály: Ha egy szerel elkezdett egy részmunkát, akkor folytatnia kell amíg nem végez vele ábra. Csökkentett idej részmunkák ütemezése Az általános kerékpár-szerelési sorrendet a 1.3 ábra mutatja. Az ütemezés megmutatja: mindkét szerel a csapatban egyszerre kezd a 0 id pontban, az egész szerelési folyamatot, és a befejezési id t, ami itt 34. Bár ez az ütemezés teljesíti az összes szükséges feltételt (amik adottak), minden csapat naponta majdnem 14 kerékpárt szerel össze. Ami kevesebb mint a 150 db-os kvóta. Miután a csoportvezet rengeteget próbálkozott különféle ütemezésekkel, de nem járt sikerrel, úgy döntött, hogy minden szerel t ellát kölcsönzött elektromos eszközökkel. Ez minden részmunka idejét 1 perccel csökkenti, így az összid csak 54 perc. Arra gondolt, hogy így elérheti a 18 biciki/csapat darabszámot naponta. Az els hét végén, mikor a bérelt eszközöket használták, a gyártás lecsökkent 14 biciklire naponta. El ször nem értette, hogy lehetséges ez, majd elkezdett újra számolni. Minden ütemezésnek, ami teljesíti a szabályokat legalább 35 percre van szüksége (1.4 ábra). A csoportvezet csalódott volt, és visszaadta a bérelt elektromos eszközöket. Ezután kétségbeesetten úgy döntött, hogy felvesz 10 szerel t, és minden csoport háromf s lesz. Tudta, hogy így a munkaer költség jelent sen megn, de úgy gondolta, hogy ha ezzel eléri a kvótát, akkor ez nem lesz probléma. Ám két nap sem telt el, hogy rájöjjön, ez az ötlet sem 7

8 1.5. ábra. A három f s csoportok ütemezése eredményes. A kerékpárgyártás leesett 13 darab/napra. Vonakodva megint áttekintette a különböz ütemezéseket. Ekkor azt fedezte fel, hogy az új csapatokkal való ütemezés legalább 37 percet vesz igénybe (1.5 ábra). A következ pár napot azzal töltötte, hogy gondolkozott hol rontotta el, majd megérkezett a felmondása. Ez a történet megmutatja, hogy mennyire nem egyszer megoldani egy ütemezési feladatot, és minden ütemezési feladattípusnak más-más a megoldása. Ilyen feladatmegoldásokat fogok a továbbiakban bemutatni. 8

9 2. fejezet Párhuzamos gépes ütemezések 2.1. P C max Listás ütemezés Algoritmus. Legyen L a munkák valamilyen listája, és ütemezzük a munkákat a következ képpen: Amikor egy gép szabaddá válik, ütemezzük ezen a gépen az L listából a soron következ t Knuth-Kleitman Algoritmus Algoritmus. A következ algoritmus Knuth és Kleitman dolgozta ki (Graham [5]).Válasszuk ki a k leghosszabb munkát, valamely k 0 egész számra, majd ütemezzük ket optimálisan az m gépen. A megmaradó n k munkát pedig listásan ütemezzük. A listás ütemezésb l következik, ha van olyan gép amely szabad, akkor a következ munka nem várhat, hanem a gépre kerül. Adhatunk két alsó korlátot az optimális ütemezés hosszára: ν k = a kiválasztott k munka el ütemezésének az optimuma ν pj m Deníció. ν(k) = az algoritmus által kapott ütemezés értéke Tétel. Jelöljük ν -gal az optimális ütemezés értékét. Ekkor: ν(k) ν m 1 + k m (2.1) 9

10 Bizonyítás. Feltehetjük, hogy ν(k) > ν k és n > k. Legyen p = max k+1 j n (p j ). Látható, hogy nincs olyan gép, amely szabad a ν(k) p -t megel z en, a listás ütemezés miatt. Így: p j (ν(k) p ) m + p (2.2) De ν pj m j (ν(k) p ) + p m = ν(k) p ( 1 1 ) m (2.3) Van k + 1 munkánk amelyek megmunkálási ideje nem kevesebb mint p, és néhány gép, amelynek dolgoznia kell legalább 1 + k k+1 (vagyis ) ilyen munkán. Így: m m Így (2.3) alapján: Így a bizonyítás kész. ν ( 1 + k m ) p p, amib l ν (2.4) 1 + k m ν(k) ν + p ( 1 1 ) és ebb l (2.4) miatt ( m) 1 1 ν(k) ν + ν m 1 + k = ν ( ) (2.5) m 1 + k m m Megjegyzés. Tudjuk, hogy a listás ütemezés 2 1 m közelít a P C max-ra. Emiatt a KKA minden esetben jobb, mint a listás ütemezés. Viszont azt láthatjuk, hogy ahogy a k n, úgy ez a korlát egyre közelebb lesz az 1-hez. Sajnos ez nem bír nagy jelent séggel, mivel egy optimális ütemezést adni az els k munkára, már önmagában egy nehéz probléma. 3 eset: k = 1, k = m, k = 2m Ha k = 1 KKA: 1 + m 1 m+1 Ha k = m KKA: m Ha k = 2m KKA: 1 + m 1 3m 10

11 2.2. P 2 prec, p j = 1 C max Coman és Graham algoritmusa Deníció. (Lexikograkus sorrend) Legyen l = (n 1, n 2,..., n k ) és l = (n 1, n 2,..., n k ) valós számsorok, ahol k, k 1. Ekkor azt mondjuk, hogy l lexikogra- kusan kisebb mint l, hogyha: 1. j (1 j k), amely i-re (1 i < j) teljesíti, hogy n i = n i de n j < n j. vagy 2. k < k és n i = n i i-re (1 i k) Példa. Például: legyen l = (3, 4, 6, 2) és l = (3, 4, 3, 1), ekkor l lexikograkusan kisebb mint l, mivel az els két elemük megegyezik, de a harmadik elemnél l 3 > l 3. Másik példa: legyen f = (1, 4, 6, 7) és f = (1, 4, 6), ekkor f lexikograkusan kisebb mint f, mivel f elemeinek száma több, mint f elemeinek száma, és el tte minden elemük megegyezik Algoritmus. A következ algoritmus Coman-tól és Graham-t l származik (Coman [6]). Adott a G irányított gráfunk. Els lépés. Végezzünk tranzitív redukciót a G irányított gráfunkon. Ezzel a módszerrrel csökkenthetjük a G éleinek számát úgy, hogy ne változzanak a megel zési feltételek. Ha van j-b l l-be men él G-ben, és k j, l munka amelyre teljesül, hogy van j k és k l út G-ben, akkor töröljük a j l élt G-b l. Második lépés. Osszuk a munkákat csoportokra a következ képpen: az els csoportban legyenek azok a munkák, amelyeknek a ki-foka 0, a második csoportban legyenek azok a munkák, amelyeknek a ki-foka 0-vá válik, ha kitöröljük az els csoportban lév munkákat, és így tovább. Majd az els csoport tagjait címkézzük 1-t l k 1 -ig. Ha már ismerjük a p-edik csoport tagjainak a címkézését (k p t l k p -ig), akkor a p+1-edik csoport pontjait az alábbi módon címkézzük. El ször minden ilyen pont mellé felírjuk a bel le elérhet p-ik csoportban lév pontok címkéjét csökken sorrendben. Ezután a címkék sorozatából kapott számsorozatokat lexikograkus sorrend szerint rendezzük és megkapjuk, hogy melyik pont kapja a k p +1, k p +2,..., k p+1 címkéket. (A lexikograkusan nagyobb kapja a nagyobb címkét.) Harmadik lépés. Mikor minden munka címkézett, ütemezzünk listásan a munkákat, hogy a munkák/csúcsok csökken sorrendben vannak a címkék szerint Példa. A 2.1 ábrán láthatjuk, hogy m ködik az algoritmus második lépése, hogyan alakulnak ki a csoportok, végül a csúcsok címkézését is. A csúcsok felett láthatóak 11

12 2.1. ábra. Példa a Coman-Graham algoritmusra 2.2. ábra. Példa megoldása a bel lük elérhet élek (csökken sorrendben), ami alapján meg tudjuk állapítani (lexikograkus sorrend alapján) a címkéket. Majd a 2.2 ábrán az algoritmus harmadik lépését láthatjuk, magát az ütemezést. Egy id ben nem végezhet együtt olyan munka, amelyre igaz, hogy az egyikb l elérhet a másik (például a 15 és a 14), így ezt gyelembe véve, listásan ütemezzük a munkákat csökken címke szerint Példa. Tekintsük a 2.3 ábrán látható gráfot. Láthatjuk, hogy ez nem tranzitív redukált, hiszen a út biztosítja a 8 4 utat, de a 8-as csúcs össze van kötve a 4-essel is. Ha lefuttatjuk az algoritmust (2.5 ábra), akkor C max = 5, míg ha a G gráf tranzitív redukáltját nézzük, akkor C max = 4 (2.4 ábra). Emiatt láthatjuk, hogy a tranzitív redukált kiszámítása, nem elhanyagolható az algoritmusban Megjegyzés. Megmutathatjuk, hogy az algoritmus nem m ködik m = 3-ra. Hiszen tudunk mutatni jobb megoldást, mint amit az algoritmusunk ad (2.6 ábra). Az algoritmus által kapott eredmény C max = 5, míg az optimális ütemezésben C max = 4. Tehát m = 2-re a következ tétel adható. 12

13 2.3. ábra. G gráf, ami nem tranzitív redukált 2.4. ábra. G gráf tranzitív redukáltja Tétel. A Coman-Graham algoritmus ([4]) helyesen megoldja a P 2 prec, pj = 1 C max -ot. Bizonyítás. A bizonyítást megel z en deniálnunk kell pár fogalmat Jelölés. J J azt jelenti, hogy J J -nek az se, és J J-nek a utódja, ahol J, J G Deníció. Ha nem létezik olyan J G, amelyre J J J, akkor J közvetlen se J -nek és J közvetlen utódja J-nek Jelölés. J közvetlen utódainak halmazát jelöljük S(J)-vel. 13

14 2.5. ábra. Példa megoldása 2.6. ábra. Példa megoldása Megjegyzés. A közvetlen utódok halmaza, megegyezik a ki-szomszédok halmazával a tranzitív redukció miatt Jelölés. L = (J 1, J 2,..., J r ) jelölje a G-ben lév munkák valamilyen permutációját Deníció. Legyen ω(l) az az id, ami szükséges, hogy végrehajtsuk a G-ben lév munkákat, az L listát felhasználva (az L lista által kapott maximális befejezési id ) Jelölés. Jelölje r a munkák számát G-ben, illetve L a címkézésb l kapott listát Jelölés. Jelöljük a J munka címkéjét α(j)-vel Deníció. Legyen τ(j) egy nemnegatív egész szám, ami azt az id t jelöli, amikor a J G kezd dik a megfelel L szerinti ütemezésben Lemma. Ha J M 1 -en van ütemezve, és τ(j) τ(j ) (J J ), akkor α(j) > α(j ). Tegyük fel, hogy a G-beli munkákat L szerint ütemezzük. Ha M 2 szabad [t, t + 1] intervallumon, azt mondjuk, hogy M 2 üres feladatot hajt végre és ekkor α( ) = 0. 14

15 Deníció. Deniáljuk rekurzívan V i -t és W i -t a következ képpen: 1. Legyen V 0 az a munka, ami M 1 -n van ütemezve és τ(v 0 ) = ω(l ) 1 (tehát az utolsó munka M 1 -n). W 0 pedig legyen az a munka, ami M 2 -n van ütemezve és τ(w 0 ) = ω(l ) 1 (tehát az utolsó munka M 2 -n). 2. Általában, k 1-re W k az a J munka, amelyre α(j) < α(v k 1 ), τ(j) < τ(v k 1 ) és τ(j) maximális. A lemmából következik, hogy W k az M 2 -n fut. V k az a munka, ami M 1 -n fut és τ(v k ) = τ(w k ) ábra. Példa a V i -re, W i -re és χ i -re Ha W 1 nem létezik, akkor nincs olyan gép, ami állna a ω(l ) 1 id el tt, és így L nyilvánvalóan optimális lesz. Így feltehetjük, hogy W 1 (és így V 1 ) is létezik. Tegyük fel, hogy csak W i -t 0 i m tudjuk deniálni. Legyen χ i azon J munkáknak a halmaza, amelyek kielégítik a τ(v i+1 ) < τ(j) τ(v i )-t, de J W i, 0 i m. Mivel V m+1 nem létezik, ezért χ m azon J munkák halmaza, amelyekre τ(j) τ(v m ) és T W m. Jegyezzük meg, hogy minden χ k számossága páratlan, így megadhatjuk χ k = 2n k 1 pozitív egész n k -ra, ahol 0 k m Lemma. Ha J χ k, J χ k+1 0 k m-re, akkor J J. A következ ekben bebizonyítjuk ezt a kett s indukciót τ(j)-re és τ(j )-re. A χ k deníciójából tudjuk, hogy a J χ k azt jelenti, hogy α(j) α(v k ) és τ(j) τ(v k ). El ször is, legyen X χ k, úgy hogy τ(x) minimális, így τ(x) = τ(v k+1 ) + 1 = τ(v k ) n k + 1. Mivel: α(v k+1 ) > α(x) α(v k ) > α(w k+1 ) (2.6) ezért X-et az M 2 -n kellett volna ütemezni a τ(v k+1 ) id ben, de nem lett ütemezve. Így ebben az id pillanatban valamennyi X -nek (X-nek az sei közül) még nem ütemezettnek kell lenni. Emiatt τ(x ) τ(v k+1 ). De ez azt jelenti, hogy α(x ) > α(x) az algoritmus deníciója miatt. X a τ(x) id ben van ütemezve, X -t az X el tt kell ütemezni és τ(x ) = τ(x) 1 = τ(v k+1 ), (2.7) 15

16 így τ(x ) = τ(v k+1 ) és α(x ) > α(w k+1 ). Csak egyetlen lehetséges megoldás van X -re, nevezetesen X = V k+1. Így V k+1 X. Tegyük fel, hogy egy x j-re, amire 1 j < n k megmutattuk, hogy X χ k és τ(x) τ(v k ) n k + j, ami azt jelenti, hogy V k+1 X. Legyen X χ k amire τ(x ) = τ(v k ) n k + j + 1. Mivel α(v k+1 ) > α(x ) α(v k ) > α(w k + 1) (2.8) ezért, mint korábban X -t az M 2 -n kéne ütemezni a τ(v k+1 ) id ben, de nem áll készen, hogy ütemezve legyen (azaz még vannak sei amik nincsenek ütemezve). Így valamennyien X az X sei közül, a τ(v k+1 ) ideig még nem lettek ütemezve, és így kell hogy τ(x ) τ(v k+1 ) = τ(v k ) n k. Mivel X X ezért τ(x ) τ(x ) 1 = τ(v k ) n k + j. Ha τ(x ) = τ(v k ) n k, és α(x ) > α(x ) α(v k ) > α(w k+1 ), akkor X = V k+1 és megkaptuk hogy V k+1 X. Emiatt feltehetjük, hogy τ(x ) τ(v k ) n k + 1. Az indukciós feltevés miatt: τ(v k ) n k + 1 τ(x ) τ(v k ) n k + j (2.9) látjuk, hogy X χ k és V k+1 X. Így a tranzitivitása miatt, megkapjuk, hogy V k+1 X és az els indukciós lépés kész. Ez megmutatja, hogy V k+1 X minden X χ k (2.10) Jelöljük I k -val azon χ k -beli munkák halmazát, amelyeknek nincs se χ k -ban. Mivel V k+1 X minden X χ k -ra, így nem nehéz látni, hogy S(V k+1 ) χ k = I k. Tegyük fel, valamilyen j-re amire 0 j n k+1 2 megmutattuk, hogy ha J χ k+1, τ(v k+1 ) j τ(j) τ(v k+1 ) akkor J X minden X χ k -re. Legyen X χ k+1 amire τ(x ) = τ(v k+1 ) j 1. Mivel X χ k+1 ezért α(x ) > α(v k+1 ). Így teljesülni kell annak, hogy N(X ) N(V k+1 ), ahol N(X ) úgy jön létre, hogy vesszük az α értékek csökken sorrendjét az X közvetlen utódaiból. Ha létezik X S(X ) χ k+1, akkor az indukciós feltevés miatt, mivel τ(x ) > τ(x ) = τ(v k+1 ) j 1, vagyis τ(x ) τ(v k+1 ) j, ezért X X minden X χ k. Így a tranzitivitás miatt, X X minden X χ k -ra. Emiatt feltehetjük, hogy S(X ) χ k+1 üres. A lemma miatt, α(j) < α(v k ) ha τ(j) > τ(v k ). Szintén, látjuk, hogy α(w k ) < α(v k ). Az algoritmus deníciója alapján: N(X ) N(V k+1 ) és X -nek nincs utódja χ k+1 -ben, ekkor S(X ) χ k = I k. Ez viszont azt jelenti, hogy X X minden X χ k munkára. Ez teljessé teszi az indukciós lépést és a bizonyítását annak, hogy ha T χ k és T χ k+1 (0 k m), akkor T T. Innen már csak egy rövid lépés, hogy bebizonyítsuk a tételt. Egy tetsz leges L listára, minden χ k+1 -beli munkának be kell fejez dnie miel tt bármelyik χ k -beli munka elkezd dik. Mivel χ k+1 2n k+1 1 munkából áll, ezért ez legalább n k+1 id egységet igényel. Így, 16

17 ahhoz hogy minden G-beli munkát elvégezzünk legalább m n k id egység kell, nem számít milyen L listát használtunk. Mivel ω(l ) = m n k és megmutattuk, hogy ω(l) ω(l ) így a bizonyítás kész. k=0 k= P p j = 1, r i L max Legyenek a munkák az alábbi módon indexelve: r 1 r 2... r n. A feladat megoldása egyszer, ha a rendelkezésre állási id k egész számok. Ebben az esetben optimális ütemezést kapunk, ha nemcsökken határid szerint rendezzük az elérhet munkákat. Pontosabban, ha egy adott t id pillanatban nem minden gép foglalt, és van egy J i nem ütemezett munka r i t rendelkezésre állási id vel, akkor azt az ehhez hasonló tulajdonságú munkát ütemezzük, amelynek kisebb a határideje. A következ algoritmus a P p j = 1, r i Z L max megoldását adja, ahol K a legkisebb index szabad gép indexe t-ben; m a gépek száma; M azon munkák halmaza, amelyek még nincsenek ütemezve, de elérhet ek t-ben; és j az ütemezett munkák számlálója Algoritmus. P p j = 1, r i Z L max 1. j := 1, K := 1; 2. WHILE j n DO 3. BEGIN 4. K := 1; t := r j ; M := {J i r i t}; 5. WHILE M DO 6. BEGIN 7. Keressünk J i munkát a legkisebb határid vel M-ben 8. M := M\{J i }; 9. Ütemezzük J i -t a t id ben az M K gépre 10. j := j + 1; 11. IF K + 1 m THEN K := K ELSE 13. BEGIN 14. t := t + 1; 15. K := 1; 16. M := M {J i r i t} 17. END 18. END 20. END Példa. Példa a P p j = 1, r i Z L max -ra: Ha elkezdjük az algoritmust futtatni (j = 1, K = 1), akkor el ször t = 0 és M = {J 1, J 2 }, így J 1 lesz a legkisebb határidej munka, M = {J 2 }. J 1 -et ütemezzük t = 0-ban az M 1 17

18 gépen, j = 2, K = 2. Mivel M nem üres, megint megnézzük melyik a legkisebb határidej munka, ami a J 2, ezt ütemezzük t = 0-ban az M 2 gépen, j = 3, de mivel 3 2, ezért belépünk az ELSE részbe, t = = 1, K = 1, M = {J 3 }. Így J 3 -mat ütemezzük t = 1- ben az M 1 gépen, j = 4, K = 2, viszont így M =, így visszamegyünk a 2. lépésig. Itt K = 1, t = 2 és M = {J 4, J 5 }. Itt keressük a legkisebb határidej munkát, de egyenl ek, ezért bármelyiket választhatjuk. Ütemezzük J 4 -et t = 2-ben az M 1 gépen, így M = {J 5 }, j = 5, K = 2. Végül ütemezzük J 5 -öt t = 2-ben az M 2 gépen ábra. Példa az algoritmus m ködésére P p j = 1, r i Z L max A bels WHILE ciklus olyan munkablokkokat alkot, amelyek állási id nélkül vannak ütemezve a gépeken, az ütemezett munkák között. Miután egy ilyen blokk befejez dik, a jelenlegi r j érték a kezd id a következ blokkban. Az algoritmus helyességét a következ képpen bizonyíthatjuk. Legyen S az algoritmus által konstruált ütemezés és jelöljük S -gal az optimális ütemezést a következ tulajdonságokkal: az els r 1 munka, ami S-ben ütemezve van, ugyanakkor van ütemezve S-ben és S -ban r 1 maximális Így, a J r munka ütemezve van S-ben, valamilyen t id ben, míg J r valamilyen kés bbi id ben van ütemezve S -ban (hiszen r 1 maximális). Ha van olyan gép S -ban amelyen t id ben állási id van, J r áthelyezhet arra a gépre a t id be. Másrészt, létezik egy munka, J k d r d k határid vel, amelyet S -ban a t id ben ütemeztünk, de S-ben nem. Ekkor cseréljük ki J k -t és J r -t S -ban. Mindkét esetben S optimális marad, ami ellentmond r 1 maximalitásának Megjegyzés. Ha a rendelkezésre állási id k nem egészek (hanem például racionálisak), akkor ez az algoritmus nem ad optimális ütemezést. Ezt a 2.9 példával szemléltethetjük. A következ ekben megnézzük, hogy mi történik, ha a rendelkezésre állási id k valós számok. A jelölés egyszer sítése érdekében jelöljük a munkákat 1, 2..., n-el a J 1, J 2,..., J n helyett. El ször is bevezetünk egy jelölést a listás ütemezésre. A lista egy π permutáció: 18

19 2.9. ábra. Példa az algoritmus helytelenségére racionális rendelkezésre állási id kkel π(1), π(2),..., π(n) minden munkára. A ciklikus listás ütemezés megadható a következ algoritmussal. Az algoritmus a gépeket 0-tól m 1-ig számozza. Az i. munka kezdési id pontját jelöljük x(i)-vel; a h(i) jelölje azt a gépet, amelyen az i. munka ütemezve van; és t(j) jelölje a j. gépen az utolsó munka befejezési idejét Algoritmus. A ciklikus listás ütemezés algoritmusa 1. FOR j := 1 TO m DO t(j) := 0; 2. FOR i := 1 TO n DO 3. BEGIN 4. Ütemezzük az i. munkát a h(i) = i (mod m) gépen 5. x(i) := max{t(h(i)), r i )} id ben 6. t(h(i)) := x(i) END A következ lemma megmutatja, hogy elegend csak a ciklikus listás ütemezést vizsgálni, ha a probléma P p i = 1, r i, d i f alakú az f reguláris célfüggvénnyel Lemma. Legyen f egy reguláris célfüggvény, és tegyük fel, hogy P p i = 1, r i, d i fnek van egy megengedett megoldása. Ekkor mindig létezik ciklikus listás ütemezés ami optimális. Bizonyítás. Meg kell mutatnunk, hogy bármely megengedett megoldást (x(i), h(i)) át lehet alakítani egy lehetséges ciklikus listás ütemezéssé, anélkül, hogy növelnénk a célfüggvény értékét. Egy ilyen transzformáció két lépésben végrehajtható. Az els lépésben meg kell cserélnünk a gépeket, amelyeken a munkák a következ képpen vannak ütemezve. Tekintsük a π permutációt x(π(1)) x(π(2))... x(π(n)) 19

20 Ütemezzük a π(k) munkát a k (mod m) gépen. A megfelel ütemezésben nincs átfedés azonos gépeken lév munkákon. Ez a következ kb l látszik. Feltételezzük, hogy két munka π(i 0 ) és π(i 1 ), ahol i o = jm + k és i 1 = lm + k (l > j) átfed egy I intervallumot. Tudjuk, hogy x(π(i 0 )) x(π(i)) x(π(i 1 )) minden i o i i 1 -re és a megmunkálási id minden munkára egyenl 1-el. Ezért minden π(i) munka (i o i i 1 ) ütemezve van az I intervallumon. Ez ellentmond az (x(i), h(i)) megengedettségének, mert van legalább m + 1 π(i) munka (i o i i 1 ). A második lépésben az új ütemezést átalakítjuk egy listás ütemezéssé, amely ellentmond a π-nek, úgy hogy csökkentjük az összes munka kezdési idejét x(π(i))-t. Ezért a reguláris célfüggvény nem n a transzformáció során. 20

21 3. fejezet Uniform gépes ütemezések 3.1. Q pmtn C max El ször egy ω alsó korlátot adunk a probléma célfüggvény értékére. Majd a második lépésben egy olyan algoritmust adunk, amely ω hosszú ütemezést ad. Legyen P i = p p i és S j = s s j minden i = 1,..., n és j = 1,..., m-re. Tegyük fel, hogy n m. Hogyha n < m csak az n leggyorsabb gépet kell gyelembe vennünk. Ahhoz, hogy összes munkát ütemezzük a [0, T ] intervallumban a következ szükséges feltétel adható: vagy P n = p p n s 1 T s m T = S m T P n /S m T Hasonlóan, P j /S j T -nek is teljesülnie kell minden j = 1,..., m-re, mivel P j /S j egy alacsonyabb korlát az ütemezés hosszára, a J 1,..., J j munkákra nézve. Így az alsó korlát a C max értékére. ω := max{ m max j=1 P j/s j, P n /S m } (3.1) A következ ekben egy olyan ütemezést hozunk létre, ami teljesíti ezt a korlátot. A megfelel algoritmust level algoritmusnak nevezzük, amely kiszámolja a fennmaradó megmunkálási id ket és beosztja a munkákat. Adjunk egy részütemezést a t ideig; a p i (t) a fennmaradó megmunkálási id jelöli, az i munka t id re, a p i azt a részét ami nincs ütemezve t el tt. A t id ben a level algoritmus a folyamatot úgy hívja, hogy assign(t), ami beosztja a munkákat a gépekhez. A gépek ezzel a beosztással futnak, amíg s > t. Az új beosztás kész s-ben, és a folyamat megismétl dik. 21

22 Id intervallumonként különböz munkacsoportokat rendelünk a gépekhez, amit a következ képpen tehetünk meg: Algoritmus. Assign(t) algoritmus 1. J := {i p i (t) > 0}; 2. M := {M 1,..., M m }; 3. Állítsuk be minden munkát J-ben és minden gépet M-ben nem beosztottnak; 4. WHILE vannak nembeosztott munkák és gépek DO 5. BEGIN 6. Keressük meg azt az I J halmazát a munkáknak 7. aminek a legnagyobb a fennmaradó megmunkálási ideje; 8. r := min{ M, I }; 9. Osszuk be az I-ben lév munkákat együttesen ütemezve az M-ben lév 10. r leggyorsabb gépre 11. J := J\I; 12. Távolítsuk el az r leggyorsabb gépet M-b l; 13. END Ha az Assign(t) lefutott, akkor egyrészt meg kell adjuk, hogyan számolható ki a fennmaradó megmunkálási id másrészt, hogy meddig áll fenn ez a csoportbeosztás. Tegyük fel, hogy a j munka az M d, M d+1,..., M d+u gépeken fut, egy k elem csoportban a b id pillanatig (és a egy tetsz leges id pont még a b el tt), ekkor: p j (b) = p j (a) (b a) d+u képlettel számolható a fennmaradó megmunkálási id. k s i i=d A csoportok addig az els s id pillanatig futnak együtt, amíg: (3.2) vagy valamelyik j-re a p j (s) = 0 lesz vagy j, l munkapár: p j (t) > p l (t) de a p l (s) = p j (s) Ekkor s-nél lezárjuk a csoportokat, és s-nél újrakezdjük a beosztást (ha még van pozitív fennmaradó megmunkálási idej munka). A csoportok létrejötte után, a konkrét ütemezést kell elkészíteni. Ha egy [a, b] id intervallumban k munka van egy csoportban, akkor ezt az intervallumot k részre felosztva a munkákat lépcs sen elhelyezve, kapjuk meg az ütemezést Példa. A következ példán keresztül fogom szemléltetni az algoritmus m ködését. Legyen n = 6, m = 2, p(0) = [24, 20, 12, 10, 5, 4] és s = [4, 1]. Ekkor az algoritmus el ször a J 1 munkát fogja kiválasztani, berakja az els gépre, majd pedig a J 2 -t, amit pedig a második gépre, k két külön csoportot alkotnak. Tudjuk, hogy 22

23 addig tart ez a csoport, amíg az egyik 0 nem lesz, vagy pedig az egyik utoléri a másikat. Lesz egy olyan pont, ahol a gyorsabb gépen lév munka fennmaradó megmunkálási ideje egyenl lesz a lassabb gépen futó munkáéval. Ezt az id pontot a következ képpen számolhatjuk ki: 24 4x = 20 x x = 4 3 Tehát 4 id pillanatig fut ez a két csoport, majd új csoportokat kell kiszámolnunk (3.1 3 ábra). Ekkor p(4/3) = [56/3, 56/3, 12, 10, 5, 4]. Ezután az algoritmus a J 1 -et és J 2 - t fogja egy csoportba választani (hiszen k a két legnagyobb fennmaradó megmunkálási id vel rendelkez munkák). Addig futhatnak, amíg az egyik nem lesz 0, vagy nem érnek utol egy másik munkát. Az utóbbi fog bekövetkezni. Ekkor azt kell kiszámolnunk, hogy mi ez az id pillanat amikor ez bekövetkezik. Ezt pedig a (3.2) képlettel számolhatjuk ki ábra. Csoportok létrehozása 56 3 (b 4) = 12 b = 12 3 = 4 Tehát ez a csoport a 4 id pillanatig fut együtt. És így tovább minden csoportot kiszámolunk. p(4) = [12, 12, 12, 10, 5, 4], p(26/5) = [10, 10, 10, 10, 5, 4], p(46/5) = [5, 5, 5, 5, 5, 4], p(51/5) = [4, 4, 4, 4, 4, 4] Végül kiszámoljuk, mikor válnak 0-vá, azaz fejez dnek be a munkák. 4 (b 51 5 ) 5 6 = 0 b = 75 5 = 15 Már csak az marad hátra, hogy elkészítsük az ütemezést, ez pedig a 3.2 ábrán látható. 23

24 3.2. ábra. Ütemezés a létrehozott csoportokkal Tétel. A level algoritmus optimális megoldást ad a Q pmtn C max feladatra. Bizonyítás. Mivel ω := max{ m max j=1 P j/s j, P n /S m } egy alsó korlátja az ütemezés hosszának, elég megmutatni, hogy ez az ütemezés eléri ezt a korlátot. Tegyük fel, hogy a level algoritmus elején p 1 (0) p 2 (0)... p n (0). Ez a sorrend nem változtat meg semmit az algoritmus futása alatt, így: p 1 (t) p 2 (t)... p n (t) minden t-re (3.3) Tegyük fel, hogy az algoritmus mindig ebben a sorrendben osztja be a munkákat a gépekhez. Ahhoz, hogy bizonyítsuk a kívánt tulajdonságot, el ször fel kell tennünk, hogy nincs olyan gép ami áll, miel tt minden munka befejez dne, mondjuk ezt T id nek. Ekkor: T (s s m ) = p 1 + p p n vagy T = P n /S m Így az algoritmussal elértük a ω korlátot. Ha van egy gép, ami áll miel tt az utolsó munka befejez dne, akkor az f 1,..., f m befejezési id kre az M 1,..., M m gépeken: f 1 f 2... f m (3.4) Ha f i < f i+1 valamilyen 1 i m 1-re, az utolsó munka szintje M i -n van ütemezve valamilyen f i ɛ id ben, ahol ɛ > 0 kell en kicsi, kisebb szintje van, mint az utolsó M i+1 - en lév munka szintje ugyanabban az id ben. Ez egy ellentmondás, mivel azt mondtuk, hogy az algoritmus mindig a (3.3) alapján ossza be a munkákat. Ráadásul (3.4)-ben van legalább egy szigorú egyenl tlenség. Tegyük fel, hogy T := f 1 = f 2 =... = f j > f j+1 ahol j < m. Figyeljük meg, hogy ez a j leghosszabb munka végig az r leggyorsabb gépen fut (esetleg más csoportokon), mert ha nem így lenne, akkor az egyik megel zné a másikat, ami tudjuk, hogy nem lehetséges. 24

25 3.2. Q pmtn, r i L max Az alábbi algoritmus A. Federgruen és G. Groenevelt munkája ([9]). El ször azt kell látnunk, hogy a legjobb megoldás a feladatra, egy olyan ütemezés, ahol minden i munka az [r i, d i ] intervallumon van megmunkálva, ahol r i a rendelkezésre állási id, d i pedig a határid. Az ilyen ütemezéseket megengedettnek nevezzük az [r i, d i ]-re vonatkozólag. A második lépésben, bináris keresést alkalmazunk, hogy megoldjuk az általános problémát ábra. Hálózat 3.4. ábra. Hálózat b 25

26 3.5. ábra. Hálózat a A megengedettségi problémát úgy oldjuk meg, hogy visszavezetjük egy hálózati folyam feladatra. Legyen: t 1 < t 2 <... < t r a különböz r j és d i értékek rendezett sorozata, és deniáljuk I K := [t K 1, t K ], ahol T K = t K t K 1 K = 2,..., r-re. Majd terjesszük ki a hálózatot (3.3 ábra), a következ módon. Legyen I K egy tetsz leges invervallum csomópont, mint az 3.3 ábrán, és jelöljük J i1, J i2,..., J is -sel az I K csomópont el deit. Ekkor kicseréljük az alhálózatot (3.5 ábra), amit I K, J i1, J i2,..., J is -sel deniáltunk, a kiterjesztett hálózatra, ami a 3.4 ábrán látszik. Tegyük fel, hogy a gépek nemnövekv sorrendben vannak a sebességük szerint. s 1 s 2... s m Továbbá legyen s m+1 = 0. A kiterjesztett alhálózat úgy épül fel, hogy hozzávesszük az I K, J i1, J i2,..., J is csúcsokhoz a (K, 1), (K, 2),..., (K, m) csúcsokat. Minden j = 1,..., m- re megy él (K, j)-b l I K -ba, j(s j s j+1 )T K kapacitással. Emellett minden ν = 1,..., s-re és j = 1,..., m-re megy él J iν -b l (K, j)-be, (s j s j+1 )T K kapacitással. Minden I K -ra van ilyen kiterjesztés. Továbbá fenntartjuk az éleket s-b l J i -be p i kapacitással, és az éleket I K -ból t-be mt K kapacitással. Az így kapott hálózatot nevezzük kiterjesztett hálózatnak. A következ tétel megmutatja, hogy letudjuk ellen rizni a megengedettséget azzal, hogy megoldjuk a maximális folyam feladatot a kiterjesztett hálózatra Tétel. A következ tulajdonságok ekvivalensek (a) (b) Létezik megengedett ütemezés. A kiterjesztett hálózatban létezik s-b l t-be folyam n p i értékkel. i=1 26

27 Bizonyítás. b a Tekintsünk egy folyamot n p i értékkel a kiterjesztett hálózatra. Jelöljük x ik -val az egész i=1 folyamot ami J i -t l I K -ig megy. Ekkor n r x ik = n p i. Elegend megmutatni azt, hogy i=1 K=2 minden egyes részhalmaz A {1,..., n}-re: x ik T K h(a) Ahol: i A i=1 { S A ha A m h(a) = különben S m Ez azt jelenti, hogy a tétel fennáll, és a futási követelményeket x 1K,..., x nk ütemezni tudjuk I K -ban (K = 2,..., r). Tekintsük a kiterjesztett hálózatban azt az alhálózatot, ami A által indukált, illetve a megfelel részfolyamot. A részfolyam (K, j)-n átmen részére a következ korlát adható: Így: min{j(s j s j+1 )T K, A (s j s j+1 )T K } = T K (s j s j+1 )min{j, A } x ik T K i A m j=1 (s j s j+1 )min{j, A } = T K h(a) (3.5) Az el z egyenl tlenség a következ képpen látható. Ha A > m akkor: m min{j, A }(s j s j+1 ) = s 1 s 2 + 2s 2 2s ms m ms m+1 = S m = h(a) j=1 Különben: m min{j, A }(s j s j+1 ) = j=1 = s 1 s 2 + 2s 2 2s ( A 1)s A 1 ( A 1)s A + +( A )(s A s A +1 + s A s m + s m s m+1 ) = = S A = h(a) a b 27

28 Tegyük fel, hogy létezik megengedett megoldás. Legyen x ik az a munkamennyiség, amelyet az i munka teljesít az I K intervallumban, a megengedett megoldás szerint (i = 1,..., n és K = 2,..., r). Ekkor minden K = 2,..., r-ra és tetsz leges A {1,..., n} halmazokra, az egyenl tlenség fennáll: Továbbá, i = 1,..., n-re p i = r K=2 x ik T K h(a) (3.6) i A x ik, hiszen x ik az I K intervallumban teljesített munka. K=2 Az maradt hátra, hogy megmutassuk, hogy lehetséges olyan folyamot létrehozni a kiterjesztett hálózatba, amelynek értéke x ik, és J i -b l megy I K -ba (i = 1,..., n és K = 2,..., r). Egy elégséges feltétel az ilyen folyam létezésére, hogy tetsz leges A {1,..., n} r halmazra és K = 2,..., r-ra az x ik értéke korlátolt az alhálózatban lév folyam minimális vágásával (ahol a forrás J i (i A) és a nyel I K ). Ez az érték: T k m j=1 min{j, A }(s j s j+1 ) Felhasználva a (3.6) egyenletet és az (3.5) egyenl tlenség jobb oldalát, ezt kapjuk: x ik T K h(a) = T k i A ami teljesíti az egyenl tlenséget. m j=1 min{j, A }(s j s j+1 ) Mivel a maximális folyam a kiterjesztett hálózatban O(mn 3 ) id ben számolható, így a megengedettség vizsgálata is hasonló id ben végezhet. Ahhoz hogy megoldjuk a feladatunkat bináris keresést kell végeznünk. Ez egy ɛ-közelít algoritmust ad, ami O(mn 3 (logn+ log(1/ɛ) + log(max p i )) id ben megoldható, mivel L max korlátja: n max p i, ha s 1 = 1. i i Mivel az (3.6) fenáll minden K-ra, a részmunkákat az x ik 1futási követelménnyel1 ütemezni tudjuk az I K -n egy ismert algorimussal. A Q P MT N, r i C max speciális esete a Q P MT N, r i L max -nak, így biztosan megtudjuk oldani, de Labetoulle, Lawler, Lenstra és Rinnoy Kan kifejlesztettek egy O(nlogm + mn)-algoritmust erre a speciális esetre Q C i Tegyük fel, hogy i 1, i 2,..., i r azon munkák sorrendje, amelyek az M j gépen vannak ütemezve. Ekkor ezen munkák hozzájárulása a célfüggvényhez az M j gépen: p i1 r s j + p i2 r 1 s j p ir 1 s j 28

29 Ez azt jelenti, hogy egy optimális ütemezésben a munkák az M j gépen p i szerint nemcsökken sorrendben vannak rendezve. Ahhoz, hogy találjuk egy optimális megoldást a következ ket kell tennünk. Legyen t 1,..., t n nemcsökken sorrendje az n legkisebb számnak amiket az { 1 s 1, 1 1 s 2,..., s m, 2 s 1, 2 2 s 2,..., s m, 3 s 1,...} halmazból választunk. Ha t i = k s j akkor ütemezzük az i munkát az M j gépen, úgy mint a k. utolsó munka, mivel feltesszük, hogy p 1 p 2... p n. Ezek az ötletek a következ algoritmushoz vezetnek, jelöljük Π j -vel azon munkák sorrendjét, amelyek jelenleg ütemezve vannak az M j gépen (j = 1,..., m) Algoritmus. Algoritmus Q C i 1. FOR j = 1 TO m DO 2. BEGIN Π j := ; w j := 1 s j END; 3. FOR i := 1 TO n DO 4. BEGIN 5. Keressük meg a legnagyobb j indexet amelyre w j := m min ν=1 w ν; 6. Π j := i Π j ; 7. w j := w j + 1 s j 8. END Az algoritmus befejeztével kapott Π j sorozatok megmutatják, hogy melyik gépen milyen sorrendben kell a munkákat ütemezni. Ezáltal könnyen elkészíthetjük az ütemezést. Minden minimális w érték kiszámítható O(logn) lépésben ha használjuk a priority sort. Így, az egész O(nlogm) id ben számolhatjuk, ha a p i -k rendezve vannak Példa. A 3.6 ábrán látható feladatot vizsgáljuk. Az algoritmus els két lépésében a Π j -ket üressé tesszük, hiszen kezdetben egyik munka sincs ütemezve. Emellett kiszámoljuk a w j értékeket, ami w 1 = 2, w 2 = 1, w 3 = 1/2. Ezután belépünk a második FOR ciklusba. El ször i = 1 (a munkák a megmunkálási id alapján nemnövekv sorrendben vannak), a j = 3 lesz a legnagyobb olyan index amelyre w j := m min ν=1 w ν teljesül. Ekkor Π 3 = 1 és w 3 = 1. Ezután j = 2-re ugyanezt megnézzük; itt szintén j = 3 lesz a jó, ezért Π 3 = 2,1 és w 3 = 1.5. Majd i = 3-ra j = 2 lesz a megfelel, így Π 2 = 3 és w 2 = 2. Ezt követ en i = 4-re j = 3, tehát Π 3 = 4,2,1, w 3 = 2. Végül i = 5-re is a j = 3 lesz a megfelel, így az utolsó munka is a helyére kerül: Π 3 = 5,4,2,1 (az ütemezés 3.6 ábrán megtekinthet ) Q pmtn C i A következ algoritmus 4 ember nevéhez kapcsolódik: J. Labetoulle, E.L. Lawler, J.K. Lenstra, A.H.G. Rinnooy Kan ([7]). Ahhoz, hogy megoldjuk ezt a feladatot, az SPT szabály egy változatát kell alkalmaznunk. Rendezzük a munkákat p i szerint nemcsökken sorrendbe, és ütemezzük minden egyes 29

30 3.6. ábra. Példa Q C i munkát megszakításokkal, hogy minimalizáljuk a befejezési id t. Azaz, ütemezzük az n munkát a leggyorsabb M 1 gépen, addig amíg t 1 = p n /s 1. Majd ütemezzük az n 1 munkát els ként az M 2 gépen t 1 -ig, majd az M 1 gépen t 1 -t l t 2 t 1 amíg kész nem lesz. Az n 2 munkát ütemezzük az M 3 gépen t 1 majd az M 2 gépen t 2 t 1 -ig, és M 1 gépen t 2 -t l t 3 t 2 -ig amíg kész nem lesz, stb. Vegyük észre a példában a lépcs s mintát (3.7) Példa. m = 3 s 1 = 3 s 2 = 2 s 3 = 1 n = 4 p 1 = 10 p 2 = 8 p 3 = 8 p 4 = 3 Cj = ábra. Példa Q pmtn C i A fenti leírás a következ algoritmust adja, ami egyidej leg tölti fel a gépeket egyik periódus után a másikat Algoritmus. Algoritmus Q pmtn C i 1. a := 0; 2. WHILE p 1 > 0 DO 3. BEGIN 4. Keressük meg a legnagyobb i indexet, p i > 0; 5. t := p i /s 1 ; 6. FOR ν := i DOWN TO k := max{1, i m + 1} DO 7. BEGIN 8. Ütemezzük a ν munkát az M 1+i ν gépen az [a, a + t] intervallumban; 30

31 9. p ν := p ν t s 1+i ν 10. END 11. a := a + t 12. END 3.5. Q p i = 1 f i és Q p i = 1 f max A következ algoritmus Graham, Lawler, Lenstra, Rinnooy Kan munkássága ([10]). Ebben a részben, azt a problémát gondoljuk meg, amikor n egység megmunkálási idej munkát ütemezünk m uniform gépen, s 1, s 2,..., s m sebeséggel. A célfüggvény n i=1 f i (C i ) n és max f i(c i ), ahol f i (C i ) monoton nemcsökken függvény, ami az i. munka C i befejezési i=1 idejét l függ. Ez a két probléma megoldható polinomális id ben. El ször is gyeljük meg, hogy létezik optimális megoldás, amelyben a munkák id intervallumokban fejez dnek be, az n legkorábbi lehetséges befejezési id kkel. Ezeket a befejezési id ket O(n logn) id ben generálhatjuk. Készítsünk egy növekv sorozatot 1/s j (j = 1,..., m) befejezési id kkel és általános lépésként, töröljük a legkisebb befejezési id t a sorból. Ha a legkisebb befejezési id a k/s j akkor (k + 1)/s j -t beszúrjuk a sorba. Ezáltal megkapjuk az n legkorábbi lehetséges befejezési id ket Példa. 5 db egységnyi idej munkánk van, és 4 db gépünk (s 1 = 2, s 2 = 1/2, s 3 = 1, s 4 = 3) sebességekkel. Ekkor beírjuk minden gépre, a lehetséges befejezési id ket, ahogy a 3.8 ábrán látszik. Majdpedig az algoritmus alapján, kiszámoljuk az 1/s j (j = 1,..., m) értékeket. Ez 1/3, 1/2, 1, 2 (növekv sorrendben). Ekkor töröljük a legkisebbet (1/3) és betesszük a sorba a 2/3-ot. A következ legkisebb az 1/2, helyére jön az 1. A következ legkisebb a 2/3, helyére jön az 1. Most már 1, 1, 1, 2 a sorunk. Ekkor eldönthetjük, hogy melyik egyes kerüljön ki. Így megkaptuk az 5 legkorábbi lehetséges befejezési id t ábra. Példa Q p i = 1 f i (C i ) Legyen t 1,..., t n az n legkisebb befejezési id nemcsökken sorrendben. 31

32 A Q p i = 1 f i egy optimális megoldását úgy kaphatjuk meg, ha megoldunk egy n n-es minimális súlyú teljes párosítás feladatot, ahol az élek súlya c ik = f i (t k ) (i, k = 1,..., n). Ez O(n 3 ) id ben megoldható. Ahhoz hogy megoldjuk a Q p i = 1 f max feladatot ([10]), a következ algoritmust használhatjuk Algoritmus. Algoritmus Q p i = 1 f max 1. J := {1,..., n} 2. FOR i := n DOWN TO 1 DO 3. BEGIN 4. Keressük meg azt a j J munkát, amelyre f j (t i ) minimális; 5. Ütemezzük a j munkát, hogy befejez djön a t i -ben; 6. J := J \{j} 7. END Van pár speciális eset, amit gyorsabban meg tudunk oldani. Például a Q p i = 1 w i C i megoldható úgy, hogy hozzárendeljük a k. legnagyobb súlyú munkát a t k -hoz. A Q p i = 1 L max pedig megoldható egy párosítással, hogy a k. legkisebb határid t rendeljük a t k - hoz. Ezek megoldhatóak O(n logn) id ben. 32

33 4. fejezet Független gépes ütemezések 4.1. R pmtn C max, R pmtn L max, R pmtn, r i L max Az R pmtn C max feladatot két lépésben oldjuk meg. Az els lépésben megfogalmazunk egy lineáris programozási feladatot, hogy kiszámoljuk minden i munkára és j gépre, az id k összegét t ij -t, ami az i munka a j gépen töltött ideje egy optimális ütemezésben. A második lépésben konstruáljuk a megfelel ütemezést. El ször adjuk meg a lineáris programozási formulát. Az R pmtn C max meghatározott a p ij egész számokkal amib l nm darab van, és megmutatja az i munka teljes megmunkálási idejét az M j gépen. Legyen t ij az i munka megmunkálási idejének azon része, amelyet M j - n ütemezünk. Ekkor t ij /p ij az a részid, amelyet az i munka a j gépen tölt, és a következ egyenl ségnek fenn kell állnia, annak érdekében, hogy az i munka befejez djön. Így megkapjuk az LP feladatunkat: m i=1 t ij p ij = 1 minc max m t ij = 1, p ij i = 1,..., n (4.1) m t ij C max, i = 1,..., n (4.2) i=1 j=1 m t ij C max, j = 1,..., m (4.3) i=1 t ij 0, i = 1,..., n; j = 1,..., m. 33

34 Az (4.2) baloldala azt mondja meg, hogy az i munka mennyi id t töltött el az összes gépen. Az (4.3) bal oldala az M j gépen ütemezett munkák megmunkálási idejének összegét mutatja meg. Jegyezzük meg, hogy egy optimális megoldás erre a lineáris programozási feladatra: C max = max{ n max i=1 m t ij, j=1 m max j=1 n t ij } (4.4) Megtalálni egy megfelel ütemezést, ekvivalens azzal, hogy megtaláljuk a megoldását, egy O pmtn C max feladatnak, a t ij megmunkálási id kkel (i = 1,..., n, j = 1,..., m) Tétel. Az O pmtn C max megoldható polinomiális algoritmussal Következmény. Az tétel alapján, és a korábbi megjegyzésünk miatt az R pmtn C max is megoldható polinomiális id ben. Hasonlóan oldjuk meg az R pmtn L max -ot. Megadunk egy lineáris programozási feladatot, hogy minimalizáljuk L max -ot. Tegyük fel, hogy a munkák nemcsökken határid szerint vannak rendezve: i=1 d 1 d 2... d n Legyen t (1) ij az az összes id, amelyet M j gép az i munkával tölt, az I 1 = [0, d 1 + L max ] intervallumon. Továbbá, k = 2,..., n, legyen t (k) ij az az összes id, amelyet M j gép az i munkával tölt, az I k = [d k 1 + L max, d k + L max ] intervallumon. Ekkor a következ LPfeladatot kell megoldanunk: m i=1 i k=1 m j=1 m j=1 n i=1 n i=k minl max t (k) ij p ij = 1, i = 1,..., n t (1) ij d 1 + L max, i = 1,..., n t (k) ij d k d k 1, i = 1,..., n; k = 2,..., n t (1) ij d 1 + L max, j = 1,..., m t (k) ij d k d k 1, j = 1,..., m; k = 2,..., n t (k) ij 0, i, k = 1,..., n; j = 1,..., m. 34

35 Az LP-feladatra egy optimális megoldást adva, az L max -optimális ütemezése kapható azáltal, hogy minden id intervallumra I k (k = 1,..., n) egy megfelel ütemezést konstruálunk az adatokkal, amelyeket a T k = (t (k) ij ) mátrix ad. Tehát ez a feladat is polinomiális id ben megoldható. Hasonló módon oldhatjuk meg a R pmtn, r i L max feladatot, ami a következ ember nevéhez f z dik: E.L. Lawler, J. Labetoulle ([8]). Legyenek a [t k, t k+1 ] intervallumok, ahol t 1 < t 2 <... < t r rendezett sorrendje az r i és d i + L max értékeknek. Ebben az esetben, a változók t (k) ij L max, ahol t (k) ij az i munka M j gépen töltött ideje a [t k, t k+1 ] intervallumon. és 35

36 Irodalomjegyzék [1] R.Gary Parker, Deterministic scheduling theory, Chapman & Hall, 1995, és [2] Jordán Tibor, Recski András, Szeszlér Dávid, Rendszeroptimalizálás, Typotex, 2004 [3] Peter Brucker Scheduling Algorithms, Springer, 1995, oldal [4] E.G. Coman, Jr. and R.L. Graham, Optimal Scheduling for Two-Processor Systems, Acta Informatica, 1972, [5] R.L. Graham, Bounds on multiprocessing timing anomalies, 1969, [6] Coman, Jr., E.G. (ed.) Computer & Job/Shop Scheduling Theory, 1976 [7] J. Labetoulle, E.L. Lawler, J.K. Lenstra, A.H.G. Rinnooy Kan Preemptive scheduling of uniform machines subject to release dates, in Progress in combinatorial optimization, Academic Press, 1984, [8] E.L. Lawler, J. Labetoulle On preemptive scheduling of unrelated parallel processors by linear programming, 1978 [9] A. Federgruen, G. Groenevelt Preemptive scheduling of uniform machines by ordinary network ow techniques, Management Sci., 1986, [10] R.L. Graham, E.L. Lawler, J.K. Lenstra, A.H.G. Rinnooy Kan Optimization and approximation in deterministic sequencing and scheduling, 1979, [11] R.L. Graham Combinatorial scheduling theory, Springer,

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

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

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék 2016/17 2. félév 5. Előadás Dr. Kulcsár Gyula egyetemi docens Tartalom 1. Párhuzamosan

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

Ütemezési modellek. Az ütemezési problémák osztályozása

Ütemezési modellek. Az ütemezési problémák osztályozása Ütemezési modellek Az ütemezési problémák osztályozása Az ütemezési problémákban adott m darab gép és n számú munka, amelyeket az 1,..., n számokkal fogunk sorszámozni. A feladat az, hogy ütemezzük az

Részletesebben

Bevezetés. 1. fejezet. Algebrai feladatok. Feladatok

Bevezetés. 1. fejezet. Algebrai feladatok. Feladatok . fejezet Bevezetés Algebrai feladatok J. A számok gyakran használt halmazaira a következ jelöléseket vezetjük be: N a nemnegatív egész számok, N + a pozitív egész számok, Z az egész számok, Q a racionális

Részletesebben

Függvények július 13. f(x) = 1 x+x 2 f() = 1 ()+() 2 f(f(x)) = 1 (1 x+x 2 )+(1 x+x 2 ) 2 Rendezés után kapjuk, hogy:

Függvények július 13. f(x) = 1 x+x 2 f() = 1 ()+() 2 f(f(x)) = 1 (1 x+x 2 )+(1 x+x 2 ) 2 Rendezés után kapjuk, hogy: Függvények 015. július 1. 1. Feladat: Határozza meg a következ összetett függvényeket! f(x) = cos x + x g(x) = x f(g(x)) =? g(f(x)) =? Megoldás: Összetett függvény el állításához a küls függvényben a független

Részletesebben

1. A k-szerver probléma

1. A k-szerver probléma 1. A k-szerver probléma Az egyik legismertebb on-line probléma a k-szerver probléma. A probléma általános deníciójának megadásához szükség van a metrikus tér fogalmára. Egy (M, d) párost, ahol M a metrikus

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

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

MBNK12: Permutációk (el adásvázlat, április 11.) Maróti Miklós

MBNK12: Permutációk (el adásvázlat, április 11.) Maróti Miklós MBNK12: Permutációk el adásvázlat 2016 április 11 Maróti Miklós 1 Deníció Az A halmaz permutációin a π : A A bijektív leképezéseket értjünk Tetsz leges n pozitív egészre az {1 n} halmaz összes permutációinak

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

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

Online migrációs ütemezési modellek

Online migrációs ütemezési modellek Online migrációs ütemezési modellek Az online migrációs modellekben a régebben ütemezett munkák is átütemezhetőek valamilyen korlátozott mértékben az új munka ütemezése mellett. Ez csökkentheti a versenyképességi

Részletesebben

Ütemezési problémák. Kis Tamás 1. ELTE Problémamegoldó Szeminárium, ősz 1 MTA SZTAKI. valamint ELTE, Operációkutatási Tanszék

Ütemezési problémák. Kis Tamás 1. ELTE Problémamegoldó Szeminárium, ősz 1 MTA SZTAKI. valamint ELTE, Operációkutatási Tanszék Ütemezési problémák Kis Tamás 1 1 MTA SZTAKI valamint ELTE, Operációkutatási Tanszék ELTE Problémamegoldó Szeminárium, 2012. ősz Kivonat Alapfogalmak Mit is értünk ütemezésen? Gépütemezés 1 L max 1 rm

Részletesebben

KOVÁCS BÉLA, MATEMATIKA I.

KOVÁCS BÉLA, MATEMATIKA I. KOVÁCS BÉLA, MATEmATIkA I. 4 IV. FÜGGVÉNYEk 1. LEkÉPEZÉSEk, függvények Definíció Legyen és két halmaz. Egy függvény -ből -ba egy olyan szabály, amely minden elemhez pontosan egy elemet rendel hozzá. Az

Részletesebben

Opkut deníciók és tételek

Opkut deníciók és tételek Opkut deníciók és tételek Készítette: Bán József Deníciók 1. Deníció (Lineáris programozási feladat). Keressük meg adott lineáris, R n értelmezési tartományú függvény, az ún. célfüggvény széls értékét

Részletesebben

1. Online kiszolgálóelhelyezés

1. Online kiszolgálóelhelyezés 1. Online kiszolgálóelhelyezés A probléma általános deníciójának megadásához szükség van a metrikus tér fogalmára. Egy (M, d) párost, ahol M a metrikus tér pontjait tartalmazza, d pedig az M M halmazon

Részletesebben

Permutációk véges halmazon (el adásvázlat, február 12.)

Permutációk véges halmazon (el adásvázlat, február 12.) Permutációk véges halmazon el adásvázlat 2008 február 12 Maróti Miklós Ennek az el adásnak a megértéséhez a következ fogalmakat kell tudni: ismétlés nélküli variáció leképezés indulási és érkezési halmaz

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

Ütemezési feladatok. Az ütemezési feladatok vizsgálata az 50-es évek elején kezdődött, majd

Ütemezési feladatok. Az ütemezési feladatok vizsgálata az 50-es évek elején kezdődött, majd 1 Ütemezési feladatok Az ütemezési feladatok vizsgálata az 50-es évek elején kezdődött, majd tekintettel a feladat gyakorlati fontosságára sok különböző modell tanulmányozására került sor, és a témakör

Részletesebben

ZH feladatok megoldásai

ZH feladatok megoldásai ZH feladatok megoldásai A CSOPORT 5. Írja le, hogy milyen szabályokat tartalmazhatnak az egyes Chomskynyelvosztályok (03 típusú nyelvek)! (4 pont) 3. típusú, vagy reguláris nyelvek szabályai A ab, A a

Részletesebben

Haladók III. kategória 2. (dönt ) forduló

Haladók III. kategória 2. (dönt ) forduló Haladók III. kategória 2. (dönt ) forduló 1. Tetsz leges n pozitív egész számra jelölje f (n) az olyan 2n-jegy számok számát, amelyek megegyeznek az utolsó n számjegyükb l alkotott szám négyzetével. Határozzuk

Részletesebben

Sorozatok és Sorozatok és / 18

Sorozatok és Sorozatok és / 18 Sorozatok 2015.11.30. és 2015.12.02. Sorozatok 2015.11.30. és 2015.12.02. 1 / 18 Tartalom 1 Sorozatok alapfogalmai 2 Sorozatok jellemz i 3 Sorozatok határértéke 4 Konvergencia és korlátosság 5 Cauchy-féle

Részletesebben

Korlátozás és szétválasztás elve. ADAGOLO adattípus

Korlátozás és szétválasztás elve. ADAGOLO adattípus Korlátozás és szétválasztás elve ADAGOLO adattípus Értékhalmaz: E Adagolo : A E Műveletek: A : Adagolo, x : E {Igaz} Letesit(A) {A = /0} {A = A} Megszuntet(A) {Igaz} {A = A} Uresit(A) {A = /0} {A = A}

Részletesebben

Egészrészes feladatok

Egészrészes feladatok Kitűzött feladatok Egészrészes feladatok Győry Ákos Miskolc, Földes Ferenc Gimnázium 1. feladat. Oldjuk meg a valós számok halmazán a { } 3x 1 x+1 7 egyenletet!. feladat. Bizonyítsuk be, hogy tetszőleges

Részletesebben

Taylor-polinomok. 1. Alapfeladatok. 2015. április 11. 1. Feladat: Írjuk fel az f(x) = e 2x függvény másodfokú Maclaurinpolinomját!

Taylor-polinomok. 1. Alapfeladatok. 2015. április 11. 1. Feladat: Írjuk fel az f(x) = e 2x függvény másodfokú Maclaurinpolinomját! Taylor-polinomok 205. április.. Alapfeladatok. Feladat: Írjuk fel az fx) = e 2x függvény másodfokú Maclaurinpolinomját! Megoldás: A feladatot kétféle úton is megoldjuk. Az els megoldásban induljunk el

Részletesebben

Ütemezési Gyakorlatok

Ütemezési Gyakorlatok Ütemezési Gyakorlatok Szakdolgozat Irta: Naszádos Áron Matematika Bsc, Elemző matematikus szakirány Témavezető: Jordán Tibor egyetemi tanár Operációkutatási tanszék Eötvös Loránd Tudományegyetem Természettudományi

Részletesebben

0,424 0,576. f) P (X 2 = 3) g) P (X 3 = 1) h) P (X 4 = 1 vagy 2 X 2 = 2) i) P (X 7 = 3, X 4 = 1, X 2 = 2 X 0 = 2) j) P (X 7 = 3, X 4 = 1, X 2 = 2)

0,424 0,576. f) P (X 2 = 3) g) P (X 3 = 1) h) P (X 4 = 1 vagy 2 X 2 = 2) i) P (X 7 = 3, X 4 = 1, X 2 = 2 X 0 = 2) j) P (X 7 = 3, X 4 = 1, X 2 = 2) Legyen adott a P átmenetvalószín ség mátrix és a ϕ 0 kezdeti eloszlás Kérdés, hogy miként lehetne meghatározni az egyes állapotokban való tartózkodás valószín ségét az n-edik lépés múlva Deniáljuk az n-lépéses

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

Chomsky-féle hierarchia

Chomsky-féle hierarchia http://www.cs.ubbcluj.ro/~kasa/formalis.html Chomsky-féle hierarchia G = (N, T, P, S) nyelvtan: 0-s típusú (általános vagy mondatszerkezet ), ha semmilyen megkötést nem teszünk a helyettesítési szabályaira.

Részletesebben

Megoldott feladatok november 30. n+3 szigorúan monoton csökken, 5. n+3. lim a n = lim. n+3 = 2n+3 n+4 2n+1

Megoldott feladatok november 30. n+3 szigorúan monoton csökken, 5. n+3. lim a n = lim. n+3 = 2n+3 n+4 2n+1 Megoldott feladatok 00. november 0.. Feladat: Vizsgáljuk az a n = n+ n+ sorozat monotonitását, korlátosságát és konvergenciáját. Konvergencia esetén számítsuk ki a határértéket! : a n = n+ n+ = n+ n+ =

Részletesebben

DiMat II Végtelen halmazok

DiMat II Végtelen halmazok DiMat II Végtelen halmazok Czirbusz Sándor 2014. február 16. 1. fejezet A kiválasztási axióma. Ismétlés. 1. Deníció (Kiválasztási függvény) Legyen {X i, i I} nemüres halmazok egy indexelt családja. Egy

Részletesebben

5. Előadás. (5. előadás) Mátrixegyenlet, Mátrix inverze március 6. 1 / 39

5. Előadás. (5. előadás) Mátrixegyenlet, Mátrix inverze március 6. 1 / 39 5. Előadás (5. előadás) Mátrixegyenlet, Mátrix inverze 2019. március 6. 1 / 39 AX = B (5. előadás) Mátrixegyenlet, Mátrix inverze 2019. március 6. 2 / 39 AX = B Probléma. Legyen A (m n)-es és B (m l)-es

Részletesebben

út hosszát. Ha a két várost nem köti össze út, akkor legyen c ij = W, ahol W már az előzőekben is alkalmazott megfelelően nagy szám.

út hosszát. Ha a két várost nem köti össze út, akkor legyen c ij = W, ahol W már az előzőekben is alkalmazott megfelelően nagy szám. 1 Az utazó ügynök problémája Utazó ügynök feladat Adott n számú város és a városokat összekötő utak, amelyeknek ismert a hossza. Adott továbbá egy ügynök, akinek adott városból kiindulva, minden várost

Részletesebben

5 = hiszen és az utóbbi mátrix determinánsa a középs½o oszlop szerint kifejtve: 3 7 ( 2) = (példa vége). 7 5 = 8. det 6.

5 = hiszen és az utóbbi mátrix determinánsa a középs½o oszlop szerint kifejtve: 3 7 ( 2) = (példa vége). 7 5 = 8. det 6. A pivotálás hasznáról és hatékony módjáról Adott M mátrixra pivotálás alatt a következ½ot értjük: Kijelölünk a mátrixban egy nemnulla elemet, melynek neve pivotelem, aztán az egész sort leosztjuk a pivotelemmel.

Részletesebben

Véletlen jelenség: okok rendszere hozza létre - nem ismerhetjük mind, ezért sztochasztikus.

Véletlen jelenség: okok rendszere hozza létre - nem ismerhetjük mind, ezért sztochasztikus. Valószín ségelméleti és matematikai statisztikai alapfogalmak összefoglalása (Kemény Sándor - Deák András: Mérések tervezése és eredményeik értékelése, kivonat) Véletlen jelenség: okok rendszere hozza

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

KOVÁCS BÉLA, MATEMATIKA I.

KOVÁCS BÉLA, MATEMATIKA I. KOVÁCS BÉLA, MATEmATIkA I. 3 III. MEGFELELTETÉSEk, RELÁCIÓk 1. BEVEZETÉS Emlékeztetünk arra, hogy az rendezett párok halmazát az és halmazok Descartes-féle szorzatának nevezzük. Más szóval az és halmazok

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

Arany Dániel Matematikai Tanulóverseny 2017/2018-as tanév 2. forduló Haladók II. kategória

Arany Dániel Matematikai Tanulóverseny 2017/2018-as tanév 2. forduló Haladók II. kategória Bolyai János Matematikai Társulat Arany Dániel Matematikai Tanulóverseny 017/018-as tanév. forduló Haladók II. kategória Megoldások és javítási útmutató 1. Egy tanár kijavította egy 1 f s csoport dolgozatait.

Részletesebben

Relációk. 1. Descartes-szorzat. 2. Relációk

Relációk. 1. Descartes-szorzat. 2. Relációk Relációk Descartes-szorzat. Relációk szorzata, inverze. Relációk tulajdonságai. Ekvivalenciareláció, osztályozás. Részbenrendezés, Hasse-diagram. 1. Descartes-szorzat 1. Deníció. Tetsz leges két a, b objektum

Részletesebben

Diszkrét matematika 2.

Diszkrét matematika 2. Diszkrét matematika 2. 2018. szeptember 21. 1. Diszkrét matematika 2. 2. előadás Fancsali Szabolcs Levente nudniq@cs.elte.hu www.cs.elte.hu/ nudniq Komputeralgebra Tanszék 2018. szeptember 21. Gráfelmélet

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

Diszkrét matematika I.

Diszkrét matematika I. Diszkrét matematika I. középszint 2014. ősz 1. Diszkrét matematika I. középszint 3. előadás Mérai László diái alapján Komputeralgebra Tanszék 2014. ősz Relációk Diszkrét matematika I. középszint 2014.

Részletesebben

Alap fatranszformátorok II

Alap fatranszformátorok II Alap fatranszformátorok II Vágvölgyi Sándor Fülöp Zoltán és Vágvölgyi Sándor [2, 3] közös eredményeit ismertetjük. Fogalmak, jelölések A Σ feletti alaptermek TA = (T Σ, Σ) Σ algebráját tekintjük. Minden

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

: s s t 2 s t. m m m. e f e f. a a ab a b c. a c b ac. 5. Végezzük el a kijelölt m veleteket a változók lehetséges értékei mellett!

: s s t 2 s t. m m m. e f e f. a a ab a b c. a c b ac. 5. Végezzük el a kijelölt m veleteket a változók lehetséges értékei mellett! nomosztással a megoldást visszavezethetjük egy alacsonyabb fokú egyenlet megoldására Mivel a 4 6 8 6 egyenletben az együtthatók összege 6 8 6 ezért az egyenletnek gyöke az (mert esetén a kifejezés helyettesítési

Részletesebben

1. feladat Az egyensúly algoritmus viselkedése: Tekintsük a kétdimenziós Euklideszi teret, mint metrikus teret. A pontok

1. feladat Az egyensúly algoritmus viselkedése: Tekintsük a kétdimenziós Euklideszi teret, mint metrikus teret. A pontok 1. feladat Az egyensúly algoritmus viselkedése: Tekintsük a kétdimenziós Euklideszi teret, mint metrikus teret. A pontok (x, y) valós számpárokból állnak, két (a, b) és (c, d) pontnak a távolsága (a c)

Részletesebben

Végeselem modellezés alapjai 1. óra

Végeselem modellezés alapjai 1. óra Végeselem modellezés alapjai. óra Gyenge alak, Tesztfüggvény, Lagrange-féle alakfüggvény, Stiness mátrix Kivonat Az óra célja, hogy megismertesse a végeselem módszer (FEM) alkalmazását egy egyszer probléma,

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

KOVÁCS BÉLA, MATEMATIKA I.

KOVÁCS BÉLA, MATEMATIKA I. KOVÁCS BÉLA, MATEmATIkA I 5 V ELEmI ALGEbRA 1 BINÁRIS műveletek Definíció Az halmazon definiált bináris művelet egy olyan függvény, amely -ből képez -be Ha akkor az elempár képét jelöljük -vel, a művelet

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

Programkonstrukciók A programkonstrukciók programfüggvényei Levezetési szabályok. 6. előadás. Programozás-elmélet. Programozás-elmélet 6.

Programkonstrukciók A programkonstrukciók programfüggvényei Levezetési szabályok. 6. előadás. Programozás-elmélet. Programozás-elmélet 6. Programkonstrukciók Definíció Legyen π feltétel és S program A-n. A DO A A relációt az S-ből a π feltétellel képezett ciklusnak nevezzük, és (π, S)-sel jelöljük, ha 1. a / [π] : DO (a) = { a }, 2. a [π]

Részletesebben

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.C szakirány Diszkrét matematika 2.C szakirány 2017. tavasz 1. Diszkrét matematika 2.C szakirány 11. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék

Részletesebben

Matematikai és matematikai statisztikai alapismeretek

Matematikai és matematikai statisztikai alapismeretek Kézirat a Matematikai és matematikai statisztikai alapismeretek című előadáshoz Dr. Győri István NEVELÉSTUDOMÁNYI PH.D. PROGRM 1999/2000 1 1. MTEMTIKI LPOGLMK 1.1. Halmazok Halmazon mindig bizonyos dolgok

Részletesebben

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 13.

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

Részletesebben

Konjugált gradiens módszer

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

Részletesebben

Analízisfeladat-gyűjtemény IV.

Analízisfeladat-gyűjtemény IV. Oktatási segédanyag a Programtervező matematikus szak Analízis. című tantárgyához (003 004. tanév tavaszi félév) Analízisfeladat-gyűjtemény IV. (Függvények határértéke és folytonossága) Összeállította

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

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

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

Részletesebben

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.C szakirány Diszkrét matematika 2.C szakirány 2017. ősz 1. Diszkrét matematika 2.C szakirány 2. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék 2017.

Részletesebben

A Markowitz modell: kvadratikus programozás

A Markowitz modell: kvadratikus programozás A Markowitz modell: kvadratikus programozás Harry Markowitz 1990-ben kapott Közgazdasági Nobel díjat a portfolió optimalizálási modelljéért. Ld. http://en.wikipedia.org/wiki/harry_markowitz Ennek a legegyszer

Részletesebben

(x 5) 5 = y 5 (1) 4 x = y (2) Helyettesítsük be az els egyenletbe a második alapján y helyére 4 x-et. Így (x 5) 5 = 4 x 5 adódik.

(x 5) 5 = y 5 (1) 4 x = y (2) Helyettesítsük be az els egyenletbe a második alapján y helyére 4 x-et. Így (x 5) 5 = 4 x 5 adódik. C1. A nagymamám azt gondolja, hogy egyre atalabb, hiszen 5 éve ötször annyi id s volt, mint én akkor, most pedig csak négyszer annyi id s, mint én most. a) Hány éves a nagymamám? b) Hány év múlva lesz

Részletesebben

Függvények folytonosságával kapcsolatos tételek és ellenpéldák

Függvények folytonosságával kapcsolatos tételek és ellenpéldák Eötvös Loránd Tudományegyetem Természettudományi Kar Függvények folytonosságával kapcsolatos tételek és ellenpéldák BSc Szakdolgozat Készítette: Nagy-Lutz Zsaklin Matematika BSc, Matematikai elemz szakirány

Részletesebben

Bázistranszformáció és alkalmazásai

Bázistranszformáció és alkalmazásai Bázistranszformáció és alkalmazásai Lineáris algebra gyakorlat Összeállította: Bogya Norbert Tartalomjegyzék 1 Elmélet Gyakorlati végrehajtás 2 Vektor bevitele a bázisba Rangszámítás Lineáris egyenletrendszer

Részletesebben

Algoritmuselmélet 2. előadás

Algoritmuselmélet 2. előadás Algoritmuselmélet 2. 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 12. ALGORITMUSELMÉLET 2. ELŐADÁS 1 Buborék-rendezés

Részletesebben

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

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

Részletesebben

Véletlen bolyongás. Márkus László március 17. Márkus László Véletlen bolyongás március / 31

Véletlen bolyongás. Márkus László március 17. Márkus László Véletlen bolyongás március / 31 Márkus László Véletlen bolyongás 2015. március 17. 1 / 31 Véletlen bolyongás Márkus László 2015. március 17. Modell Deníció Márkus László Véletlen bolyongás 2015. március 17. 2 / 31 Modell: Egy egyenesen

Részletesebben

Országos Középiskolai Tanulmányi Verseny 2009/2010 Matematika I. kategória (SZAKKÖZÉPISKOLA) 2. forduló feladatainak megoldása

Országos Középiskolai Tanulmányi Verseny 2009/2010 Matematika I. kategória (SZAKKÖZÉPISKOLA) 2. forduló feladatainak megoldása Oktatási Hivatal Országos Középiskolai Tanulmányi Verseny / Matematika I. kategória (SZAKKÖZÉPISKOLA) 2. forduló feladatainak megoldása. Oldja meg a valós számok legbővebb részhalmazán a egyenlőtlenséget!

Részletesebben

Hálózati Folyamok Alkalmazásai. Mályusz Levente BME Építéskivitelezési és Szervezési Tanszék

Hálózati Folyamok Alkalmazásai. Mályusz Levente BME Építéskivitelezési és Szervezési Tanszék Hálózati Folyamok Alkalmazásai Mályusz Levente BME Építéskivitelezési és Szervezési Tanszék Maximális folyam 7 7 9 3 2 7 source 8 4 7 sink 7 2 9 7 5 7 6 Maximális folyam feladat Adott [N, A] digráf (irányított

Részletesebben

Gráfelméleti modell alkalmazása épít ipari kivitelezés ütemezésére

Gráfelméleti modell alkalmazása épít ipari kivitelezés ütemezésére Tamaga István Gráfelméleti modell alkalmazása épít ipari kivitelezés ütemezésére modell Készítsük el egy épít ipari kivitelezés gráfelméleti modelljét! Ekkor a kivitelezést megfeleltetjük egy gráfnak,

Részletesebben

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

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

Részletesebben

7. gyakorlat. Lineáris algebrai egyenletrendszerek megoldhatósága

7. gyakorlat. Lineáris algebrai egyenletrendszerek megoldhatósága 7. gyakorlat Lineáris algebrai egyenletrendszerek megoldhatósága Egy lineáris algebrai egyenletrendszerrel kapcsolatban a következ kérdések merülnek fel: 1. Létezik-e megoldása? 2. Ha igen, hány megoldása

Részletesebben

1. Példa. A gamma függvény és a Fubini-tétel.

1. Példa. A gamma függvény és a Fubini-tétel. . Példa. A gamma függvény és a Fubini-tétel.. Az x exp x + t )) függvény az x, t tartományon folytonos, és nem negatív, ezért alkalmazható rá a Fubini-tétel. I x exp x + t )) dxdt + t dt π 4. [ exp x +

Részletesebben

Oktatási Hivatal. 1 pont. A feltételek alapján felírhatók az. összevonás után az. 1 pont

Oktatási Hivatal. 1 pont. A feltételek alapján felírhatók az. összevonás után az. 1 pont Oktatási Hivatal Öt pozitív egész szám egy számtani sorozat első öt eleme A sorozatnak a különbsége prímszám Tudjuk hogy az első négy szám köbének összege megegyezik az ezen öt tag közül vett páros sorszámú

Részletesebben

Dualitás Dualitási tételek Általános LP feladat Komplementáris lazaság 2017/ Szegedi Tudományegyetem Informatikai Intézet

Dualitás Dualitási tételek Általános LP feladat Komplementáris lazaság 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 7. Előadás Árazási interpretáció Tekintsük újra az erőforrás allokációs problémát (vonat

Részletesebben

Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra:

Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra: Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra: C(T ) = (u,v) T c(u,v) Az F = (V,T) gráf minimális feszitőfája G-nek,

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

Nagy Gábor compalg.inf.elte.hu/ nagy

Nagy Gábor  compalg.inf.elte.hu/ nagy Diszkrét matematika 1. középszint 2017. ősz 1. Diszkrét matematika 1. középszint 5. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Mérai László diái alapján Komputeralgebra

Részletesebben

Gráfelméleti feladatok programozóknak

Gráfelméleti feladatok programozóknak Gráfelméleti feladatok programozóknak Nagy-György Judit 1. Lehet-e egy gráf fokszámsorozata 3, 3, 3, 3, 5, 6, 6, 6, 6, 6, 6? 2. Lehet-e egyszer gráf fokszámsorozata (a) 3, 3, 4, 4, 6? (b) 0, 1, 2, 2, 2,

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

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

Lineáris egyenletrendszerek

Lineáris egyenletrendszerek Lineáris egyenletrendszerek 1 Alapfogalmak 1 Deníció Egy m egyenletb l álló, n-ismeretlenes lineáris egyenletrendszer általános alakja: a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21 x 1 + a 22 x 2 + + a

Részletesebben

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum. Programozási tételek Programozási feladatok megoldásakor a top-down (strukturált) programtervezés esetén három vezérlési szerkezetet használunk: - szekvencia - elágazás - ciklus Eddig megismertük az alábbi

Részletesebben

Diszkrét matematika I.

Diszkrét matematika I. Diszkrét matematika I. középszint 2014. ősz 1. Diszkrét matematika I. középszint 10. előadás Mérai László diái alapján Komputeralgebra Tanszék 2014. ősz Felhívás Diszkrét matematika I. középszint 2014.

Részletesebben

30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK

30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK 30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK A gráfos alkalmazások között is találkozunk olyan problémákkal, amelyeket megoldását a részekre bontott gráfon határozzuk meg, majd ezeket alkalmas módon teljes megoldássá

Részletesebben

5. házi feladat. AB, CD kitér élpárra történ tükrözések: Az ered transzformáció: mivel az origó xpont, így nincs szükség homogénkoordinátás

5. házi feladat. AB, CD kitér élpárra történ tükrözések: Az ered transzformáció: mivel az origó xpont, így nincs szükség homogénkoordinátás 5. házi feladat 1.feladat A csúcsok: A = (0, 1, 1) T, B = (0, 1, 1) T, C = (1, 0, 0) T, D = ( 1, 0, 0) T AB, CD kitér élpárra történ tükrözések: 1 0 0 T AB = 0 1 0, elotlási rész:(i T AB )A = (0, 0, )

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

1/ gyakorlat. Hiperbolikus programozási feladat megoldása. Pécsi Tudományegyetem PTI

1/ gyakorlat. Hiperbolikus programozási feladat megoldása. Pécsi Tudományegyetem PTI 1/12 Operációkutatás 5. gyakorlat Hiperbolikus programozási feladat megoldása Pécsi Tudományegyetem PTI 2/12 Ha az Hiperbolikus programozási feladat feltételek teljesülése mellett a A x b x 0 z(x) = c

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

Lineáris algebra és a rang fogalma (el adásvázlat, szeptember 29.) Maróti Miklós

Lineáris algebra és a rang fogalma (el adásvázlat, szeptember 29.) Maróti Miklós Lineáris algebra és a rang fogalma (el adásvázlat, 2010. szeptember 29.) Maróti Miklós Ennek az el adásnak a megértéséhez a következ fogalmakat kell tudni: (1) A mátrixalgebrával kapcsolatban: számtest

Részletesebben

A számítástudomány alapjai

A számítástudomány alapjai A számítástudomány alapjai Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem Legszélesebb utak Katona Gyula Y. (BME SZIT) A számítástudomány

Részletesebben

Egy kártyatrükk és ami mögötte van

Egy kártyatrükk és ami mögötte van Egy kártyatrükk és ami mögötte van Egy b vész 1 db, egyenként - kártyából álló kupacba osztotta az lapos francia kártya lapjait, majd a kupacokat az ábrán látható módon hátlappal felfelé, egy olyan kör

Részletesebben

Elemi matematika szakkör

Elemi matematika szakkör Elemi matematika szakkör Kolozsvár, 2015. október 5. 1.1. Feladat. Egy pozitív egész számot K tulajdonságúnak nevezünk, ha számjegyei nullától különböznek és nincs két azonos számjegye. Határozd meg az

Részletesebben

GRÁFELMÉLET. 7. előadás. Javító utak, javító utak keresése, Edmonds-algoritmus

GRÁFELMÉLET. 7. előadás. Javító utak, javító utak keresése, Edmonds-algoritmus GRÁFELMÉLET 7. előadás Javító utak, javító utak keresése, Edmonds-algoritmus Definíció: egy P utat javító útnak nevezünk egy M párosításra nézve, ha az út páratlan hosszú, kezdő- és végpontjai nem párosítottak,

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

7. gyakorlat. Lineáris algebrai egyenletrendszerek megoldhatósága

7. gyakorlat. Lineáris algebrai egyenletrendszerek megoldhatósága 7. gyakorlat Lineáris algebrai egyenletrendszerek megoldhatósága Egy lineáris algebrai egyenletrendszerrel kapcsolatban a következ kérdések merülnek fel: 1. Létezik-e megoldása? 2. Ha igen, hány megoldása

Részletesebben

GAZDASÁGMATEMATIKA KÖZÉPHALADÓ SZINTEN

GAZDASÁGMATEMATIKA KÖZÉPHALADÓ SZINTEN GAZDASÁGMATEMATIKA KÖZÉPHALADÓ SZINTEN Készült a TÁMOP-4.1.-08//a/KMR-009-0041 pályázati projekt keretében Tartalomfejlesztés az ELTE TáTK Közgazdaságtudományi Tanszékén az ELTE Közgazdaságtudományi Tanszék

Részletesebben

Gráfokkal megoldható hétköznapi problémák

Gráfokkal megoldható hétköznapi problémák Eötvös Loránd Tudományegyetem Természettudományi Kar Gráfokkal megoldható hétköznapi problémák Szakdolgozat Készítette Vincze Ágnes Melitta Konzulens Héger Tamás Budapest, 2015 Tartalomjegyzék Bevezetés

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