Ubungen zur Vorlesung Effiziente kombinatorische

Werbung
Rolf Wanka
Erlangen, 21. November 2016
Übungen zur Vorlesung
Effiziente kombinatorische Algorithmen
WS 2016/17
Blatt 5
AUFGABE 12:
You are helping the medical consulting firm D OCTORS W ITHOUT W EEKENDS set up the work
schedules of doctors in a large hospital. They’ve got the regular daily schedules mainly worked
out. Now, however, they need to deal with all the special cases and, in particular, make sure that
they have at least one doctor covering each vacation day.
Here’s how it works. There are k vacation periods (e. g., the week of Christmas, the July 4th
weekend, the Thanksgiving weekend, . . .), each spanning several contiguous days. Let D j be the
S
set of days included in the jth vacation period; we will refer to the union of all these days, j D j ,
as the set of all vacation days.
There are n doctors at the hospital, and doctor i has a set of vacation days Si when he or she is
able to work. (This may include certain days from a given vacation period but not others; so, for
example, a doctor may be able to work the Friday, Saturday, or Sunday of Thanksgiving weekend,
but not the Thursday.)
Give a polynomial-time algorithm that takes this information and determines whether it is possible
to select a single doctor to work on each vacation day, subject to the following constraints.
• For a given parameter c, each doctor should be assigned to work at most c vacation days total,
and only days when he or she is available.
• For each vacation period j, each doctor should be assigned to work at most one of the days in
the set D j . (In other words, although a particular doctor may work on several vacation days
over the course of a year, he or she should not be assigned to work two or more days of the
Thanksgiving weekend, or two or more days of the July 4th weekend, etc.)
The algorithm should either return an assignment of doctors satisfying these constraints or report
(correctly) that no such assignment exists.
Anmerkung: Thanksgiving ist in den USA immer am vierten Donnerstag im November. Es ist dort
im Andenken an die Pilgerväter das wichtigste Familienfest überhaupt, zu dem man traditionell
die Familie zum Truthahnessen besucht. Zudem markiert der Freitag nach Thanksgiving, der sog.
Black Friday, den Beginn der Weihnachtszeit. Im übrigen läuft in der Zeit von Donnerstag bis
Sonntag in den USA praktisch nichts.
AUFGABE 13:
Sei N = (G, s,t, c) ein Netzwerk, und sei f ein Fluß auf N. Der Satz von F ORD /F ULKERSON besagt:
f ist ein maximaler Fluß auf N ⇐⇒ In N gibt es keinen erweiternden Weg bzgl. f
Daraus kann man das folgende algorithmische Schema“ ableiten: Suche solange einen erweitern”
den Weg und verbessere mit ihm den Fluß, bis es keinen erweiternden Weg mehr gibt. Der dann
vorhandene Fluß ist maximal.
Wir hatten an einem kleinen Beispiel gesehen, daß dieser Ansatz zu exponentieller Laufzeit führen
kann. In diesem Beispiel waren alle Kapazitäten natürliche Zahlen.
In der Vorlesung wurde die Kapazitätsfunktion c ja sogar als c : E → IR+ definiert, d. h. als Bildbereich sind die positiven reellen Zahlen erlaubt. Wir zeigen nun, daß im Fall irrationaler Zahlen das
algorithmische Schema sogar endlos laufen kann.
√
Sei λ = − 12 + 12 · 5 ≈ 0, 618034 die positive reelle Zahl mit λ2 + λ = 1.
(a) Zeigen Sie die folgenden nützlichen Beziehungen:
(i) λ + 2 =
∞
1
= ∑ λi
1 − λ i=0
(ii) λi+2 = λi − λi+1
Gegeben sei nun das in der folgenden Abbildung dargestellte Netzwerk. An den Kanten stehen die
Kapazitäten.
λ+2
s
λ+2
1
λ+2
λ+2
λ+2
λ+2
λ
λ+2
λ+2
λ+2
λ+2
λ+2
t
λ+2
λ2
(b) Zeigen Sie, daß es einen Fluß f von s nach t mit | f | = 2 gibt, und daß dieser maximal ist.
(c) Zeigen Sie: Es gibt eine Folge von erweiternden Wegen Pi , i ≥ 0, so daß die Werte der durch
Pi bestimmten verbesserten Flüsse gegen 2 konvergieren, ohne daß der Wert 2 erreicht wird.
Hinweis: Wählen Sie P0 so, daß von den drei mittleren waagrechten Kanten nur die obere
verwendet wird. Die übrigen erweiternden Wege Pi werden nun so gewählt, daß sie jeweils
alle drei mittleren waagrechten Kanten enthalten und den Fluß um jeweils λi+1 erhöhen. Die
Wege sind dabei natürlich nicht die naheliegenden kürzesten Wege. Ab P1 ist immer eine der
mittleren Kanten eine Rückwärtskante, während alle anderen Kanten Vorwärtskanten sind.
Zum Ausprobieren gibt es ein gesondertes Blatt mit dem Netzwerk.
λ+2
s
λ+2
1
λ+2
λ+2
λ+2
λ+2
λ
λ+2
λ+2
λ+2
λ+2
λ+2
t
λ+2
λ2
s
t
s
t
s
t
s
t
s
t
Ein sehr einflußreicher Aufsatz von Tony Hoare aus dem Jahr 1962 führte nicht nur den QuicksortAlgorithmus ein, sondern in dem Aufsatz wurde zum ersten Mal überhaupt der Erwartungswert für
die Laufzeit eines Algorithmus berechnet. Den Aufsatz können Sie von der Webseite
http://comjnl.oxfordjournals.org/cgi/content/abstract/5/1/10
herunterladen. Der Link ist auch auf der Webseite zur Vorlesung zu finden.
Als gewissenhafter Wissenschaftler hat Hoare Quicksort auf einem damals verfügbaren Computer,
einem National-Elliott 405, implementiert und mit Mergesort verglichen. Die Vergleichsdaten hat
er in einer Tabelle (auf S. 13 des Aufsatzes) zusammengefaßt, die hier wiedergegeben und es wert
ist, angeschaut zu werden. Man beachte auch die Fußnote zum Mergesort!
Table 1
N UMBER OF I TEMS
M ERGE S ORT
500
2 min 8 sec
1,000
4 min 48 sec
1,500
8 min 15 sec∗
2,000 11 min 0 sec∗
∗
Q UICKSORT
1 min 21 sec
3 min 8 sec
5 min 6 sec
6 min 47 sec
These figures were computed by formula, since
they cannot be achieved on the [National-Elliott] 405
[computer] owing to limited store size.
Herunterladen