Diekert/Weiß/Milosavljevic Wintersemester 2011/12 Algorithmik Votierübungen 3 Besprechung: 23./24.11. bzw. 30.11./1.12. 1. Beweisen Sie die Jensensche Ungleichung: Sei f : R → R eine konvexe Funktion und λi ≥ 0 P für 1 ≤ i ≤ k mit ki=1 λi = 1. Dann gilt ! k k X X f λi xi ≤ λi f (xi ) i=1 i=1 2. Eine Ölfirma plant eine neue Pipeline durch ein Ölfeld. Die neue Pipeline soll auf einer Geraden von Osten nach Westen verlaufen. In dem Ölfeld gibt es n Ölquellen, deren x- (OstWest-) und y- (Nord-Süd-)Koordinaten bekannt sind. Um den Preis für die Zuleitungen zur Hauptpipeline zu minimieren, soll diese an einer optimalen Position platziert werden (d.h. an der optimalen Stelle in Nord-Süd-Richtung), sodass eine möglichst kurze Strecke von Zuleitungen verlegt werden muss. Geben Sie einen möglichst effizienten Algorithmus zur Lösung dieses Problems an. Kann die optimale Lage in Linearzeit ermittelt werden? 3. Münzen-Algorithmus Geben Sie einen Algorithmus (in Pseudocode) an, der auf die Eingabe einer Menge M von Münzwerten (natürliche Zahlen) und n ∈ N die optimale Darstellung von n (möglichst wenige Münzen) mittels Münzwerten aus M berechnet. Es sind beliebig viele Münzen jedes Münzwertes verfügbar. Beispiel: M = {1, 4, 8, 13}, dann ist n = 20 = 2 ∗ 8 + 4, n = 81 = 5 ∗ 13 + 2 ∗ 8, n = 80 = 6 ∗ 13 + 2 ∗ 1. Sie können annehmen, dass arithmetische Operationen und Vergleiche von natürlichen Zahlen in konstanter Zeit möglich sind. Ihr Algorithmus soll eine Laufzeit von O(n·|M |) besitzen. Warum ist eine Greedy-Strategie für dieses Problem im Allgemeinen fehlerhaft? Beweisen Sie die Korrektheit Ihres Algorithmus. 4. Medianberechnung a) Der in der Vorlesung behandelte Median-Algorithmus bestimmt zunächst den Median von 5er-Blöcken. Würde der Algorithmus immer noch in linearer Zeit ablaufen, wenn stattdessen der Median von 3er-Blöcken oder von 7er-Blöcken bestimmt wird? b) Seien A = [a1 , a2 , . . . , am ] und B = [b1 , b2 , . . . , bm ] zwei sortierte Felder mit insgesamt n = 2m verschiedenen Elementen. Entwerfen Sie einen Algorithmus zum Auffinden eines Medians in A ∪ B. Ihr Algorithmus soll in sublinearer Zeit ablaufen, d.h. eine Komplexität von o(n) haben. Welche Laufzeit hat Ihr Algorithmus? c) Sei k ∈ N fest gewählt. Geben Sie einen Algorithmus zur Bestimmung des k-kleinsten Elementes eines unsortierten Arrays der Länge n (n > k) an. Ihr Algorithmus soll im worst-case n + O(log(n)) Vergleiche benötigen. Hinweis: Beginnen Sie mit n2 paarweise disjunkten Vergleichen, und fahren Sie dann rekursiv mit den jeweils kleineren Elementen fort. 5. Sei G = (V, E) ein ungerichteter Graph. Für S ⊆ V , sei E(S) = {(u, v) ∈ E : u ∈ S, v ∈ / S}, d.h. E(S) ist die Menge der Kanten, die S und V \ S verbinden. Die Kantenausdehnung von G ist definiert als |E(S)| h(G) = min S⊆V |S| 0<|S|≤|V |/2 Ein großes h(G) bedeutet also, dass G “sehr zusammenhängend” ist. Wie groß ist h(G) minimal/maximal in einem Graphen G mit n Knoten? Geben Sie einen Algorithmus (Pseudocode) an um h(G) für einen als Adjazenzmatrix gegebenen Graphen G zu berechnen.