Videregående Algoritmik DIKU, timers skriftlig eksamen, 1. april 009 Nils Andersen og Pawel Winter Alle hjælpemidler må benyttes, dog ikke lommeregner, computer eller mobiltelefon. Opgavesættet består af 9 opgaver, som tillægges lige stor vægt. Version med vejledende løsninger indsat! Opgave 1 Tre elværker E 1, E, E med produktionskapaciteter på henholdsvis, og 9 MW (megawatt) skal forsyne byer B 1, B og B med elektricitet. Byernes el-behov er på henholdsvis,, og 8 MW. Forsyningen sker via transformatorstationer T 1 og T, som har kapaciteter på henholdsvis 1 og 10 MW. Ledningsnettets kapaciteter er angivet i Figur 1 i to tabeller (fra elværker til transformatorstationer og fra transformatorstationer til byer). T 1 T E 1 E E B 1 B B T 1 T Figur 1: Ledningskapaciteter fra elværker til transformatorstationer og fra transformatorstationer til byerne Spørgsmål 1.1 Formuler et maksimal strømningsproblem som vil gøre det muligt at afgøre om byernes strømbehov kan dækkes inden for de angivne kapacitetsbegrænsninger. Løsning: Strømnetværket vil indeholde 1 knuder: 1 kilde s, knuder repræsenterende elværker, knuder repræsenterende byer, 1 dræn t, samt par knuder, hvert par (L,R) representerende een transformatorstation. Kilden forbindes til de tre elværker-knuder via orienterede kanter med kapaciteter på hhv., og 9 MW. Elværk-knuder forbindes til L-transformator-knuder med kanter som har kapaciteter angivet i Figur 1 (til venstre). L-transformator-knuder forbindes til deres R-transformator-knuder med kapaciteter på hhv. 1 og 10 MW. R-transformator-knuder forbindes til by-knuder via orienterede kanter med kapaciteter angivet i Figur 1 (til højre). By-knuder forbindes til t via orienterede kanter med kapaciteter på hhv., og 8 MW. Hvis værdien af den maksimale strøm i dette netværk er 1, så ndes der en løsning som vil dække byernes behov. Ellers ikke. 1
Opgave Betragt følgende LP-problem L: max x 1 + x hvor x 1 + x 8 x 1 + x x 1 1 x 1 x 0 x 1 0, x 0 Spørgsmål.1 Løs L grask (L har kun variable, så begrænsninger kan tegnes i et - dimensionalt koordinatsystem). Spørgsmål. løsning. Angiv samtlige lovlige basisløsninger og forklar, hvor de ndes i den graske Spørgsmål. Hvor mange optimale løsninger har L? Spørgsmål. Løs L v.h.a. SIMPLEX. Spørgsmål. Angiv det duale problem, og forklar, hvordan man kan nde løsningen til det duale problem uden brug af SIMPLEX Løsning: Ad 1. Grask løsning - se Fig x!x1+x = x1!x=0 (0,) (1,) (0,0) (1,1) x1+x=8 x1 x1 = 1 Figur :
Ad. Lovlige basisløsninger er (0,) og (1,). Ad. Der er uendelig mange optimale løsninger. De ligger på liniestykket mellem (0,) og (1,). Ad. Løsning v.h.a. SIMPLEX: Overskudsformuleringen (eng. slack formulation) bestemmes først. z 0 = 0 x 1 + x x = 8 x 1 x x = + x 1 x x = 1 x 1 x = 0 x 1 + x x skal ind i basis, x skal ud af basis. Dermed fås z 0 = + 0x 1 x x = + x 1 x x = x 1 + x x = 1 x 1 x = + 0x 1 x SIMPLEX stopper, da alle koecienter i objektfunktionen er ikke positive. Ad. Det duale problem er: min 8y 1 + y + y hvor y 1 y + y + y 1 y 1 + y + 0y y 1 y 1, y, y, y 0 Ifølge formel (9.9) er den optimale løsning til det duale problem: y 1 = 0, y = 1, y = 0, y = 0 Opgave Betragt den orienterede graf G = (V,E) vist i Fig., hvor tal knyttet til kanter angiver deres kapaciteter. Spørgsmål.1 Find den maksimale strømning fra s til t v.h.a. Edmonds-Karp algoritme (tegn det residuale netværk hver gang strømningen forøges). Spørgsmål. Angiv snittet med den mindste kapacitet, og forklar, hvordan du har fundet det. Forklaringen skal kunne anvendes på vilkårlige strømningsnetværk.
8 1 s t 1 1 10 Figur : Strømningsnetværk G Spørgsmål. Nu får du lov til at forbedre værdien af den maksimale strømning ved at ændre kapaciteten af præcis een kant. Hvilken kant ville du vælge for at forøge strømningsværdien mest muligt? Hvor meget skal kantens kapacitet mindst forøges med? Ad 1. Se Fig.. Ad. Snittet med den minimale kapacitet fås ved at identicere alle knuder, som kan nås fra kilden s i det residuale netværk. Da det residuale netværk ikke indeholder nogle strømningsforøgende veje, så kan t ikke nås fra s. Snittet er ({s,1}, {,,,,,t}). Ad. Da vi kun får lov til at øge kapaciteten af een kant, må det være en af de kanter, der krydser snittet, altså (s,) eller (1,). Det kan ikke betale sig at forøge kapaciteten af (1,) med mere end 1 enhed, idet der ikke kan presses mere igennem (,). Forøges kapaciteten af (s,) med enheder, kan de presses fra s til t via s----t. Opgave Betragt følgende skeduleringsproblem, som i det følgende kaldes MIN-SPAN. Der er givet m maskiner M 1, M,..., M m og n jobs J 1, J,..., J n. Job J j kræver t j tid og kan udføres på enhver af de m maskiner. Lad A i betegne indices af jobs skeduleret på maskine M i. Det tager T i = j A i t j at udføre disse jobs. Lad T = max 1 i m {T i} De n jobs ønskes skeduleret på de m maskiner således at T bliver så lille så muligt. MIN- SPAN vides at være N P-hård. Betragt følgende grådige approximationsalgoritme til at løse problemet, som i det følgende kaldes GREEDY-SPAN. GREEDY-SPAN A i = 0, T i = 0 for alle i = 1,,..., m for j = 1,,..., n Lad M i være maskinen med det mindste T i A i = A i {J j } T i = T i + t j Returner (A i, T i ) med det største T i.
enheder sendes via s!!!t. Det residuelle netværk bliver s 8 1 1 1 10 t enheder sendes via s!1!!!t og enheder sendes via s!!!!t (disse veje er kantdisjunkt samme antal kante! derfor kan de vælges i vilkårlig rækkefølge). s 1 8 9 Til sidst kan der presses enheder via s!1!!!!!!t. Det residuelle netværk bliver t s 1 1 1 t Det maksimelle strøm har værdi 1 Figur : Spørgsmål.1 Håndkør GREEDY-SPAN for maskiner M 1, M, M og jobs J 1, J, J, J, J, J med t 1 =, t =, t =, t =, t =, t =. Spørgsmål. Argumenter for, at GREEDY-SPAN ikke nder en optimal løsning, og foreslå en anden polynomiel algoritme, som vil nde en bedre løsning for ovenstående probleminstans. Tror du, at du har fundet en algoritme, som altid nder en optimal løsning? Svaret skal begrundes, og det kan gøres ganske kort. Spørgsmål. Lad T betegne værdien af den optimale løsning til MIN-SPAN. Afgør, om T 1 m m j=1 t j eller T 1 m m j=1 t j. Afgør, om T max 1 j n {t j } eller T max 1 j n {t j }. Spørgsmål. Vis, at GREEDY-SPAN er en -approximationsalgoritme. Spørgsmål. Dener en probleminstans med m maskiner og n = m(m 1)+1 jobs således at forholdet mellem den approximative løsning og den optimale løsning kommer vilkårlig tæt på, når m går mod. Ad 1. Håndkøring: A 1 = {J 1, J }, A = {J, J }, A = {J, J }. Desuden T 1 = 8, T =, T =. D.v.s. (A 1, T 1 ) returneres af GREEDY-SPAN.
Ad. GREEDY-SPAN er ikke optimal: hvis jobs sorteres efter ikke-stigende tid, fås en løsning hvor alle jobs er færdige senest efter tidsenheder. Denne SORTERET- GREEDY-SPAN algoritme er en polynomiel algoritme. Det er højst usandsynligt at SORTERET-GREEDY-SPAN er en optimal algoritme. Problemet er N P-hårdt og kan ikke løses i polynomiel tid medmindre P = N P. Ad. T er for begge udtryk. Disse er altså nedre grænser for den optimale værdi. Ad. For at bevise, at GREEDY-SPAN er en -approximationsalgoritme, skal de nedre grænser benyttes. Antag, at GREEDY-SPAN nder ud af, at den maksimale belastning er på maskine M i. Vi bemærker, at når job J j knyttes til M i, så er T i t j mindst blandt alle maskiner. Derfor n m(t i t j ) Dividerer vi med m på begge sider, fås T i t j 1 m Da højre side er en nedre grænse for T, fås nu k=1 n k=1 T i t j T T k T k Desuden Vi får (som ønsket) t j max 1 j n {t j} T T i = (T i t j ) + t j T + T = T Ad. Lad de første n 1 = m(m 1) jobs kræve 1 tidsenhed, og lad det sidste job kræve m tidsenheder. GREEDY-SPAN spreder de korte jobs på de m maskiner og tilføjer det sidste job på en af dem (som dermed kræver m 1 tidsenheder). Det er oplagt, at den optimale strategi er at starte med det store job og derefter sprede de korte jobs på de resterende m 1 maskiner. Alle maskiner vil da være færdige efter m tidsenheder. Da m kan vælges vilkårligt stort, kommer forholdet vilkårligt tæt på. Opgave Problemet MIN-SPAN beskrevet i den foregående opgave kan løses eksakt v.h.a. en branchand-bound algoritme (se noterne, side, for denitioner af begreber). Foreslå en branch-andbound algoritme ved at besvare følgende: Spørgsmål.1 Spørgsmål. Spørgsmål. tilfældigt)? Hvordan deles problemer i delproblemer? Hvordan kan man nde en ikke-triviel nedre grænseværdi? Hvordan kan man vælge et delproblem (hvis man ikke vil gøre det helt
Spørgsmål. Hvordan kan man nde en lovlig løsning for et delproblem? Ad 1. Hvert problem på det j-te niveau kan f.eks. deles i så mange delproblemer som der er maskiner. I hvert delproblem knyttes det j-te job til den i-te maskine. Der vil højst være n niveauer. Ad. I hvert delproblem er nogle jobs allerede skeduleret til bestemte maskiner. En lovlig nedre grænse fås for eksempel ved at tage det seneste tidspunkt for afslutning af de allerede skedulerede jobs. Hvis et af de endnu ikke skedulerede jobs tager længere tid, fås en bedre nedre grænse. Man kan desuden tage middelværdien af tider for de ikke-skedulerede jobs. Ad. Man kan for eksempel altid vælge det delproblem som har den mindste nedre grænse. Ad. Man kan nde en lovlig løsning for et delproblem v.h.a. GREEDY-SCAN hvor A- og T-værdier passende opdateres med de allerede skedulerede job. Opgave For et helt tal k vil vi ved et k-hjul forstå en graf med k punkter u 0, u 1, u, u,..., u k, u k 1 og (k 1) kanter (u 1, u ), (u, u ),..., (u k, u k 1 ), (u k 1, u 1 ) samt (u 0, u 1 ), (u 0, u ), (u 0, u ),..., (u 0, u k ), (u 0, u k 1 ). Figuren viser et -hjul. Betragt afgørlighedsproblemet WHEEL = { G, k grafen G indeholder som delgraf et k-hjul} Spørgsmål.1 Angiv en algoritme til løsning af WHEEL, og vurder størrelsesordenen af algoritmens køretid. (Som altid skal størrelsesordenen angives i værste tilfælde og som funktion af instansens længde.) Svaret skal begrundes. Lad n betegne antallet af punkter i G. For hver navngivning u 0, u 1,..., u k 1 af k af punkterne kan man i tid proportional med k undersøge, om de kanter, der kræves i denitionen af et k-hjul, faktisk er til stede. Denne metode tager derfor tid O(kn(n 1) (n k + 1)) = O(kn k ) = O(n n+1 ), da vi kan antage k n. Spørgsmål. Giv for hver af klasserne P, N P og N PC en begrundet redegørelse for, hvorvidt problemet WHEEL tilhører eller ligger uden for den pågældende klasse. Idet man som attest kan benytte en navngivning af punkterne i et postuleret k-hjul med u 0, u 1,..., u k 1 i henhold til denitionen, er det oplagt, at WHEEL N P.
Udvid en forelagt graf (V, E) med et punkt u og kanter {(u, v) v V }, så vil den udvidede graf netop indeholde et ( V + 1)-hjul, hvis den oprindelige graf indeholdt en Hamiltonkreds. Dermed har vi vist HAM-CYCLE pol WHEEL og altså WHEEL N PC. (Hvorvidt WHEEL P beror derfor på det store uafklarede spørgsmål, om N P og P falder sammen.) Opgave Spørgsmål.1 Vis, at det specialtilfælde af delmængde-sum-problemet, hvor man kun betragter sådanne addendsæt og målsum (S, t), for hvilke s S(0 < s < t) s t også er N P-fuldstændigt. Det generelle SUBSET-SUM kan reduceres til det beskrevne specialtilfælde på følgende måde: Lad (S, t) være givet, og lad os indføre u = s S s. Addender med værdi 0, eller som er > t, er uden betydning. Hvis u < t, er der ingen løsninger, og hvis u eller en addend har værdi t, har systemet en triviel løsning. Hvis u t, ændres intet, men ellers (t < u < t) tilføjes t u som ny addend (0 < t u < t). I et således dannet nyt system gælder der lighed: s S s + (t u) = t. Det transformerede system vil have en løsning, hvis og kun hvis det oprindelige system har en: Hvis t u ikke har været brugt i summen, er dette oplagt, og hvis det har, t u + s S s = t for en delmængde S S, vil s S\S s = t. Opgave 8 s S Spørgsmål 8.1 Bestem samtlige løsninger x Z til systemet { x (mod 9) x (mod 11) Fremgangsmåden skal forklares. Da 1 (mod 9) og 1 (mod 11), er = 1 mod 9 og = 1 mod 11. Ved at multiplicere den første ækvivalens på begge sider med og den anden på begge sider med omformes systemet til { x 8 (mod 9) x 8 (mod 11) der i henhold til den kinesiske restklassesætning netop har én løsning x Z 99. Idet 11 1 = mod 9 og 9 1 = mod 11, kan den for eksempel ndes som x = 8 11 + 9 = 10 1 (mod 99). Samtlige løsninger er {1 + 99n n Z}. 8
Opgave 9 I denne opgave betragtes et RSA-kryptosystem med oentlig nøgle (e, n) = (, ). Spørgsmål 9.1 Angiv chierteksten svarende til klarteksten bestående af de to symboler (,). Tabellen herunder, som viser x y mod for 0 x og 1 y, kan benyttes ved besvarelsen. x x mod x mod x mod x mod x mod x mod 0 0 0 0 0 0 0 1 1 1 1 1 1 1 8 1 9 18 9 1 1 9 9 1 0 1 1 1 1 1 9 1 8 8 9 1 1 9 1 1 1 10 10 10 10 11 11 11 11 11 11 11 1 1 1 1 1 9 1 1 9 9 1 0 1 1 1 1 1 1 1 18 1 9 8 18 9 1 19 1 9 0 1 0 1 1 1 1 1 1 1 1 11 1 1 1 19 1 1 9 0 1 0 1 1 1 1 1 8 1 1 9 8 1 1 9 9 1 9 0 0 0 1 10 1 1 1 1 1 11 1 1 1 9
x x mod x mod x mod x mod x mod x mod 1 0 10 0 0 1 1 1 1 9 1 8 8 1 1 9 9 9 1 1 19 0 10 1 0 1 1 1 1 1 9 8 1 11 11 11 1 1 1 1 1 9 8 1 1 8 9 9 1 1 1 0 0 0 10 0 1 1 1 9 8 1 1 1 9 1 1 1 (19,) ndes i tabellen som mod og mod. Spørgsmål 9. Bestem φ() og dekrypteringseksponenten d = e 1 mod φ(). (Fremgangsmåden skal forklares.) Idet = 11, er φ() = ( 1)(11 1) = 10 = 0, og da = 81 1 (mod 0), bliver d =. Spørgsmål 9. I steden for d som beregnet ovenfor kan man i dette kryptosystem faktisk nøjes med den langt mindre dekrypteringseksponent d =. Hvordan kan det gå til? (Bevis den anførte påstand.) Påstanden er, at (x ) x (mod ) for alle x, hvilket i henhold til den kinesiske restklassesætning er ensbetydende med x 1 x (mod ) og x 1 x (mod 11) for alle x. Disse to ækvivalenser vises hver for sig: Hvis x, er x 1 0 x (mod ), og ellers giver Eulers sætning, at x φ() = x 1 (mod ), men så er x 1 = (x ) x 1 1 x = x (mod ). På samme måde med den anden ækvivalens: Hvis 11 x, er x 1 0 x (mod 11), og ellers er x φ(11) = x 10 1 (mod 11) og x 1 = (x 10 ) x 1 1 x = x (mod 11). 10