Översikt. Parallella sökalgoritmer för diskreta optimeringsproblem. 8-pusslet. Problemdefinitioner

Storlek: px
Starta visningen från sidan:

Download "Översikt. Parallella sökalgoritmer för diskreta optimeringsproblem. 8-pusslet. Problemdefinitioner"

Transkript

1 Översikt 2 Parallella sökalgoritmer för diskreta optimeringsproblem Kumar et. al. Introduction to Parallel Computing Kapitel 11 Robert Granat efter material från Mikael Rännar och Erik Elmroth 5/ l Problemdefinitioner l Problemexempel l Heuristik l Sekventiella sökalgoritmer Djupet först (DFS) Bäst först l Sökningsoverhead l Parallell DFS Statisk lastbalansering Dynamisk lastbalansering l Parallella DFS branch & bound Iterativ fördjupning A* l Att upptäcka terminering Dijkstras algoritm Trädbaserad algoritm l Parallella bäst-först-algoritmer Centraliserad öppen-lista Distribuerad öppenlista l Parallella DFS-algoritmer på SIMD l M.m. Problemdefinitioner 3 8-pusslet 4 Ett DOP beskrivs av tupeln (S, f) där S är mängden av tillåtna lösningar (som uppfyller vissa bivillkor) f är en kostnadsfunktion: f : S R (reella talen) l Problemet kan beskrivas som att finna en tillåten lösning x opt sådan att f(x opt ) f(x) för alla x S Finn kortast möjliga söksekvens från starttillstånd (a) till sluttillstånd (b) kostnadsfunktionen f = #flyttningar l Ett DOP kan omformuleras som problemet att i en graf finna den stig som ger minimal kostnad från ett starthörn till ett av flera möjliga målhörn l f är definierad i kostnaden att traversera kanter i grafen, som summan av stigens kanter l Grafen kallas tillståndsrum (state space) l Hörnen kallas tillstånd

2 0/1 heltals-lp-problemet 5 Grafrepresentation av LP-problemet 6 l Minimera f(x) = c T x med bivillkoret Ax b A = , b = 25, c = dvs minimera f ( x ) = 2 x 1 + x 2 x x 4 under villkoren att 5 x x 2 + x x 4 8 x 1 x 2 x x x 1 + x 2 + x x Varje x i kan anta värdet 0 eller 1 totalt 16 olika värden för vektorn x - En del av dessa 16 värden uppfyller dock ej bivillkoren Ingen kombination med x 1 = 0 kan ge 5x 1 + 2x 2 + x 3 +2x 4 8 Endast två tillåtna lösningar: (1, 0, 1, 1) T och (1, 1, 0, 1) T varav den första ger minst f(x)-värde f(x) = -1 f(x) = 1 Heuristik 7 Sekventiella sökalgoritmer 8 l Ibland kan kostnaden från ett tillstånd x till ett måltillstånd uppskattas med ett heuristiskt estimat h(x) l Om h(x) är undre begränsning av kostnaden är h(x) admissible (sv. tillåtet) l Låt l(x) = g(x) + h(x) där g(x) är faktisk kostnad för att nå x l h(x) admissible l(x) undre gräns för totalkostnaden till mål via x Exempel: 8-pusslet l Avståndet mellan position (i, j) och (m, n) är i - m + j - n och kallas manhattanavståndet l Summan av alla brickors manhattanavstånd till deras positioner i lösningen är en skattning på avstånd till lösning (manhattanheuristik) l Avståndet en undre gräns manhattanheuristiken är admissible Expansion av en nod i ett träd leder till en outforskad del av sökrummet. Så är ej alltid fallet i en godtycklig graf. (Ex: i 8-pusslet kan ett tillstånd erhållas genom olika sekvenser av brickflyttningar) Vi tittar på sökalgoritmer för både träd och andra grafer

3 Djupet-först-sökning (DFS) 9 DFS-exempel: 8-pusslet 10 Simple backtracking l DFS med terminering vid första tillåtna lösningen (ej optimal lösning) Djupet-först branch-and-bound l Fortsätter även efter en lösning är funnen l Förkastar genomsökta sökvägar som ej kan ge bättre lösning l Hittar optimal lösning Iterativ fördjupning A * (IDA*) l Djupet-först till begränsat djup l Fortsätter ej om l(x) = g(x) + h(x) > K l Initialt är K = l(s), därefter uppdateras K iterativt med minsta l-värde för nod expanderad i tidigare iterationer l Hittar optimal lösning om h(x) är admissible Första tre stegen med simple backtracking DFS I verkligheten vill man nog inte expandera bakåt Prioritering: - upp - ner - vänster - höger H: nästa nod att expanderas Stackrepresentation av tillstånd (2 alternativ) 11 Söknings-overhead 12 Endast ej undersökta noder Ej undersökta noder och dess föräldranoder Alt. 2 nödvändigt då sekvensen av transformationer som leder från start- till målnoden är en del av lösn. på problemet Riktningen på stacken missvisande - normalt tvärtom! l W = mängden arbete som utförs av den sekventiella algoritmen l W p = mängden arbete som utförs av den parallella algoritmen Söknings-overhead-faktorn är W p /W l Denna faktor inkluderar ej vanlig parallell-oh som t ex kommunikation, väntetider etc l Ger ett mått på hur mycket mer (eller mindre) arbete som den parallella algoritmer utför i jämförelse med den seriella l Medelvärdet av W p /W < 1 implicerar seriella algoritmen inte optimal (den parallella alg. + simulering av en parallellmaskin mha time-slicing vore snabbare!)

4 Statisk lastbalansering för DFS-agoritmer 13 Dynamisk lastbalansering för DFS-algoritmer 14 Kan ej på förhand avgöra storlek på underliggande träd 2 proc 4 proc Har jobb att fördela Kontrollera regelbundet om någon frågat efter jobb Vem ska skicka till vem? Vad ska skickas? Fråga efter jobb tills något erhålls Har inget jobb att fördela Algoritmer för att dela arbete mellan 2 proc 15 Dynamisk lastbalansering 16 l Arbetslös processor får hälften av annan processors arbete l Svårt att avgöra arbetsmängden i icke expanderad nod i stacken l Noder nära stackens botten (nära startnoden) expanderas ofta till större delträd än noder nära toppen l För att inte skicka för små arbetsmängder skickas ej noder ovanför en viss gräns i stacken ( cutoff depth ) Tre alternativ Skicka noder nära botten på stacken - Bra för uniformt sökrum. Låg kostnad. Skicka noder nära cutoff depth - Bra om heuristik finns. (Fördelar noder med störst chans till lösning.) Skicka hälften av noderna mellan botten och cutoff depth - Bra för irreguljärt sökrum Asynkron round robin l Varje processor har en lokal variabel target initierad till processorns eget id. l Då processor behöver arbete ökas target med 1 (modulo p) och förfrågan skickas till processor med id = target Flera kan samtidigt fråga samma processor Global round robin l En global target som hålls av en processor Flaskhals Slumpmässigt val (random polling) l Varje gång en processor behöver arbete skickar den en förfrågan till en slumpvis vald processor Obegränsad i värsta fallet

5 T o för parallella DFS-algoritmer 17 V(p) för olika lastbalanseringsalgoritmer 18 l Antag att arbete mindre än ε ej delas ett arbete w i kan delas i två delar w j och w k så att det existerar en konstant α sådan att w j > αw i och w k > αw i (om två processorer har delat ett arbete har ingen av dem mer än (1 - α)w i arbete) l Definiera V(p) som den mängd arbetsförfrågningar som krävs för att alla skall ha fått minst en förfrågan (sum. alla proc.) l Efter V(p) förfrågningar har ingen mer än (1 - α)w arbete. Efter 2V(p) förfrågningar har ingen mer än (1 - α) 2 W arbete l Efter (log 1/(1-α) (W/ ε)) V(p) förfrågningar är allas arbete mindre än ε l Totalt är antalat förfrågningar O(V(p) log W) l Om t comm är genomsnittlig tid för att skicka arbete så är T o = t comm V(p) log W E = 1/(1+T o /W) = 1/(1+(t comm V(p) log W/W) Kan bli riktigt bra om W stort! Asynkron round robin (i värsta fallet) l Antag att P p-1 har allt arbete och alla andra har target satt till P 0. För att proc p-1 ska få förfrågan måste någon ha skickat till p-1 processorer Samtidigt kan p-2 övriga hinna skicka p-2 förfrågningar vardera Övre gräns för V(p) = (p-1)+(p-2)(p-2) = O(p 2 ) Global round robin l V(p) = p (eftersom alla frågas i turordning) Slumpmässigt val (random polling) l Värsta fallet saknar gräns l Genomsnittlig V(p) kan härledas till p (1 + 1/2 + 1/ /p) = p H p där H p är ungefär 1.69 ln p för stora p V(p) = O(p log p) Isoeffektivitetsanalys för hyperkub 19 Isoeffektivitetsanalys för hyperkub (forts) 20 l Genomsnittliga avståndet mellan två noder är θ(log p) asymptotiskt värde för tcomm = θ(log p) T o = O(V(p) log p log W) (*) l Balansera T o mot W för varje lastbalanseringsstrategi Asynkron round robin l V(p) = O(p 2 ) (från tidigare analys) insatt i (*): T o = O(p 2 log p log W) W = O(p 2 log 2 p + p 2 log p log log p + p 2 log p log log W) l Isoeffektivitetsfunktionen (= dominerande termen) O(p 2 log 2 p) Global round robin l V(p) = θ(p) ger To = O(p log p log W) med W = O(p log 2 p) som dominerande term (m a p kommunikation) l Isoeffektivitet m a p databeroende för target : Variablen accessas O(p log W) gånger Vid effektivt proc-utnyttjande är exekveringstiden θ(w/p) När p ökas minskas effektiviteten men antalet accesser till target ökas. Det avhjälps genom att skala W så att W/p = θ(p log W) W = θ(p 2 log p) l Den totala isoeffektiviteten är alltså θ(p 2 log p) Slumpmässigt val (random polling) l V(p) = θ(p log p) ger T o = O(p log 2 p log W) W = O(p log 3 p)

6 Experimentella resultat: DFS uppsnabbning 21 DFS: Experimentell/beräknat antal förfrågningar 22 Genomsnitt för 30 problem med till 10 miljoner noder på NCUBE NCUBE 1024 proc hyperkub Genomsnitt för 30 problem med till 10 miljoner noder på NCUBE DFS: Experimentella isoeffektivitetskurvor 23 Parallell djupet-först branch and bound 24 Genomsnitt för 30 problem med till 10 miljoner noder på NCUBE l Vanliga parallella djupet-först måste modifieras så att alla processorer vet vilken som är den aktuella bästa lösningen (för att kunna avgöra om ett delträd kan vara lönsamt att expanderas eller ej) Gemensamt minne l Global datastruktur innehåller aktuella bästa lösning som varje processor jämför med Distribuerat minne l Varje processor som hittar en lösning bättre än aktuell bästa gör broadcast på sin lösning till alla andra

7 Parallell iterativ fördjupning A* 25 Att upptäcka terminering 26 Alternativ 1 l Olika processorer undersöker olika delar av trädet med sekventiell A* l Nackdelar: Oklart hur gräns för l(x)-värde skall väljas för varje processor Kan eventuellt missa att ge optimal lösning l Antag att varje processor i en ring ej får mer jobb då den blir klar l Då P 0 blir klar skickar den ett klartecken till P 1 l Då P i blir klar och har fått klartecken från P i-1 skickar den ett klartecken till P i+1 Alternativ 2 l Alla processorer använder samma l(x)-värde l Efter varje iteration avgör en utvald processor vilken gräns som skall användas nästa iteration l Kräver kommunikation till och från denna processor mellan varje iteration Fungerar bra om processor som skickat klartecken ej kan få mer arbete senare Dijkstras algoritm för att upptäcka terminering 27 Trädbaserad alg. för att upptäcka terminering 28 1 Då P 0 blir klar skickar den vit flagga till P 1 och markerar sig själv som vit 2 Om processor P i skickar jobb till P j och i > j blir processor i svart 3 Om P i får flagga från P i-1 och P i är utan jobb så skickar den vidare flaggan till P i+1.om P i är svart sätter den flaggan till svart innnan den skickar den vidare. 4 Efter P i skickat flaggan till P i+1 markerar den sig själv som vit 5 När P 0 får tillbaka vit token kan processerna terminera l P 0 har startnod för problemet och en vikt w = 1 l Varje gång någon processor delar med sig hälften av sitt arbete halveras även vikten (skickar med halva) l Då processor blir klar returneras vikten l Alla processorer är klara då P 0 åter har w = 1 l Numeriska problem: pga den ändliga talrepresentationen riskerar de små tal som uppstår då w delas tillräckligt många gånger att ge stora fel (eller t.o.m. försvinna)

8 Exempel: trädbaserad algoritm 29 Bäst-först-sökning 30 l Både för träd och generella grafer l En öppen-lista för genererade men ej expanderade noder, sorterad efter heuristik om troligaste kandidat för att hitta lösning l En stängd-lista för expanderade noder A * l Använder heuristikfunktion så att l(x) = undre gräns för kostnad l Finner optimal lösning Nackdel med bäst-först-algoritmer l Minnesåtgång beror linjärt av storleken på den undersökta delen av sökrummet Bäst-först: 8-pusslet 31 Parallella bäst-först-algoritmer 32 Manhattanavstånd Starttillstånd Måltillstånd Nästa att expanderas Nästa att expanderas Centraliserad öppen-lista l Undersöker alltid de p bästa noderna i listan l Kan dock undersöka noder som aldrig skulle undersökts av den sekventiella algoritmen l Termineringskriterium måste modifieras: Om en processor finner en till synes optimal lösning måste den vänta tills de andra p-1 processorernas samtida sökningar är klara för att se om de kan ha funnit bättre lösningar (kan expanderas hur mycket som helst ) l Öppen-listan måste kunna nås av alla processorer sekventiell flaskhals

9 Hantering av centraliserad öppen-lista 33 Distribuerade öppen-listor 34 P översta undersöks Strategier för att undvika för mycket sökande i dåliga områden: l Slumpmässig: Varje processor skickar regelbundet en delmängd av dess bästa noder till en slumpmässigt vald processor (Lite sök-oh om meddelande skickas ofta) l Ring: Varje processor utbyter regelbundet en delmängd av dess bästa noder med en av dess grannar i en ring (Hög sök-oh, dvs jämnar långsamt ut snedfördelning) (Passar nätverk med stor diameter) l Anslagstavla (blackboard): Expanderar endast noder från lokal lista som är inom viss tolerans från bästa på en global anslagstavla Om utvald nod är mycket bättre än bästa på anslagstavlan skickas några noder dit. Om utvald nod är mycket sämre än bästa nod hämtas några nya noder från anslagstavlan (Passar gemensamt minne) Ring 35 Anslagtavla 36

10 Avvikelser i uppsnabbning 37 Analys av genomsnittlig uppsnabbning i DFS 38 Genomsnittligt värde på söknings-oh Antaganden: l trädet har totalt M löv där vart och ett med sannolikhet ρ << 1 (med Bernoulli distribution) är lösning l Varje processor får en M/p-del av trädet l Saknar information om vilken ordning trädet bör genomsökas i l Totala antalet noder expanderade av p processorer är W p (W av sekventiell algoritm) Analys av söknings-oh 39 Analys av söknings-oh (forts) 40 Låt tätheten av lösningar i processor P i :s delträd vara ρ i Teorem Om ρ är tätheten i ett område måste i genomsnitt 1/ρ löv genomsökas innan lösning hittas l Detta är ekvivalent med att l W = 1/aritmetiska medelv. av (ρ 1 + ρ ρ p ) l Wp = 1/harmoniska medelv. av (ρ 1 + ρ ρ p ) P = 1:Antal löv som genomsöks är i genomsnitt W 1 p ( ) ρ 1 ρ 2 ρ p om lösning i varje delträd P > 1: Sannolikhet för att hitta lösning är i varje steg (för varje expanderad nod) p 1 (1 ρ i ) ρ 1 + ρ ρ p vilket ger i = 1 p W p ρ 1 + ρ ρ p l Eftersom AM HM är W W p : l Om ρ 1 = ρ 2 =... = ρ p är AM = HM och W ~= Wp l Om ρ i är olika för olika i är AM > HM och W > Wp

11 Parallella DFS-algoritmer på SIMD 41 När skall lasten balanseras på SIMD 42 l MIMD-algoritmerna ger 2 problem på SIMD Eftersom alla processorer samtidigt gör samma sak kan inte en processor expandera en nod samtidigt som en annan t.ex. gör back tracking l löses genom villkorssatser. Detta ger dock sämre processorutnyttjande (P0 expanderar och P1 väntar, P0 väntar och P1 gör back tracking ) Lastbalansering måste göras globalt ett fåtal processorer utan arbete kan ej exekvera lastbalanseringsalgoritmer medan andra processorer utför annat arbete l En sökningsfas och en lastbalanseringsfas l 1 processor som blir utan arbete måste vänta till nästa lastbalanseringsfas innan den kan få arbete igen l Krititiska komponenter: Mekanism för att avgöra när lastbalansering skall göras Själva lastbalanseringsalgoritmen l För sällan för mycket väntetider l För ofta onyttigt arbete tar för mycket tid l Statisk bedömning l Förhållandet mellan processorer utan jobb och processorer med jobb går över en förutbestämd gräns l Dynamisk bedömning l Balanserar totala väntetiden mot tiden nästa lastbalansering tar för varje processor: l widle = totala tiden alla processorer har väntat sedan förra lastbalanseringsfasen l tl= totala tiden nästa lastbalanseringsfas tar för varje processor l Lastbalansering görs då widle p tl Hur lasten skall balanseras på SIMD 43 Varje processor utan arbete måste paras ihop med en som har arbete att fördela

Prestanda och skalbarhet

Prestanda och skalbarhet Prestanda och skalbarhet Grama et al. Introduction to Parallel Computing Kapitel 5 Erik Elmroth Översikt 2 Exekveringstid Uppsnabbning Effektivitet Kostnad Kostnadsoptimal algoritm Ahmdals lag Gustafson-Barsis

Läs mer

Föreläsning 5: Grafer Del 1

Föreläsning 5: Grafer Del 1 2D1458, Problemlösning och programmering under press Föreläsning 5: Grafer Del 1 Datum: 2006-10-02 Skribent(er): Henrik Sjögren, Patrik Glas Föreläsare: Gunnar Kreitz Den här föreläsningen var den första

Läs mer

Föreläsning 4: Kombinatorisk sökning

Föreläsning 4: Kombinatorisk sökning DD2458, Problemlösning och programmering under press Föreläsning 4: Kombinatorisk sökning Datum: 2009-09-25 Skribent(er): Kristina Nylander, Dennis Ekblom, Marcus Öman Föreläsare: Fredrik Niemelä 1 Introduktion

Läs mer

Fördelning. Fördelningsprinciper. Lastbalansering

Fördelning. Fördelningsprinciper. Lastbalansering Fördelning Föreläsning : Lastbalansering MIMD-parallellt program Ett antal tasks som exekverar seriellt eller parallellt Fördelningsproblemet NP-komplett problem (i generella fallet) Fördela tasks på processorer

Läs mer

Föreläsningsanteckningar F6

Föreläsningsanteckningar F6 Föreläsningsanteckningar F6 Martin Andersson & Patrik Falkman Kortaste vägen mellan en nod och alla andra noder Detta problem innebär att givet en graf G = (E,V) hitta den kortaste vägen över E från en

Läs mer

Eulercykel. Kinesiska brevbärarproblemet. Kinesiska brevbärarproblemet: Metod. Kinesiska brevbärarproblemet: Modell. Definition. Definition.

Eulercykel. Kinesiska brevbärarproblemet. Kinesiska brevbärarproblemet: Metod. Kinesiska brevbärarproblemet: Modell. Definition. Definition. Eulercykel Definition En Eulercykel är en cykel som använder varje båge exakt en gång. Definition En nods valens är antalet bågar som ansluter till noden. Kinesiska brevbärarproblemet En brevbärartur är

Läs mer

Tentamen Datastrukturer D DAT 035/INN960

Tentamen Datastrukturer D DAT 035/INN960 Tentamen Datastrukturer D DAT 035/INN960 22 december 2006 Tid: 8.30-12.30 Ansvarig: Peter Dybjer, tel 7721035 eller 405836 Max poäng på tentamen: 60. (Bonuspoäng från övningarna tillkommer.) Betygsgränser,

Läs mer

Sortering. Intern/ extern? Antaganden. Vad kan vi kräva? Rank sort. Rank sort. På en nod/ distribuerad? Jämförelsebaserad/ icke jämförelsebaserad?

Sortering. Intern/ extern? Antaganden. Vad kan vi kräva? Rank sort. Rank sort. På en nod/ distribuerad? Jämförelsebaserad/ icke jämförelsebaserad? Sortering Föreläsning : Sorteringsalgoritmer Sortering: att ordna data i någon sekventiell ordning Sortering förekommer som del i många applikationer Kanonisk form för sorterat data? Skall den sorterade

Läs mer

Speciell användning av heltalsvariabler. Heltalsprogrammering. Antingen-eller-villkor: Exempel. Speciell användning av heltalsvariabler

Speciell användning av heltalsvariabler. Heltalsprogrammering. Antingen-eller-villkor: Exempel. Speciell användning av heltalsvariabler Heltalsprogrammering Speciell användning av heltalsvariabler max z = då c j x j j= a ij x j b i j= x j 0 x j heltal i =,..., m j =,..., n j =,..., n ofta x j u j j =,..., n Oftast c, A, b heltal. Ibland

Läs mer

Lastbalansering. Fördelningsprinciper. Fördelning. balans. MIMD-parallellt program Ett antal tasks som exekverar seriellt eller parallellt

Lastbalansering. Fördelningsprinciper. Fördelning. balans. MIMD-parallellt program Ett antal tasks som exekverar seriellt eller parallellt Lastbalansering Föreläsning : Lastbalansering Imperfekt balans balans Perfekt För betraktaren är det längsta exekveringstiden som spelar roll!!! Fördelning MIMD-parallellt program Ett antal tasks som exekverar

Läs mer

Föreläsning Datastrukturer (DAT037)

Föreläsning Datastrukturer (DAT037) Föreläsning Datastrukturer (DAT037) Nils Anders Danielsson 2015-11-23 Idag Mer om grafer: Minsta uppspännande träd (för oriktade grafer). Djupet först-sökning. Minsta uppspännande träd Träd (utan rot)

Läs mer

Föreläsning 5: Giriga algoritmer. Kruskals och Prims algoritmer

Föreläsning 5: Giriga algoritmer. Kruskals och Prims algoritmer Föreläsning 5: Giriga algoritmer Kruskals och Prims algoritmer Spännande träd: Om G är en sammanhängande graf så är ett spännande träd ett träd som innehåller alla noder i V (G). Viantarattviharkantvikterw(e)

Läs mer

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6 Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6? DAGENS AGENDA Komplexitet Ordobegreppet Komplexitetsklasser Loopar Datastrukturer Några nyttiga regler OBS! Idag jobbar

Läs mer

N = {i}: noder (hörn) Graf: G = (N, B) Definitioner. Väg: Sekvens av angränsande bågar. Cykel: Väg som startar och slutar i samma nod.

N = {i}: noder (hörn) Graf: G = (N, B) Definitioner. Väg: Sekvens av angränsande bågar. Cykel: Väg som startar och slutar i samma nod. Polyeder 0 x, 0 x, 0 x, x + x + x, x + x + x Grafdefinitioner N = {i}: noder (hörn) = {(i, j)}, i N, j N: bågar (kanter) Graf: G = (N, ) efinitioner Väg: Sekvens av angränsande bågar. ykel: Väg som startar

Läs mer

Linjärprogramming. EG2205 Föreläsning 7, vårterminen 2015 Mikael Amelin

Linjärprogramming. EG2205 Föreläsning 7, vårterminen 2015 Mikael Amelin Linjärprogramming EG2205 Föreläsning 7, vårterminen 2015 Mikael Amelin 1 Kursmål Formulera korttidsplaneringsproblem för vatten- och värmekraftsystem. 2 Tillämpad matematisk programming Korttidsplanering

Läs mer

1 Duala problem vid linjär optimering

1 Duala problem vid linjär optimering Krister Svanberg, april 2012 1 Duala problem vid linjär optimering Detta kapitel handlar om två centrala teoretiska resultat för LP, nämligen dualitetssatsen och komplementaritetssatsen. Först måste vi

Läs mer

Föreläsning 5: Giriga algoritmer. Kruskals och Prims algoritmer

Föreläsning 5: Giriga algoritmer. Kruskals och Prims algoritmer Föreläsning 5: Giriga algoritmer Kruskals och Prims algoritmer Spännande träd: Om G är en sammanhängande graf så är ett spännande träd ett träd som innehåller alla noder i V (G). Viantarattviharkantvikterw(e)

Läs mer

min c 1 x 1 + c 2 x 2 då x 1 + x 2 = 1, x 1 {0, 1}, x 2 {0, 1} plus andra bivillkor. Vi måste göra k st av n alternativ:

min c 1 x 1 + c 2 x 2 då x 1 + x 2 = 1, x 1 {0, 1}, x 2 {0, 1} plus andra bivillkor. Vi måste göra k st av n alternativ: Heltalsprogrammering Speciell användning av heltalsvariabler max z = då n c j x j j= n a ij x j b i j= x j 0 x j heltal i =,..., m j =,..., n j =,..., n ofta x j u j j =,..., n Oftast c, A, b heltal. Ibland

Läs mer

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Erik Nilsson, Institutionen för Datavetenskap, LiU

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Träd Traversering Insättning, borttagning

Läs mer

Föreläsning Datastrukturer (DAT036)

Föreläsning Datastrukturer (DAT036) Föreläsning Datastrukturer (DAT036) Nils Anders Danielsson 2013-11-18 Idag Mer om grafer: Minsta uppspännande träd (för oriktade grafer). Prims algoritm. Kruskals algoritm. Djupet först-sökning. Cykel

Läs mer

Trädstrukturer och grafer

Trädstrukturer och grafer Översikt Trädstrukturer och grafer Trädstrukturer Grundbegrepp Binära träd Sökning i träd Grafer Sökning i grafer Programmering tillämpningar och datastrukturer Varför olika datastrukturer? Olika datastrukturer

Läs mer

Föreläsning 2: Grafer. Exempel på graf

Föreläsning 2: Grafer. Exempel på graf Föreläsning 2: Grafer Vad är en graf? Terminologi Representationer Genomgång av hörnen i en graf Kortaste väg-problemet Exempel på graf Falun Uppsala Karlstad Västerås Stockholm Eskilstuna Örebro En graf

Läs mer

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition Grafdefinitioner Träd N = {i}: noder (hörn) = {(i, )}, i N, N: bågar (kanter) Graf: G = (N, ) efinitioner Väg: Sekvens av angränsande bågar. ykel: Väg som startar och slutar i samma nod. En enkel väg innehåller

Läs mer

Abstrakta datatyper. Primitiva vektorer. Deklarera en vektor

Abstrakta datatyper. Primitiva vektorer. Deklarera en vektor Abstrakta datatyper 1 Primitiva vektorer Vektorer kan skapas av primitiva datatyper, objektreferenser eller andra vektorer. Vektorer indexeras liksom i C från 0. För att referera en vektor används hakparenteser.

Läs mer

Optimeringslära 2013-11-01 Kaj Holmberg

Optimeringslära 2013-11-01 Kaj Holmberg Tekniska Högskolan i Linköping Optimering för ingenjörer Matematiska Institutionen Lösning till tentamen Optimeringslära 23-- Kaj Holmberg Uppgift a: Problemet skrivet i standardform är: Lösningar min

Läs mer

PROBLEMLÖSNING. ! GPS! Mål medel analys! Problemlösning i programmering. Lars-Erik Janlert 2007

PROBLEMLÖSNING. ! GPS! Mål medel analys! Problemlösning i programmering. Lars-Erik Janlert 2007 PROBLEMLÖSNING! Problem & lösning! Sökträd, sökgraf! Automatisk problemlösning! Heuristik! Heuristisk sökning! GPS! Mål medel analys! Problemlösning i programmering 1 Problem (snäv mening)! Ett problem

Läs mer

Lösningar till 5B1762 Optimeringslära för T, 24/5-07

Lösningar till 5B1762 Optimeringslära för T, 24/5-07 Lösningar till 5B76 Optimeringslära för T, 4/5-7 Uppgift (a) Först använder vi Gauss Jordans metod på den givna matrisen A = Addition av gånger första raden till andra raden ger till resultat matrisen

Läs mer

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED Matematiska institutionen Optimeringslära TENTAMEN TAOP8/TEN 1 KOMBINATORISK OPTIMERING MED MILJÖTILLÄMPNINGAR Datum: januari 01 Tid: 1.00-19.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering

Läs mer

TDDI16 Datastrukturer och algoritmer. Algoritmanalys

TDDI16 Datastrukturer och algoritmer. Algoritmanalys TDDI16 Datastrukturer och algoritmer Algoritmanalys 2017-08-28 2 Översikt Skäl för att analysera algoritmer Olika fall att tänka på Medelfall Bästa Värsta Metoder för analys 2017-08-28 3 Skäl till att

Läs mer

Källkodning. Egenskaper hos koder. Några exempel

Källkodning. Egenskaper hos koder. Några exempel Källkodning Källkodning innebär att vi avbildar sekvenser av symboler ur en källas alfabet på binära sekvenser (kallade kodord). Mängden av alla kodord kalls för en kod. (Man kan förstås tänka sig att

Läs mer

min c 1 x 1 + c 2 x 2 då x 1 + x 2 = 1, x 1 {0, 1}, x 2 {0, 1} plus andra bivillkor. Vi måste göra k st av n alternativ:

min c 1 x 1 + c 2 x 2 då x 1 + x 2 = 1, x 1 {0, 1}, x 2 {0, 1} plus andra bivillkor. Vi måste göra k st av n alternativ: Heltalsprogrammering Speciell användning av heltalsvariabler max z = då c j x j a ij x j b i x j 0 x j heltal i =,..., m j =,..., n j =,..., n ofta x j u j j =,..., n Oftast c, A, b heltal. Ibland u j

Läs mer

Föreläsning 2. Kortaste vägar i grafer.

Föreläsning 2. Kortaste vägar i grafer. Föreläsning 2. Kortaste vägar i grafer. Problem: KORTASTE VÄGAR Den enklaste varianten är om vi inte har kantvikter och kortaste väg är en väg med såfåkanter som möjligt. Indata: En riktad graf G och en

Läs mer

1 Ickelinjär optimering under bivillkor

1 Ickelinjär optimering under bivillkor Krister Svanberg, maj 2012 1 Ickelinjär optimering under bivillkor Hittills har vi behandlat optimeringsproblem där alla variabler x j kunnat röra sig fritt, oberoende av varann, och anta hur stora eller

Läs mer

Optimeringslära Kaj Holmberg

Optimeringslära Kaj Holmberg Tekniska Högskolan i Linköping Optimering för ingenjörer Matematiska Institutionen Lösning till tentamen Optimeringslära 28-5-3 Kaj Holmberg Lösningar Uppgift a: P: Grafisk lösning ger x = 2/7 = 2 6/7,

Läs mer

Föreläsning 8 Datastrukturer (DAT037)

Föreläsning 8 Datastrukturer (DAT037) Föreläsning 8 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-11-23 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037 Förra

Läs mer

Ekvivalensrelationer

Ekvivalensrelationer Abstrakt datatyp för disjunkta mängder Vi skall presentera en abstrakt datatyp för att representera disjunkta mängder Kan bl.a. användas för att lösa ekvivalensproblemet avgör om två godtyckliga element

Läs mer

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER Matematiska institutionen Optimeringslära TENTAMEN TAOP/TEN 1 OPTIMERING FÖR INGENJÖRER Datum: 19 oktober 2017 Tid: 1.00-19.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar

Läs mer

Föreläsning 1. Introduktion och sökning i graf. Vad är en algoritm?

Föreläsning 1. Introduktion och sökning i graf. Vad är en algoritm? Föreläsning 1. Introduktion och sökning i graf Vad är en algoritm? Först: Vad är ett problem? Består av indata och ett mål. Indata: [En beskrivning av en struktur.] Mål: [Kan vara Ja/Nej, ett tal eller

Läs mer

TDDI16 Datastrukturer och algoritmer. Prioritetsköer, heapar, Union/Find

TDDI16 Datastrukturer och algoritmer. Prioritetsköer, heapar, Union/Find TDDI16 Datastrukturer och algoritmer Prioritetsköer, heapar, Union/Find Prioritetsköer En vanligt förekommande situation: Väntelista (jobbhantering på skrivare, simulering av händelser) Om en resurs blir

Läs mer

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER Matematiska institutionen Optimeringslära TENTAMEN TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER Datum: januari 01 Tid: 1.00-19.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar

Läs mer

Lösningar till SF1861 Optimeringslära, 28 maj 2012

Lösningar till SF1861 Optimeringslära, 28 maj 2012 Lösningar till SF86 Optimeringslära, 28 maj 202 Uppgift.(a) Då det primala problemet P är så är det motsvarande duala problemet D minimera 3x + x 2 då 3x + 2x 2 6 x + 2x 2 4 x j 0, j =, 2. maximera 6 +

Läs mer

Optimeringslära Kaj Holmberg

Optimeringslära Kaj Holmberg Tekniska Högskolan i Linköping Optimering för ingenjörer Matematiska Institutionen Lösning till tentamen Optimeringslära 2018-01-02 Kaj Holmberg Lösningar Uppgift 1 1a: Den givna startlösningen är tillåten

Läs mer

Tentamensinstruktioner. När Du löser uppgifterna

Tentamensinstruktioner. När Du löser uppgifterna Matematiska institutionen Optimeringslära TENTAMEN TAOP14/TEN 1 OPTIMERINGSLÄRA GRUNDKURS för I, Ii och TB Datum: 24 augusti 2009 Tid: 8.00-13.00 Hjälpmedel: Lundgren m fl: Optimeringslära och/eller Lundgren

Läs mer

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet Algoritmer, datastrukturer och komplexitet Övning 10 Anton Grensjö grensjo@csc.kth.se 9 november 2017 1 Idag En konstruktionsreduktion Fler bevis av NP-fullständighet 2 Teori Repetition Ett problem tillhör

Läs mer

Tentamen med lösningsförslag Datastrukturer för D2 DAT 035

Tentamen med lösningsförslag Datastrukturer för D2 DAT 035 Tentamen med lösningsförslag Datastrukturer för D2 DAT 035 17 december 2005 Tid: 8.30-12.30 Ansvarig: Peter Dybjer, tel 7721035 eller 405836 Max poäng på tentamen: 60. (Bonuspoäng från övningarna tillkommer.)

Läs mer

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER Matematiska institutionen Optimeringslära TENTAMEN TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER Datum: 28 maj 2014 Tid: 14.00-19.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar

Läs mer

Tentamensinstruktioner. När Du löser uppgifterna

Tentamensinstruktioner. När Du löser uppgifterna Matematiska institutionen Optimeringslära TENTAMEN TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER för EMM Datum: 2 augusti 2011 Tid: 8.00-1.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar

Läs mer

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS Matematiska institutionen Optimeringslära TENTAMEN TAOP/TEN KOMBINATORISK OPTIMERING GRUNDKURS Datum: 1 mars 01 Tid: 8.00-1.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar

Läs mer

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER Matematiska institutionen Optimeringslära TENTAMEN TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER Datum: 28 augusti 2015 Tid: 1.00-19.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar

Läs mer

Tentamensinstruktioner. När Du löser uppgifterna

Tentamensinstruktioner. När Du löser uppgifterna Matematiska institutionen Optimeringslära TENTAMEN TAOP/TEN 1 OPTIMERING FÖR INGENJÖRER för M/EMM Datum: januari 2013 Tid: 14.00-19.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar

Läs mer

729G04 - Diskret matematik. Lektion 4

729G04 - Diskret matematik. Lektion 4 729G04 - Diskret matematik. Lektion 4 Ett generellt råd är att rita upp noder och bågar för graferna nedan. 1 Uppgifter 1.1 Vägar, stigar och annat 1. Vi ges den oriktade grafen G=(V,E), V = {a, b, c,

Läs mer

Lösningsförslag till tentamen i SF1861 Optimeringslära för T. Torsdag 28 maj 2010 kl

Lösningsförslag till tentamen i SF1861 Optimeringslära för T. Torsdag 28 maj 2010 kl Lösningsförslag till tentamen i SF86 Optimeringslära för T. Torsdag 28 maj 2 kl. 4. 9. Examinator: Per Enqvist, tel. 79 62 98. (a) Inför variablerna x = (x sr, x sm, x sp, x sa, x sd, x gr, x gm, x gp,

Läs mer

Tentamen, Algoritmer och datastrukturer

Tentamen, Algoritmer och datastrukturer UNDS TEKNISKA ÖGSKOA (6) Institutionen för datavetenskap Tentamen, Algoritmer och datastrukturer 23 8 29, 8. 3. Anvisningar: Denna tentamen består av fem uppgifter. Totalt är skrivningen på 36 poäng och

Läs mer

I en matchning ligger varje hörn i högst en kant. I en stig ligger varje hörn i högst två kanter.

I en matchning ligger varje hörn i högst en kant. I en stig ligger varje hörn i högst två kanter. 26.2-9 Antag att rätt lösning är att dela upp V i V 1 och V 2 (V 1 V 2 =, V 1 V 2 = V ). Antal kanter vi måste skära är då det minsta snittet mellan v 1 och v 2, där v 1 är ett godtyckligt hörn i V 1 och

Läs mer

Tillämpad Programmering (ID1218) :00-13:00

Tillämpad Programmering (ID1218) :00-13:00 ID1218 Johan Montelius Tillämpad Programmering (ID1218) 2014-03-13 09:00-13:00 Förnamn: Efternamn: Regler Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.

Läs mer

de var svåra att implementera och var väldigt ineffektiva.

de var svåra att implementera och var väldigt ineffektiva. OBS! För flervalsfrågorna gäller att flera alternativ eller inget alternativ kan vara korrekt. På flervalsfrågorna kan man bara ha rätt eller fel, dvs frågan måste vara helt korrekt besvarad. Totalt kan

Läs mer

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition Grafdefinitioner Träd N = {i}: noder (hörn) = {(i, j)}, i N, j N: bågar (kanter) Graf: G = (N, ) efinitioner Väg: Sekvens av angränsande bågar. ykel: Väg som startar och slutar i samma nod. En enkel väg

Läs mer

729G04 - Diskret matematik. Lektion 4

729G04 - Diskret matematik. Lektion 4 729G04 - Diskret matematik. Lektion 4 1 Lösningsförslag 1.1 Vägar, stigar och annat 1. Vi ges den oriktade grafen G=(V,E), V = {a, b, c, d, f, g, h, i, j}, E = {{a, b}, {b, c}, {a, c}, {f, g}, {c, d},

Läs mer

Föreläsning 13. Dynamisk programmering

Föreläsning 13. Dynamisk programmering Föreläsning 13 Dynamisk programmering Föreläsning 13 Dynamisk programmering Fibonacci Myntväxling Floyd-Warshall Kappsäck Handelsresandeproblemet Uppgifter Dynamisk programmering Dynamisk programmering

Läs mer

Föreläsning 2. Kortaste vägar i grafer.

Föreläsning 2. Kortaste vägar i grafer. Föreläsning 2. Kortaste vägar i grafer. Problem: KORTASTE VÄGAR Den enklaste varianten är om vi inte har kantvikter och kortaste väg är en väg med såfåkanter som möjligt. Indata: En riktad graf G och en

Läs mer

Grafer, allmänt. Med datastrukturen graf menas vanligen: en mängd av noder (vertices) och en mängd av bågar (edges).

Grafer, allmänt. Med datastrukturen graf menas vanligen: en mängd av noder (vertices) och en mängd av bågar (edges). Grafer, allmänt Allmänt Med datastrukturen graf menas vanligen: en mängd av noder (vertices) och en mängd av bågar (edges). En graf kan vara riktad (directed) eller oriktad (undirected). En graf kan vara

Läs mer

Asymptotisk komplexitetsanalys

Asymptotisk komplexitetsanalys 1 Asymptotisk komplexitetsanalys 2 Lars Larsson 3 4 VT 2007 5 Lars Larsson Asymptotisk komplexitetsanalys 1 Lars Larsson Asymptotisk komplexitetsanalys 2 et med denna föreläsning är att studenterna skall:

Läs mer

Ett generellt träd är. Antingen det tomma trädet, eller en rekursiv struktur: rot /. \ /... \ t1... tn

Ett generellt träd är. Antingen det tomma trädet, eller en rekursiv struktur: rot /. \ /... \ t1... tn Träd allmänt Träd allmänt Ett generellt träd är Antingen det tomma trädet, eller en rekursiv struktur: rot /. \ /... \ t1... tn där t1,..., tn i sin tur är träd och kallas subträd, vars rotnoder kallas

Läs mer

Programmering II (ID1019) :00-17:00

Programmering II (ID1019) :00-17:00 ID1019 Johan Montelius Programmering II (ID1019) 2014-03-10 14:00-17:00 Förnamn: Efternamn: Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.

Läs mer

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition Grafdefinitioner Träd N = {i}: noder (hörn) = {(i, j)}, i N, j N: bågar (kanter) Graf: G = (N, ) efinitioner Väg: Sekvens av angränsande bågar. ykel: Väg som startar och slutar i samma nod. En enkel väg

Läs mer

Asymptotisk analys innebär att... man försöker uppskatta vad som händer för stora indatamängder.

Asymptotisk analys innebär att... man försöker uppskatta vad som händer för stora indatamängder. OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervarlsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet

Läs mer

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition Grafdefinitioner Träd N = {i}: noder (hörn) = {(i, j)}, i N, j N: bågar (kanter) Graf: G = (N, ) efinitioner Väg: Sekvens av angränsande bågar. ykel: Väg som startar och slutar i samma nod. En enkel väg

Läs mer

Föreläsning 2: Simplexmetoden. 1. Repetition av geometriska simplexmetoden. 2. Linjärprogrammeringsproblem på standardform.

Föreläsning 2: Simplexmetoden. 1. Repetition av geometriska simplexmetoden. 2. Linjärprogrammeringsproblem på standardform. Föreläsning 2: Simplexmetoden. Repetition av geometriska simplexmetoden. 2. Linjärprogrammeringsproblem på standardform. 3. Simplexalgoritmen. 4. Hur bestämmer man tillåtna startbaslösningar? Föreläsning

Läs mer

Krafts olikhet. En momentant avkodbar kod (prefixkod) med kodordslängderna l 1,...,l N existerar om och endast om. 2 l i. 1 i=1

Krafts olikhet. En momentant avkodbar kod (prefixkod) med kodordslängderna l 1,...,l N existerar om och endast om. 2 l i. 1 i=1 Datakompression fö 2 p.1 Krafts olikhet En momentant avkodbar kod (prefixkod) med kodordslängderna l 1,...,l N existerar om och endast om N 2 l i 1 Bevis: Antag att vi har en trädkod. Låt l max =max{l

Läs mer

Några svar till TDDC70/91 Datastrukturer och algoritmer

Några svar till TDDC70/91 Datastrukturer och algoritmer Några svar till TDDC70/91 Datastrukturer och algoritmer 2011--18 Följande är lösningsskisser och svar till uppgifterna på tentan. Lösningarna som ges här ska bara ses som vägledning och är oftast inte

Läs mer

Informationsteknologi Tom Smedsaas 19 augusti 2016

Informationsteknologi Tom Smedsaas 19 augusti 2016 Informationsteknologi Tom Smedsaas 19 augusti 016 VL-träd Definition Ett VL-träd är ett binärt sökträd där det för varje nod gäller att skillnaden i höjd mellan nodens vänster och höger subträd är högst

Läs mer

Optimeringslära Kaj Holmberg

Optimeringslära Kaj Holmberg Tekniska Högskolan i Linköping Optimering för ingenjörer Matematiska Institutionen Lösning till tentamen Optimeringslära 26-6- Kaj Holmberg Lösningar Uppgift Hinkpackning (hink = tur med cykeln. Jag använder

Läs mer

Tentamensinstruktioner. När Du löser uppgifterna

Tentamensinstruktioner. När Du löser uppgifterna Matematiska institutionen Optimeringslära TENTAMEN TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER för M/EMM Datum: 0 augusti 201 Tid: 8.00-1.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering

Läs mer

1. Vad är optimering?

1. Vad är optimering? . Vad är optimering? Man vill hitta ett optimum, när något är bäst, men att definiera vad som är bäst är inte alltid så självklart. För att kunna jämföra olika fall samt avgöra vad som är bäst måste man

Läs mer

Optimeringslära Kaj Holmberg

Optimeringslära Kaj Holmberg Tekniska Högskolan i Linköping TAOP88 Matematiska Institutionen Lösning till tentamen Optimeringslära 9--7 Kaj Holmberg Lösningar Uppgift a: Inför slackvariabler x 5, x 6 och x 7 Starta med slackvariablerna

Läs mer

Föreläsning 7 Datastrukturer (DAT037)

Föreläsning 7 Datastrukturer (DAT037) Föreläsning 7 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-11-21 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037 Förra

Läs mer

Vinjetter TDDC91 Datastrukturer och algoritmer

Vinjetter TDDC91 Datastrukturer och algoritmer Vinjetter TDDC91 Datastrukturer och algoritmer 17 augusti 2015 2 Scenario 1 Man har inom Posten Logistik AB skrivit programvara för sortering av kundinformation och vill standardisera användningen av sorteringsalgoritmer.

Läs mer

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 10. Grafer, Dijkstra och Prim Föreläsning 10 Grafer, Dijkstra och Prim Föreläsning 10 Grafer Representation av grafer Dijkstras algoritm Implementation av Dijkstras algoritm Minimium spanning tree Broarna i Königsberg, Euler, 17 Grafer

Läs mer

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 10. Grafer, Dijkstra och Prim Föreläsning 10 Grafer, Dijkstra och Prim Föreläsning 10 Grafer Representation av grafer Dijkstras algoritm Implementation av Dijkstras algoritm Minimium spanning tree Läsanvisning och uppgifter Broarna

Läs mer

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 10. Grafer, Dijkstra och Prim Föreläsning 10 Grafer, Dijkstra och Prim Föreläsning 10 Grafer Representation av grafer Dijkstras algoritm Implementation av Dijkstras algoritm Minimium spanning tree Läsanvisning och uppgifter Broarna

Läs mer

Antag att följande träd genereras i ett spelförande program om vi applicerar evalueringsfunktionen

Antag att följande träd genereras i ett spelförande program om vi applicerar evalueringsfunktionen 1. Komplexiteten hos en agent beror mycket på vilken omgivning den skall verka i. Vad innebär det att en omgivning är stokastisk, episodisk och dynamisk? Ge exempel på en omgivning som är stokastisk, episodisk

Läs mer

Optimeringslära Kaj Holmberg

Optimeringslära Kaj Holmberg Tekniska Högskolan i Linköping TAOP88 Matematiska Institutionen Lösning till tentamen Optimeringslära 28--24 Kaj Holmberg Uppgift Lösningar a: Målfunktionen är summan av konvexa funktioner (kvadrater och

Läs mer

Lösningsförslag till tentamen i SF1861 Optimeringslära för T. Onsdag 25 augusti 2010 kl

Lösningsförslag till tentamen i SF1861 Optimeringslära för T. Onsdag 25 augusti 2010 kl Lösningsförslag till tentamen i SF86 Optimeringslära för T. Onsdag 25 augusti 2 kl. 4. 9. Examinator: Per Enqvist, tel. 79 62 98. (a) Vi har ett nätverksflödesproblem med 5 noder. Låt x = (x 2, x 3, x

Läs mer

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten.

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten. OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervalsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet

Läs mer

Föreläsning 4: Kombinatorisk sökning

Föreläsning 4: Kombinatorisk sökning DD2458, Problemlösning och programmering under press Föreläsning 4: Kombinatorisk sökning Datum: 2007-09-25 Skribent(er): Martin Boij, Erik Gustafsson Föreläsare: Mikael Goldmann 1 Bakgrund Totalsökning

Läs mer

Föreläsning 4: Giriga algoritmer. Giriga algoritmer

Föreläsning 4: Giriga algoritmer. Giriga algoritmer Föreläsning 4: Giriga algoritmer Giriga algoritmer Denna typ av algoritmer arbetar efter följande princip: Gör i varje situation det som är lokalt optimalt, d.v.s. bäst för stunden. Några exempel vi redan

Läs mer

Programkonstruktion och Datastrukturer

Programkonstruktion och Datastrukturer Programkonstruktion och Datastrukturer VT 2012 Tidskomplexitet Elias Castegren elias.castegren.7381@student.uu.se Problem och algoritmer Ett problem är en uppgift som ska lösas. Beräkna n! givet n>0 Räkna

Läs mer

Tentamensinstruktioner. När Du löser uppgifterna

Tentamensinstruktioner. När Du löser uppgifterna Matematiska institutionen Optimeringslära TENTAMEN TAOP/TEN OPTIMERING FÖR INGENJÖRER för M/EMM Datum: 29 maj 20 Tid:.00-.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar

Läs mer

Programmering II (ID1019) :00-11:00

Programmering II (ID1019) :00-11:00 ID1019 Johan Montelius Programmering II (ID1019) 2015-06-11 08:00-11:00 Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten. Svaren

Läs mer

1 Konvexa optimeringsproblem grundläggande egenskaper

1 Konvexa optimeringsproblem grundläggande egenskaper Krister Svanberg, april 2012 1 Konvexa optimeringsproblem grundläggande egenskaper Ett optimeringsproblem är i viss mening godartat om det tillåtna området är en konvex mängd och den målfunktion som ska

Läs mer

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet Algoritmer, datastrukturer och komplexitet Övning 6 Anton Grensjö grensjo@csc.kth.se 9 oktober 2015 Anton Grensjö ADK Övning 6 9 oktober 2015 1 / 23 Översikt Kursplanering Ö5: Grafalgoritmer och undre

Läs mer

Datastrukturer, algoritmer och programkonstruktion (DVA104, HT 2014) Föreläsning 5

Datastrukturer, algoritmer och programkonstruktion (DVA104, HT 2014) Föreläsning 5 Datastrukturer, algoritmer och programkonstruktion (DVA104, HT 2014) Föreläsning 5? FORTSÄTTNING TRÄD RECAP (förra föreläsningen) RECAP (förra föreläsningen) Träd är icke-linjära datastrukturer som ofta

Läs mer

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet Algoritmer, datastrukturer och komplexitet Övning 6 Anton Grensjö grensjo@csc.kth.se 4 oktober 2017 1 Idag Algoritmkonstruktion (lite blandat) Redovisning och inlämning av labbteori 3 2 Uppgifter Uppgift

Läs mer

Tentamen Datastrukturer för D2 DAT 035

Tentamen Datastrukturer för D2 DAT 035 Tentamen Datastrukturer för D2 DAT 035 17 december 2005 Tid: 8.30-12.30 Ansvarig: Peter Dybjer, tel 7721035 eller 405836 Max poäng på tentamen: 60. (Bonuspoäng från övningarna tillkommer.) Betygsgränser:

Läs mer

Dynamisk programmering. Dynamisk programmering. Dynamisk programmering. Dynamisk programmering

Dynamisk programmering. Dynamisk programmering. Dynamisk programmering. Dynamisk programmering Betrakta ett lagerhållningsproblem i flera tidsperioder. Vi har tillverkning och försäljning av produkter i varje tidsperiod. Dessutom kan vi lagra produkter mellan tidsperioder, för att utnyttja stordriftsfördelar

Läs mer

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER Matematiska institutionen Optimeringslära TENTAMEN TAOP88/TEN OPTIMERING FÖR INGENJÖRER Datum: juni 20 Tid: 8.00-.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar i boken

Läs mer

Syntaktisk parsning (Jurafsky & Martin kapitel 13)

Syntaktisk parsning (Jurafsky & Martin kapitel 13) Syntaktisk parsning (Jurafsky & Martin kapitel 13) Mats Wirén Institutionen för lingvistik Stockholms universitet mats.wiren@ling.su.se DH2418 Språkteknologi DA3010 Språkteknologi för datorlingvister Föreläsning

Läs mer

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER Matematiska institutionen Optimeringslära TENTAMEN TAOP88/TEN OPTIMERING FÖR INGENJÖRER Datum: juni 0 Tid: 8.00-.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar i boken

Läs mer

Föreläsning 6: Nätverksoptimering

Föreläsning 6: Nätverksoptimering Föreläsning 6: Nätverksoptimering. Minkostnadsflödesproblem i nätverk.. Modellering och grafteori.. Simplexmetoden. Föreläsning 6 - Ulf Jönsson & Per Enqvist Nätverksoptimering Minkostnadsflödesproblem

Läs mer