Link¨opings universitet Institutionen f¨or datavetenskap / Matematiska institutionen

advertisement
Linköpings universitet
Institutionen för datavetenskap / Matematiska institutionen
Hans Olsén / Kaj Holmberg
Tentamen
TDDB56 DALGOPT-D Algoritmer och Optimering
23 april 2003, kl 8-13
Lokal: GARN, Garnisonen, Linköping
Examinator: Hans Olsén
Jourhavande lärare:
Hans Olsén (013-282365, 070-2958795)
Kaj Holmberg ( 013-282867)
Visning: date/time to be announced on the course homepage
Hjälpmedel / Admitted material:
Miniräknare / pocket calculator
Engelsk-Svensk ordbok / Swedish-English dictionary
Kursböckerna DALG:
• Lewis, Denenberg: Data Structures and Their Algorithms.
• Goodrich, Tamassia: Data Structures and Algorithms in Java.
Årets kurslitteratur OPT:
• Kombinatorisk optimering med linjärprogrammering, 2002
• Kombinatorisk optimering 2001.
• Papadimitriou, Steiglitz: Combinatorial Optimization,
Kurslitteratur för TAOP13 (2001):
• Linjär och ickelinjär optimering, Lundgren, Rönnqvist och Värbrand.
• Flöden i nätverk och kombinatorisk optimering, Holmberg.
• Kombinatorisk optimering II, Holmberg.
• Utdrag ur Kombinatorisk Optimering, problem och algoritmer, Migdalas and GötheLundgren.
Kurslitteratur för TAOP13 (2000):
• Kombinatorisk Optimering, problem och algoritmer, Migdalas och Göthe-Lundgren.
1
General instructions
• This exam has 8 assignments and 5 pages in total. Read all assignments carefully and
completely before you begin.
• Use a separate sheet for each assignment. Mark each sheet on top with your name,
personnummer, and the course code (TDDB56).
• You may answer in either English or Swedish.
• Write clearly. Unreadable text will be ignored.
• Be precise in your statements. Unprecise formulations may lead to a reduction of points.
• Motivate clearly all statements and reasoning.
• Explain calculations and solution procedures.
• The assignments are not ordered according to difficulty.
• If you use some result from the admitted literature that has not been part of the lectures,
give a reference (book title, page) or give an explanation.
• One copy of each of the admitted course books Lewis/Denenberg and Goodrich/Tamassia
is available for inspection at the central tentavakt desk. Please don’t remove them from
there.
1. (8p) Ett antal högspänningsstationer förser var sin grupp av abonnenter med el. Man vill
koppla ihop stationerna så att man kan nå alla stationer från vilken som helst. Skälet till
detta är att man vill kunna förse alla kunder med el, även om tillförseln till någon station
skulle utebli. (Man antar att totalmängden räcker till.) Ledningarna dras fågelvägen,
dvs rakt mellan stationerna. Stationerna ligger på de platser som anges nedan (x och ykoordinater ges för varje station). Att dra en ledning kostar en viss summa per längdenhet,
och man vill minimera totalkostnaden, dvs minimera total ledningslängd. Använd Euklidiska avstånd.
Koordinater: (0,0),(10,7),(6,8),(9,2),(0,6),(8,6)
(2p) a) Vilken sorts problem är detta? Lös med standardmetod. Målfunktionsvärde behöver
ej anges. Ange problemkomplexitet.
(2p) b) Det visar sig att kopplingarna mellan stationerna inte är helt tillförlitliga. Man vill
därför att alla stationer skall vara kopplade till alla andra även om en länk faller bort.
(Man antar att länken hinner repareras innan någon annan går ner.) Vilken sorts
optimeringsproblem skall man nu lösa för att koppla ihop stationerna på billigaste
sätt? Föreslå en exakt lösningsmetod. (Lös ej.) Ange problemkomplexitet.
(2p) c) Lös problemet i uppgift b approximativt med en heuristik. (Lösningen måste vara
tillåten.) Beskriv kort heuristiken. Ange metodens komplexitet.
(2p) d) Hur förändras problemet i uppgift a om en eller flera stationer inte behöver kopplas
in? Ange problemkomplexitet. Beakta exemplet ovan, om sista stationen, (8,6),
inte behöver kopplas in. Ange en skaplig lösning och diskutera dess eventuella
optimalitet.
2
2. (6p) For each of the four trees below, answer wether it is or is not any of the following
kinds. Motivate your answers!
(0.5p) a) Complete binary tree
(0.5p) b) AVL-tree
(0.5p) c) Heap
3. (4p) Eudolf har köpt fem tavlor med exotiska motiv på sin semester i Outakoski. Han
skall hänga upp dem på en vägg, där dock alla fem inte får plats i bredd. Bredden på
väggen är given, och han vill minimera höjden till den tavla som sitter högst upp. Ingen
tavla får sitta lägre än en meter över golvet. Varje tavla har en given höjd och en given
bredd och inga tavlor får överlappa varandra.
(3p) a) Hjälp Eudolf att formulera en optimeringsmodell (ett linjärt blandat heltalsproblem)
för att bestämma var tavlorna skall sitta på väggen.
Ledning: Skilj på fallen då två tavlor sitter bredvid varandra och då den ena sitter
ovanför den andra.
(1p) b) Ange optimallösningen till modellen i uppgift a om alla tavlorna faktiskt får plats
bredvid varandra.
4. (6p) Consider the following two algorithms f i and f oo. A sequence A = a 0 , a1 , ..., an
is represented with a table A[0..n], and a subsequence A = a i , ai+1 , ..., aj is represented
by the table A[i..j].
(In the pseudo code below, “:=” denotes assignment.)
function fi(table<integer> A[0..n]) : integer
integer x := 0
if (n>0) then
for i from 0 to n do
x := x+i+n
x := fi(A[0..n/2]);
x := fi(A[n/2..n]);
return x;
3
function foo(table<integer> A[0..n]) : integer
integer x := 0
for i from 0 to n do
for j from 0 to i do
x := x+i+j;
return x;
(2p) a) What is the time complexity for f i?
(2p) b) What is the time complexity for f oo?
(2p) c) Is it correct to say that f i is always faster than f oo?
Motivate your answers.
5. (4p) Nedanstående karta ger möjliga vägar från JFK Airport till en affär på Manhattan.
Man måste då passera tunnlar och/eller broar som har begränsad tillåten höjd på fordonen. Den maximala tillåtna höjden på varje vägavsnitt är given i nätverket (om det inte
står något finns ingen höjdbegränsning). Nod 1 är JFK och nod 8 är affären.
5
5
4
6
8
6
7
8
9
3
2
6
4
7
3
1
3
(3p) a) Vilken är den högsta buss som kan köras från JFK till affären och vilken väg ska
man köra den? Använd optimerande standardmetod. Ange problemkomplexitet.
(1p) b) Antag att en ny länk läggs till. Hur kan man utgående från lösningen i uppgift a
avgöra om optimallösningen ändras, samt finna den nya optimallösningen. (Det är
alltså inte tillåtet att börja om från början.)
6. (5p) A study curriculum includes the courses A, B, C, D, E, F, G, H and I. Each of the
courses has some (possibly none) other courses as prerequisites for admission, as listed
below:
• Prerequisites for A: none.
• Prerequisites for B: F, H.
• Prerequisites for C: D, A.
• Prerequisites for D: none.
• Prerequisites for E: A, D.
• Prerequisites for F: D, E.
• Prerequisites for G: C, D.
• Prerequisites for H: C, A.
4
• Prerequisites for I: C, F.
(1p) a) Represent the information as a graph G where courses correspond to vertices and
prerequisites correspond to edges. What kind of graph is it?
(2p) b) Tina is a part–time student. Shee can only take one course at a time. Use a
well–known graph algorithm to determine a study plan for Tina. Show the consecutive steps of the computation performed on the graph G.
(2p) c) Each of the courses is taught during a whole term. Several courses may be taught
in the same term provided that all prerequisite courses were offered in previous
terms. What is the minimum number of terms needed to schedule all courses in the
example curriculum? Justify your answer. Use the notion of path length to give a
general answer to this question for an arbitrary graph of courses.
7. (4p) På vissa CD-spelare finns funktioner som underlättar inspelning från en CD till ett
kassettband. Man försöker utnyttja bandet på bästa sätt, genom att göra den outnyttjade
biten vid slutet av bandet så liten som möjligt, utan att dela upp något musikstycke.
Antag att vi har ett 90 minuters band (med 45 minuter på varje sida) och en CD med 70
minuter musik uppdelad i 20 olika stycken, där stycke j har längden a j minuter. (Antag
för enkelhetens skull att aj är heltal.) Frågan är vilka (hela) stycken som skall spelas in
på bandets första sida, så att den blir så full som möjligt.
(3p) a) Formulera detta som ett optimeringsproblem. (Undvik ickelinjära funktioner.) Föreslå
ett sätt att lösa problemet. Ange problemkomplexitet. Tror du att CD-spelarna
finner den exakta optimallösningen? Motivera.
(1p) b) Eftersom ett musikstycke inte alltid har en längd av ett helt antal minuter, bör man
nog räkna i sekunder istället. Påverkar det problemets praktiska svårighetsgrad?
Svara för åtminstone två olika lösningsmetoder.
8. (3p) Let the set S = {1, 3, 6, 7, 12, 23, 24, 33} be given.
(1p) a) Construct a heap storing the elements of S (such that the minimum element appears
at the root): Draw the tree and the array representation.
(1p) b) Show the corresponding picture (tree and array) after performing a removeMin operation.
(1p) c) Show the corresponding picture (tree and array) after performing an insertItem operation with key k=2 in the original heap.
5
Download