-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathalg-fuer-np.tex
1994 lines (1659 loc) · 83.7 KB
/
alg-fuer-np.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
\documentclass{cheat-sheet}
\pdfinfo{
/Title (Zusammenfassung Algorithmen für NP-harte Probleme)
/Author (Tim Baumann)
}
\usepackage{tikz}
\usetikzlibrary{matrix}
\usepackage{dashbox}
\usepackage{nicefrac}
\newcommand{\Instances}{\mathcal{X}} % set of instances (of an optimization problem)
\newcommand{\Feasible}{\mathcal{F}} % set of feasible solutions (of an optimization problem)
\newcommand{\ObjFun}{Z} % objective function (of an optimization problem)
\newcommand{\Goal}{\odot} % whether to minimize or maximize
\newcommand{\OptTuple}{(\Instances{}, \Feasible{}, \ObjFun{}, \Goal)} % tuple defining an optimization problem
\newcommand{\MinOptTuple}{(\Instances{}, \Feasible{}, \ObjFun{}, \min)} % tuple defining an optimization problem where the goal is to minimize the objective function
\DeclareMathOperator{\Opt}{Opt} % optimal value
\newcommand{\size}[1]{\abs{#1}} % Größe (eines Terms)
\DeclareMathOperator{\NPO}{NPO} % non-deterministic polynomial-time optimization problem
\DeclareMathOperator{\PO}{PO} % polynomial-time optimization problem
\DeclareMathOperator{\APX}{APX} % polynomial-time approximable optimization problem
\DeclareMathOperator{\NP}{NP} % nondeterministic polynomial-time problems
\let\P\relax % undefine \P
\DeclareMathOperator{\P}{P} % polynomial-time problems
\DeclareMathOperator{\PTAS}{PTAS} % polynomial-time approximation schema, class of problems in NPO that possess such
\DeclareMathOperator{\APTAS}{APTAS} % asymptotic polynomial-time approximation schema, class of problems in NPO that possess such
\DeclareMathOperator{\FPTAS}{FPTAS} % fully polynomial-time approximation schema, class of problems in NPO that possess such
\DeclareMathOperator{\AFPTAS}{AFPTAS} % asymptotic fully polynomial-time approximation schema, class of problems in NPO that possess such
\DeclareMathOperator{\PCP}{PCP} % probabilistically checkable proofs
\newcommand{\Prob}{\mathcal{P}} % Optimierungsproblem
\newcommand{\ManyOneRed}{\leq_m} % Many-To-One-Reduzierbarkeit
\newcommand{\TuringRed}{\leq_T} % Turing-Reduzierbarkeit
\newcommand{\TuringEq}{\equiv_T} % Turing-Äquivalenz
\DeclareMathOperator*{\argmax}{arg\,max}
\DeclareMathOperator*{\argmin}{arg\,min}
\newcommand{\Powerset}{\mathcal{P}} % Potenzmenge
\renewcommand{\O}{\mathcal{O}} % Landau-Notation
\newcommand{\ceil}[1]{\lceil #1 \rceil} % Aufrunden
\newcommand{\floor}[1]{\lfloor #1 \rfloor} % Abrunden
\DeclareMathOperator{\Neighbors}{Neighbors} % Nachbarknoten (in einem Graphen)
\DeclareMathOperator{\treewidth}{tw} % Baumweite
\newcommand{\boundary}{\partial} % topologischer Rand
\newcommand{\KCircle}{\tikz{\draw (0,0) circle (2pt);}}
\newcommand{\KSquare}{\tikz{\draw (0,0) rectangle (4pt, 4pt);}}
\newcommand{\KCircleUnsel}{\tikz{\draw [fill=black] (0,0) circle (2pt);}}
\newcommand{\KSquareUnsel}{\tikz{\draw [fill=black] (0,0) rectangle (4pt, 4pt);}}
\newcommand{\KCircleSel}{\tikz{\draw [fill=red] (0,0) circle (2pt);}}
\newcommand{\KSquareSel}{\tikz{\draw [fill=red] (0,0) rectangle (4pt, 4pt);}}
\newcommand{\IndentState}[1]{\State \quad #1}
\definecolor{YoutubeColor}{rgb}{0.7019607843,0.0705882352941182,0.090196078431373} % https://www.youtube.com/yt/brand/en/color.html
\newcommand{\Youtube}[1]{\href{https://www.youtube.com/watch?v=#1}{\textcolor{YoutubeColor}{$\blacktriangleright$}}}
% Hervorhebung von Algorithmen und Problemen
\definecolor{AlgorithmColor}{rgb}{0.7,0.2,0.0}
\newcommand{\Algorithm}[1]{\textcolor{AlgorithmColor}{\textbf{#1}}}
\definecolor{ProblemColor}{rgb}{0.1,0.5,0.4}
\newcommand{\Problem}[1]{\textcolor{ProblemColor}{\textbf{#1}}}
\definecolor{DefinitionColor}{rgb}{1,0.255,0.212}
\newcommand{\Defn}[1]{\textcolor{DefinitionColor}{#1}}
\newcommand{\scriptSection}[1]{\textcolor{gray}{#1}\enspace}
\usepackage{algorithmicx}
\usepackage[noend]{algpseudocode}
% Kleinere Klammern
\delimiterfactor=701
\setlength{\tabcolsep}{2pt}
\begin{document}
\raggedcolumns % stretche Inhalt nicht über die gesamte Spaltenhöhe
\maketitle{Algorithmen für NP-harte Probleme}
Dies ist eine Zusammenfassung zur gleichnamigen Vorlesung von Professor Dr. Torben Hagerup im Sommersemester 2017.
\section{\scriptSection{1} Allgemeine Definitionen}
% §1. Introduction
% §2. Basic Definitions
% §2.1. Basic Definitions
% 2.1
\begin{defn}
Ein \emph{Optimierungsproblem} ist ein Tupel $\OptTuple$ wobei
\begin{itemize}
\item $\Instances \subseteq \{0,1\}^{*}$ eine Menge von \emph{Instanzen},
\item $\Feasible$ eine Abb.\ ist, die jeder Inst.~$x \in \Instances$ eine Menge $\Feasible(x) \subseteq \{0,1\}^{*}$ von \emph{möglichen} (oder \textit{zulässigen}) \emph{Lösungen} zuordnet,
\item $\ObjFun$ eine Abbildung (die \emph{Zielfunktion}) ist, die jedem $x \in \Instances$ und $y \in \Feasible(x)$ einen \textit{Zielwert} $Z(x, y) \in \R$ zuordnet und
\item $\Goal \in \{ \min, \max \}$ angibt, ob die Zielfunktion minimiert oder maximiert werden soll.
\end{itemize}
\end{defn}
% 2.2
\begin{defn}
Eine \emph{optimale Lösung} eines Optimierungsproblems $\OptTuple$ zu einer Instanz~$x \in \Instances$ ist ein $y \in \Feasible(x)$ mit
\[ \ObjFun(x, y) = \Goal_{y \in \Feasible(x)} Z(x, y) =: \Opt(x). \]
\end{defn}
% 2.3
\begin{defn}
Ein Algorithmus \emph{löst} ein Optimierungsproblem~$\OptTuple$, falls er für jedes $x \in \Instances$
\begin{itemize}
\item eine optimale Lösung $y \in \Feasible(x)$ berechnet, falls solch eine existiert,
\item "`unmöglich"' ausgibt, falls keine Lösung existiert oder
\item "`möglich, aber keine optimale Lösung"' sonst.
\end{itemize}
\end{defn}
% 2.4
\begin{defn}
\Defn{$\NPO$} ist die Klasse aller Opt.-Probleme~$\OptTuple$ mit
\begin{itemize}
\item $\Instances{} \in P$
\item Es gibt ein Polynom~$p$, sodass für alle $x \in X$
\begin{itemize}
\item $\size{y} \leq p(\size{x})$ für alle $y \in \Feasible(x)$ und
\item für alle Wörter~$w$ der Länge $\size{w} \leq p(\size{x})$ in polynomieller Zeit~(in~$\size{x}$) entscheidbar ist, ob $w \in \Feasible(x)$.
\end{itemize}
\item Die Funktion $\ObjFun$ ist in polynomieller Zeit berechenbar.
\end{itemize}
\end{defn}
\begin{bem}
Ist $\Prob \in \NPO$, so ist für jede Instanz $x \in \Instances$ die Menge der zulässigen Lösungen endlich.
Somit gibt es entweder eine optimale Lösung oder nicht einmal eine zulässige Lösung.
\end{bem}
\begin{samepage}
% 2.5
\begin{defn}
$\Defn{\PO} \subseteq \NPO$ ist die Subklasse für die ein Lösungsalgorithmus existiert, der in Polynomialzeit läuft.
\end{defn}
% 2.6
\begin{beob}
$\P \neq \NP \implies \PO \neq \NPO$
\end{beob}
% §2.2. Evaluation and Decision Problems
\subsection{\scriptSection{1.1} Auswertungs- und Entscheidungsproblem}
% 2.7
\begin{defn}
Sei $\Prob = \MinOptTuple$ ein Optimierungsproblem.
\begin{itemize}
\item Das zugeh. \emph{Auswertungsproblem}~$\Prob_E$ ist: Gegeben $x \in \Instances$,
\begin{itemize}
\item berechne $\Opt(x)$, falls $x$ eine optimale Lösung besitzt,
\item gib "`zul. Lösungen, aber keine optimale"' aus, falls dies zutrifft,
\item oder gib "`unmöglich"' aus, falls keine zulässige Lösung existiert.
\end{itemize}
\item Das zugeh. \emph{Entscheidungsproblem}~$\Prob_D$ ist: Gegeben $x \in \Instances$ und $k \in \Q$, gibt es eine Lösung $y \in \Feasible(x)$ mit $Z(x, y) \leq k$?
\end{itemize}
\end{defn}
\end{samepage}
% 2.8
\begin{lem}
$\Prob \in \NPO \implies \Prob_D \in \mathrm{NP}$
\end{lem}
% 2.9
\begin{defn}
\begin{itemize}
\item Ein Entscheidungsproblem~$\Prob_1$ ist (in Polynomialzeit) auf ein Entscheidungsproblem~$\Prob_2$ \emph{many-to-one-reduzierbar} (notiert $\Prob_1 \ManyOneRed \Prob_2$) falls eine (in Polynomialzeit) berechenbare Funktion $f : \{ \text{Instanzen von~$\Prob_1$} \} \to \{ \text{Instanzen von~$\Prob_2$} \}$ existiert, sodass die Antwort auf eine Instanz~$x$ von~$\Prob_1$ gleich der Antwort auf die Instanz $f(x)$ von~$\Prob_2$ ist.
\item Ein Problem $\Prob_1$ ist (in Polynomialzeit) auf ein Problem~$\Prob_2$ \emph{Turing-reduzierbar} (notiert $\Prob_1 \TuringRed \Prob_2$) falls ein Algorithmus existiert, der unter Verwendung eines Orakels für~$\Prob_2$ das Problem~$\Prob_1$ (in Polynomialzeit) löst.
\end{itemize}
\end{defn}
% 2.12
\begin{beob}
$
\Prob_1 \ManyOneRed \Prob_2 \implies
\Prob_1 \TuringRed \Prob_2
$
\end{beob}
% 2.10
\begin{beob}
Sei $\Prob \in \NPO$.
Dann gilt $\Prob_D \TuringRed \Prob_E \TuringRed \Prob$.
\end{beob}
% 2.11 und 2.13
\begin{satz}
Sei $\Prob = \OptTuple \in \NPO$ mit $\im(Z) \subseteq \Z$.
\begin{itemize}
\item Es gilt $\Prob_D \TuringEq \Prob_E$.
\item Angenommen, $\Prob_D$ ist NP-vollständig. Dann gilt $\Prob \TuringEq \Prob_D$.
\end{itemize}
\end{satz}
\begin{beweisskizze}
\begin{itemize}
\item
Es gilt $\abs{Z(x, y)} \leq 2^{q(\size{x})}$ für ein Polynom~$x$. \\
Der optimale Wert lässt sich durch binäre Suche unter Verw.\ des Orakels in der Menge möglicher Werte bestimmen.
\item
O.\,B.\,d.\,A. seien die zul. Lösungen als natürliche Zahlen kodiert, sodass ein ganzzahliges Polynom $q$ existiert mit $y < q(\size{x})$ für alle $x \in \Instances{}$ und $y \in \Feasible(x)$.
Betrachte nun $\Prob' = (\Instances{}, \Feasible{}, \ObjFun{}', \Goal{})$ mit $\ObjFun'(x, y) \coloneqq 2^{q(\size{x})} \cdot Z(x, y) + y \in \Z$.
Sei $\theta$ der Optimalwert von~$\Prob'$ zur Instanz~$x \in \Instances$.
Dann ist $y = \theta \,\mathrm{mod}\, q(\size{x})$ eine optimale Lösung der Instanz~$x$ von~$\Prob$.
Dies zeigt $\Prob \TuringRed \Prob_E$.
Es gilt nun
\[
\Prob \TuringRed
\Prob'_E \TuringRed
\Prob'_D \TuringRed
\Prob_D \TuringRed
\Prob,
\]
wobei die zweite Reduktion aus Punkt~1 und die dritte aus der NP-Vollständigkeit von $\Prob_D$ folgt.
\end{itemize}
\end{beweisskizze}
\begin{samepage}
% 2.14
\begin{defn}
Ein Optimierungsproblem~$\Prob$ heißt \emph{NP-hart}, falls $\Prob' \TuringRed \Prob$ für jedes Entscheidungsproblem $\Prob'$ in~$\NP$.
\end{defn}
% 2.15
\begin{beob}
$\Prob \in \NPO$, $\Prob_D$ NP-vollständig $\implies$ $\Prob$ NP-hart
\end{beob}
\subsection{\scriptSection{4.1, 4.2} Approximationslösungen und -fehler}
% 4.1
\begin{defn}
Ein \emph{Approximationsalgorithmus} für ein Optimierungsproblem~$\OptTuple$ ist ein Algorithmus, der für jedes $x \in \Instances$ eine zulässige Lösung $y \in \Feasible(x)$ produziert.
\end{defn}
% 4.2
\begin{defn}
Sei $x \in \Instances$ eine Instanz, für die $\Opt(x)$ existiert. \\
Der \emph{absolute Fehler} von $y \in \Feasible(x)$ ist $\abs{Z(x, y) - \Opt(x)}$.
% ausgelassen: zweiter Teil der Definition
\end{defn}
\end{samepage}
% 4.5
\begin{defn}
Gelte $Z \geq 0$.
Der \emph{relative Fehler} von $y \in \Feasible(x)$ zu~$x \in \Instances$ ist
\[
\begin{cases}
0 & \text{falls } \Goal = \min, \ObjFun(x, y) = \Opt(x) = 0, \\
(\ObjFun(x, y) - \Opt(x)) / \ObjFun(x, y) & \text{falls } \Goal = \min, Z(x, y) > 0, \\
(\Opt(x) - \ObjFun(x, y)) / \Opt(x) & \text{falls } \Goal = \max.
\end{cases}
\]
\end{defn}
\begin{bem}
Der relative Fehler ist eine Zahl in~$\cinterval{0}{1}$.
Eine Lösung ist genau dann optimal, falls ihr relativer Fehler $= 0$ ist.
\end{bem}
% 4.5
\begin{defn}
Ein \emph{$\epsilon$-Approximationsalgorithmus} ($\epsilon \in \cinterval{0}{1}$) für~$\Prob$ ist ein Algorithmus, der für jedes $x \in \Instances$ ein $y \in \Feasible(x)$ mit relativem Fehler $\leq \epsilon$ berechnet.
Das Problem~$\Prob$ heißt \emph{$\epsilon$-approximierbar}, falls ein solcher Alg.\ mit polynomieller Laufzeit existiert.
\end{defn}
% 4.6
\begin{defn}
Sei $\Prob = \OptTuple$ ein Optimierungsproblem mit $Z \geq 0$. \\
Das \emph{Approximationsverhältnis} von $y \in \Feasible(x)$ zu $x \in \Instances$ ist
\[
\begin{cases}
1 & \text{falls } \ObjFun(x, y) = \Opt(x) = 0, \\
\Opt(x) / \ObjFun(x, y) \in \cinterval{1}{\infty} & \text{falls } \Goal = \min, \Opt(x) > 0, \\
\ObjFun(x, y) / \Opt(x) \in \cinterval{1}{\infty} & \text{falls } \Goal = \max, \ObjFun(x, y) > 0.
\end{cases}
\]
\end{defn}
\begin{bem}
Das Approximationsverh.\ ist eine Zahl in~$\cinterval{1}{\infty}$.
Eine Lösung ist genau dann optimal, falls ihr Approximationsverh. $= 1$ ist.
\end{bem}
\begin{defn}
Ein Alg.\ heißt \emph{$r$-Approximationsalgorithmus} ($r \in \ocinterval{1}{\infty}$), falls er für jedes $x \in \Instances$ ein $y \in \Feasible(x)$ mit Approximationsverhältnis $\leq r$ liefert.
Das Problem~$\Prob$ heißt \emph{$r$-approximierbar}, falls ein solcher Algorithmus mit polynomieller Laufzeit existiert.
\end{defn}
\begin{bem}
Für das Approximationsverhältnis~$r$ und den relativen Fehler~$\epsilon$ von $y \in \Feasible(x)$ gilt
\[
r = 1 / (1-\epsilon), \qquad
\epsilon = 1 - 1/\epsilon.
\]
\end{bem}
% 4.7
\begin{defn}
$\Defn{\APX}$ ist die Klasse aller Probleme in NPO, die $r$-approximierbar für ein $r > 1$ sind.
\end{defn}
\subsection{\scriptSection{7} Polynomialzeit-Approximationsschemata}
% 7.2
\begin{defn}
Ein \emph{Polynomialzeit-Approximationsschema} (PTAS) für $\Prob \in \NPO$ ist ein Algorithmus, der für jede Instanz~$x$ von~$\Prob$ und $\epsilon > 0$ eine mögliche Lösung in~$\Feasible(x)$ mit relativem Fehler $\leq \epsilon$ liefert und dessen Laufzeit für jedes fixe $\epsilon > 0$ polynomiell in~$\size{x}$ ist.
\end{defn}
\begin{defn}
$\Defn{\PTAS} \coloneqq \Set{\Prob \in \NPO}{\text{$\Prob$ hat ein PTAS}}$
\end{defn}
% 7.5
\begin{defn}
Ein \emph{asymptot. Polynomialzeit-Approximationsschema} (APTAS) für $\OptTuple{}$ ist ein Algorithmus, der für alle $x \in \Instances{}$ und $\epsilon > 0$ eine mögliche Lösung $y \in \Feasible(x)$ mit
\[ \abs{Z(x, y) - \Opt(x)} \leq \epsilon \cdot \max \{ Z(x,y), \Opt(x) \} + K \]
für eine Konstante~$K$ berechnet und dessen Laufzeit für alle festen~$\epsilon$ polynomiell in $\size{x}$ ist.
\end{defn}
\begin{defn}
Ein (asympt.) \emph{Voll-Polynomialzeit-Approx'schema} ((A)FPTAS) für $\Prob{}$ ist ein (A)PTAS für~$\Prob{}$, dessen Laufzeit für die Instanz $(x, \epsilon)$ durch ein Polynom in $\size{x}$ und in~$1/\epsilon$ beschränkt ist.
\end{defn}
\begin{defn}
$\Defn{\mathrm{(A)(F)PTAS}} \coloneqq \Set{\Prob \in \APX}{\text{$\Prob$ hat ein (A)(F)PTAS}}$
\end{defn}
\begin{center}
\begin{tikzpicture}
\matrix (mat) [matrix of nodes, column sep=0.5cm, row sep=0.3cm]{
&& \node (PTAS) {$\PTAS$}; \\
\node (PO) {$\PO$}; &
\node (FPTAS) {$\FPTAS$}; &&
\node (APTAS) {$\APTAS$}; &
\node (APX) {$\APX$}; &
\node (NPO) {$\NPO$}; \\
&& \node (AFPTAS) {$\AFPTAS$}; \\
};
\draw (PO) to (FPTAS);
\draw (FPTAS) to (PTAS);
\draw (FPTAS) to (AFPTAS);
\draw (PTAS) to (APTAS);
\draw (AFPTAS) to (APTAS);
\draw (APTAS) to (APX);
\draw (APX) to (NPO);
\end{tikzpicture}
\end{center}
\section{Optimierungsprobleme (in $\NPO$)}
\subsection{Überdeckungsprobleme}
\begin{problem}[\Problem{Minimum Vertex Cover}, MVC]
Geg.\ einen unger. Graphen~$G = (V, E)$, berechne eine \textit{Knotenüberdeckung}~$C$, \dh{}
\[
\fa{v, w \in V} \{v, w\} \in E \implies v \in C \vee w \in C,
\]
die minimale Größe~$\size{C}$ unter allen Knotenüberdeckungen besitzt.
\end{problem}
\begin{problem}[\Problem{Minimum Weighted Vertex Cover}]
Geg.\ einen unger. Graphen~$G = (V, E)$ und eine \textit{Kostenfunktion} $c : V \to \R_{\geq 0}$, berechne eine \textit{Knotenüberdeckung}~$C$, die minimale \textit{Kosten} ${\sum}_{v \in C} c(v)$ unter allen Knotenüberdeckungen besitzt.
\end{problem}
\begin{problem}[\Problem{Maximum Independent Set}, MIS]
Geg.\ einen unger. Graphen~$(V, E)$, berechne eine \textit{unabh. Menge}~$M \subseteq V$, \dh{}
\[
\fa{v \in M} \fa{w \in V} (v, w) \in E \implies w \not\in M,
\]
die maximale Größe~$\size{M}$ unter allen unabhängigen Mengen besitzt.
\end{problem}
\begin{bem}
Für einen Graphen $(V, E)$ und eine Teilmenge $S \subseteq V$ gilt: \\
$S$ ist (max.) unabh. Menge $\iff$ $V \setminus S$ ist (min.) Vertex Cover \\
\end{bem}
\begin{problem}[\Problem{Minimum Set Cover}]
Gegeben seien $n \in \N$ und $\mathcal{C}_0 \subseteq \Powerset(\{ 1, \ldots, n \})$.
Die Menge der möglichen Lösungen ist
\[ \Feasible \coloneqq \Set{\mathcal{C} \subseteq \mathcal{C}_0}{{\bigcup}_{S \in \mathcal{C}} S = {\bigcup}_{S \in \mathcal{C}_0} S} \]
Aufgabe: Finde $\mathcal{C} \in \Feasible$ mit minimalem $\size{\mathcal{C}}$!
\end{problem}
\begin{bem}
Minimum Set Cover verallgemeinert Minimum Vertex Cover, (Black-and-White) Dominating Set und Edge Dominating Set.
\end{bem}
\subsection{Graphenfärbungen}
\begin{problem}[\Problem{Minimum Vertex Coloring}, \Youtube{4FE79y_JkCE}]
Gegeben sei ein unger. Graph~$G = (V, E)$.
Die Menge der \textit{Eckenfärbungen} ist
\[
\Feasible \coloneqq \Set{\text{Abbildungen } c : V \to \N}{\fa{\{v, w\} \in E} c(v) \neq c(w)}.
\]
Ziel: Finde $c \in \Feasible$ mit minimaler Anzahl $\max c(V)$ an Farben.
\end{problem}
\begin{problem}[\Problem{Minimum Edge Coloring}]
Gegeben sei ein unger. Graph~$G = (V, E)$.
Die Menge der \textit{Kantenfärbungen} ist
\[
\Feasible \coloneqq \Set{\text{Abb. } c : E \to \N}{\fa{e_1 \neq e_2 \in E} e_1 \cap e_2 \neq \emptyset \implies c(e_1) \neq c(e_2)}
\]
Ziel: Finde $c \in \Feasible$ mit minimaler Anzahl $\max c(V)$ an Farben.
\end{problem}
\subsection{Dominierende Mengen (in Graphen)}
\begin{problem}[\Problem{Minimum Dominating Set}]
Gegeben sei ein Graph $G \!=\! (V, E)$.
Mengen $D \subseteq V$ mit $V = D \cup \Neighbors_G(D)$ heißen \emph{dominierend}.
Ziel: finde domin. Menge~$D$ kleinster Größe~$\size{D}$!
\end{problem}
\begin{problem}[\Problem{Black-and-White Dominating Set}]
Gegeben einen unger. Graph $G = (B \cup W, E)$ mit $B \cap W = \emptyset$, finde ein $D \subseteq B \cup W$ minimaler Größe, sodass $B \subseteq D \cup \Neighbors_G(D)$.
\end{problem}
\begin{problem}[\Problem{Edge Dominating Set}]
Gegeben einen unger. Graph $G$ und $k \in \N$.
Frage: Gibt es eine Kantendominierung der Größe $\leq k$, \dh{} gibt es ein $D \subseteq E$ mit $\size{D} \leq k$, sodass jede Kante in~$E$ mindestens einen Endpunkt mit einer Kante aus~$D$ gemeinsam hat?
\end{problem}
\subsection{Probleme in unger. Graphen mit Kantengewichten}
\begin{problem}[\Problem{Minimum TSP}]
Gegeben sei ein vollständiger unger. Graph $G = (V, E)$ und eine Abb. $c : E \to \R_{\geq 0}$.
% Gegeben sei eine endliche Menge $V$ und eine Abb. $c : V \times V \to \R_{\geq 0}$ mit $c(x, y) = c(y, x)$ für alle $x, y \in V$.
Gesucht ist eine zyklische Permutation $\sigma$ von~$V$ (eine \textit{Tour}), sodass die \textit{Länge} ${\sum}_{v \in V} c(\{ v, \sigma(v) \})$ minimal wird.
\end{problem}
\begin{problem}[\Problem{Minimum $\Delta$-TSP}]
Gegeben sei ein endlicher metrischer Raum~$(V, c)$.
Gesucht ist eine zyklische Permutation $\sigma$ von~$V$ (eine \textit{Tour}), sodass die \textit{Länge} ${\sum}_{v \in V} c(v, \sigma(v))$ minimal wird.
\end{problem}
\begin{problem}[\Problem{Minimum Steiner Forest}]
Geg.\ sei ein unger. Graph $G = (V, E)$ eine \textit{Kostenfktn} $c : E \to \R_{\geq 0}$ und eine Abb. $r : V \to \N$.
Mögliche Lsgn sind Teilmengen $F \subseteq E$ von~$G$, sodass alle $u, v \in V$ mit $r(u) = r(v)$ durch einen Pfad mit Kanten in~$F$ verbunden sind.
Gesucht ist ein solcher Subgraph, der ${\sum}_{e \in E_F} c(e)$ minimiert.
\end{problem}
\subsection{Satisfiability}
\begin{problem}[\Problem{$k$-SAT(isfiability)}] \mbox{} \\
Gegeben sei eine Formel in konjunktiver Normalform, etwa
\[ (x_1 \vee x_2 \vee \overline{x_3}) \wedge (\overline{x_1} \vee \overline{x_3} \vee x_4 \vee \overline{x_5}) \wedge (x_2 \vee x_5) \wedge (x_3 \vee \overline{x_4}). \]
Die Maximalzahl an \textit{Literalen} in einer \textit{Clause} sei dabei $\leq k$.
Entscheide, ob die Formel \emph{erfüllbar} ist,\dh{} ob es eine Zuweisung der Variablen gibt, sodass die Formel wahr ist.
\end{problem}
\begin{samepage}
\begin{problem}[\Problem{MaxSAT}]
Geg.\ eine Formel in KNF, finde eine Variablenzuweisung, die die Anzahl der gültigen Clauses maximiert.
\end{problem}
\subsection{Packungs- und Scheduling-Probleme}
\begin{problem}[\Problem{Minimum Makespan Scheduling}]
Seien $p, n \in \N$ und $l_1, \ldots, l_n \in \R_{> 0}$ gegeben.
Für $f : \{ 1, \ldots, n \} \to \{ 1, \ldots, p \}$ setze
\[ t(f) \coloneqq \max_{1 \leq i \leq p} \sum_{j \in f^{-1}(i)} l_j. \]
Berechne das~$f$, für das $t(f)$ minimal wird!
\end{problem}
\end{samepage}
\begin{interp}
$p$ ist die Anzahl von \textit{Arbeitern},
$l_1, \ldots, l_n$ sind die Längen von zu erledigenden \textit{Jobs}
und $t(f)$ ist die \textit{Gesamtdauer} bei der durch~$f$ gegebenen Verteilung der Jobs auf die Arbeiter an.
\end{interp}
\begin{bem}
MMS ist NP-hart, da das zugeh. Entscheidungsproblem Bin Packing bekannterweise NP-hart ist.
\end{bem}
\begin{problem}[\Problem{Maximum Knapsack}]
Seien $n \in \N$ und $v_1, \ldots, v_n$, $w_1, \ldots, w_n, W \in \R_{> 0}$ gegeben.
Die Menge der möglichen Lsgn sei
\[ \Feasible \coloneqq \Set{S \subseteq \{ 1, \ldots, n \}}{{\sum}_{i \in S} w_i \leq W}. \]
Gesucht: ${\argmax}_{S \in \Feasible} {\sum}_{i \in S} v_i$
\end{problem}
\begin{interp}
Man wählt unter $n$ Sachen mit jeweils einem \textit{Gewicht}~$w_i$ und einem \textit{Nutzwert}~$v_i$ diejenigen aus, die man in einen Rucksack packt, sodass das Gesamtgewicht eine festgelegte Grenze~$W$ nicht übersteigt und der Nutzen maximal wird.
\end{interp}
\begin{problem}[\Problem{Maximum Integer Knapsack}] \mbox{}\\
Wie Maximum Knapsack aber mit $v_1, \ldots, v_n \in \N_{> 0}$.
\end{problem}
\begin{problem}[\Problem{Minimum Bin Packing}]
Gegeben seien \textit{Objektgrößen} $v_1, \ldots, v_n \in \cinterval{0}{1}$.
\textit{Packungen} sind Abbildungen $f : \{ 1, \ldots, n \} \to \N$, die jedem \textit{Objekt} einen \textit{Behälter} (mit Volumen 1) zuweisen, sodass
\[
{\sum}_{i \in f^{-1}(j)} v_i \leq 1 \quad
\text{für alle $j \in \N$.}
\]
Gesucht ist ein~$f$ mit minimaler Anzahl $\max \im(f)$ von Behältern.
\end{problem}
\section{Übersicht}
\begin{description}
\item[Vertex Cover]
für Intervallgraphen in~$\PO$ (§3.2), \\
lösbar in $\O(\alpha_0^n \cdot m + n)$ mit $\alpha_0 \approx 1,325$ (§5.4), \\
Parametrisierung mit Zeit $\O(k^2 \cdot \alpha_0^k + n + m)$ möglich (§8.1), \\
mit Baumzerl.\ der Weite $\leq k$ lösbar in $\O(k 2^k n + k m)$ (§9.4), \\
2-approximierbar (sogar mit Gewichten, §10.2), \\
für bipartite Graphen in~$\PO$ (§12), \\
linearer Kernel berechenbar in~$\O(n+m)$ (§12)
\item[Independent Set]
für Intervallgraphen in~$\PO$ (§3.2), \\
für planare Graphen Param.\ mit Zeit $\O(6^k \cdot n)$ möglich (§9.2), \\
mit Baumzerl.\ der Weite $\leq k$ lösbar in $\O(k 2^k n + k m)$ (§9.4), \\
für planare Graphen gibt es PTAS mit $\tfrac{k}{k+1}$-Approx.\ in Zeit~$\O(k^2 2^{3 k} n)$ (§9.4), \\
für bipartite Graphen in~$\PO$ (§12),
\item[Set Cover]
$H_n$-approximierbar (§3.5)
\item[Vertex Coloring]
$\O(n / \log n)$-approximierbar (§4.4), \\
bei planaren Graphen mit 5 Farben möglich (und Absolutfehler $\leq 2$, ÜA 9.5)
\item[Edge Coloring]
approximierbar mit abs. Fehler~$1$ (§4.1)
\item[Dominating Set]
für planare Graphen Parametrisierung mit Zeit $\O(7^k \cdot n)$ wobei $k \leq n/28$ möglich (§9.2)
\item[TSP]
$\not\in \APX$ (falls $\P \neq \NP$, §4.3)
\item[$\Delta$-TSP]
$(3/2)$-approximierbar (§4.3)
\item[Steiner Forest]
2-approximierbar (§10.4)
\item[3-SAT]
lösbar in $\O(\abs{F} \cdot \alpha_0^n)$ mit $\alpha_0 \approx 1,84$ (§5.3)
\item[MaxSAT]
$\not\in \PTAS$ (falls $\P \not \in \NP$, §11), \\
trivial $1/2$-approximierbar (§8.2), \\
Parametrisierung mit Zeit $\O(k^2 \phi^k + \abs{F})$ möglich (§8.2), \\
im Erwartungswert $3/4$-approximierbar (§10.3)
\item[Makespan Scheduling]
$(3/4)$-approximierbar (§3.3)
\item[Knapsack]
$(1/2)$-approximierbar (§3.4), \\
Integer Knapsack pseudopolynomiell in~$\O(n V)$ (§6.1), \\
FPTAS mit~$\O(n^3 / \epsilon)$ (§7),
\item[Bin Packing]
$\not\in \PTAS$ (falls $\P \neq \NP$, §7), \\
lösbar mit $r$ versch. Größen in~$\O(n^{2r + 2})$ (§6.2), \\
APTAS mit $(1+\delta) z^* + 1$ Bins in Zeit $\O(n^{8 / \delta^2 + 2})$ (§7)
\end{description}
\newpage
\section{Algorithmen für Probleme in~$\NPO$}
% §3. The Greedy Strategy
% §3.1 A cabin manager's problem
\subsection{\scriptSection{3.2} Gieriges \Problem{Cabin Manager's Problem}}
\begin{defn}
Ein \emph{Intervallmodell} eines Graphen $G = (V, E)$ ist eine Abbildung $\phi : E \to \Set{\cinterval{a}{b}}{a, b \in \Q}$, sodass
\[
\fa{v \neq w \in V} \enspace
(v, w) \in E \iff \phi(v) \cap \phi(w) \neq \emptyset.
\]
Ein Graph heißt \emph{Intervallgraph}, falls er ein Intervallmodell besitzt.
\end{defn}
\begin{problem}[\textit{Cabin Manager's Problem}]
MIS auf Intervallgraphen
\end{problem}
% §3.2 Maximum Independent Set for Interval Models
\begin{alg}
Beginne mit $C \coloneqq \emptyset$, füge dann wiederholt gierig das vom aktuellen~$C$ unabhängige Intervall mit dem kleinsten Endpunkt zu~$C$ hinzu, bis es kein solches Intervall mehr gibt.
\end{alg}
\begin{satz}
Dieser Algorithmus berechnet tatsächlich ein MIS\@.
\end{satz}
% §3.3. Minimum Makespan Scheduling
\subsection{\scriptSection{3.3} Gieriges \Problem{Minimum Makespan Scheduling}}
\begin{alg}
Gehe die Jobs in nach Dauer absteigender Reihenfolge durch, weise jeden Job dem Arbeiter zu, der bisher am wenigsten ausgelastet ist.
\end{alg}
\begin{satz}
Das Approximationsverhältnis der berechneten zul. Lösung ist
\[ \leq \nicefrac{4}{3} - \nicefrac{1}{3 p}. \]
\end{satz}
\begin{beweisskizze}
Sei $t$ die Länge des letzten Jobs des am längsten beschäftigten Arbeiters und $z^*$ die minimale Gesamtdauer.
\begin{itemize}
\item Falls $t > z^*/3$, so hat der Alg. sogar eine optimale Lsg gefunden.
\item Falls $t \leq z^*/3$, so folgt die Behauptung durch geeign. Abschätzen.
\end{itemize}
\end{beweisskizze}
\begin{kor}
Minimum Makespan Scheduling ist $(1/4)$-approximierbar.
\end{kor}
% §3.4. Maximum Knapsack
\subsection{\scriptSection{3.4} Gieriges \Problem{Maximum Knapsack Packing}}
\begin{alg}
Gehe die Sachen absteigend nach ihrem Nutzen-Kosten-Verhältnis~$\nicefrac{v_i}{w_i}$ durch und packe jede Sache ein, die noch in den Rucksack passt.
Sei~$z$ der Gesamtnutzen des so zusammengestellten Sets.
Falls eine Sache mit Nutzen $v_i > z$ (und $w_i \leq W$) nicht eingepackt wurde, so räume den Rucksack wieder aus und packe als einziges diese Sache ein.
\end{alg}
\begin{satz}
Der relative Fehler der durch diesen Algorithmus berechneten Approximationslösung ist $\leq 1/2$.
\end{satz}
\begin{beweisskizze}
Sei $z^*$ der Gesamtnutzen einer optimalen Lösung und $j$ der Index der ersten vom gierigen Alg.\ nicht eingepackten Sache.
Dann gilt $z^* \leq z + v_j \leq 2 \cdot \max \{ z, v_j \}$.
\end{beweisskizze}
\begin{kor}
Maximum Knapsack ist $(1/2)$-approximierbar.
\end{kor}
% §3.5. Minimum Set Cover
\subsection{\scriptSection{3.5} Gieriges \Problem{Minimum Set Cover}}
\begin{alg}
Beginne mit $\mathcal{C} \coloneqq \emptyset$, füge dann immer ein $T \in \mathcal{C}_0$ zu~$\mathcal{C}$ hinzu, welches
\[ T \cap \left( {\bigcup}_{S \in \mathcal{C}_0} S \setminus {\bigcup}_{S \in \mathcal{C}} S \right) \]
maximiert, bis ${\bigcup}_{S \in \mathcal{C}_0} S = {\bigcup}_{S \in \mathcal{C}} S =: U$.
\end{alg}
% 3.5
\begin{satz}
Sei $n \coloneqq {\max}_{S \in \mathcal{C}_0} \size{S}$.
Die vom Greedy-Alg.\ berechnete Lösung~$\mathcal{C}$ ist maximal um den Faktor $H_n \coloneqq {\sum}_{j=1}^n \nicefrac{1}{j} \leq 1 + \ln n$ größer als die optimale Lösung.
\end{satz}
\begin{beweisskizze}
Seien $S_1, \ldots, S_t \in \mathcal{C}_0$ die vom Algorithmus nacheinander ausgewählten Mengen.
Setze $T_i \coloneqq S_i \setminus (S_1 \cup \ldots \cup S_{i-1})$ für $i = 1, \ldots, t$.
Für $x \in U$ sei
\[
w(x) \coloneqq 1/\size{T_i}, \quad
\text{wobei $i$ dasjenige mit $x \in T_i$ ist.}
\]
Dann gilt für alle $S \in \mathcal{C}_0$, dass ${\sum}_{x \in S} w(x) \leq H_{\size{S}}$.
Es folgt
\[
\size{\mathcal{C}} = t = \sum_{x \in U} w(x) \leq \sum_{S \in \mathcal{C}^*} \sum_{x \in S} w(x) \leq \size{\mathcal{C}^*} \cdot H_n.
\]
\end{beweisskizze}
\begin{kor}
Minimum Set Cover ist $(\ln n / (1 + \ln n))$-approximierbar (bei Eingabegröße~$n$).
\end{kor}
\begin{resultat}
Der Worst-Case des Greedy-Algorithmus kann asympt.\ nicht verbessert werden:
Es gibt keinen determ. Polynomialzeit-Alg.\ für MSC, der ein Approx'verh.\ von $\ln n - \epsilon$ mit $\epsilon > 0$ erreicht.
\end{resultat}
% §4 Approximation Algorithms
% §4.1 Absolute Approximation
\subsection{\scriptSection{4.1} Ein Approx'alg.\ für \Problem{Minimum Edge Coloring}}
% 4.3
\begin{satz}[\Algorithm{Vizings Algorithmus}, \Youtube{otky1bBhwgM}]
Es gibt einen Algorithmus, der für jeden Graph $G = (V, E)$ eine Kantenfärbung mit höchstens $\Delta + 1$ Farben, wobei $\Delta \coloneqq {\max}_{v \in V} \deg_G(v)$, berechnet.
\end{satz}
\begin{alg}
Sei $e_0 = \{ u, v_0 \} \in E$ beliebig.
Induktiv dürfen wir annehmen, dass $c : E \setminus \{ e_0 \} \to \{ 0, \ldots, \Delta \}$ eine Kantenfärbung von $G - \{ e_0 \}$ ist.
Setze $i \coloneqq 0$.
Führe folgendende Schritte wiederholt aus, bis Fall A oder B eintrifft:
\begin{enumerate}
\item Sei $c_{i+1}$ eine Farbe, die an $v_i$ frei ist.
\item Sei $e_{i+1} = \{ u, v_{i+1} \} \in E$ die Kante mit $c(e) = c_{i+1}$ (eine solche existiert, da A nicht gegeben ist).
\item Erhöhe $i$ um eins.
\end{enumerate}
Abbruchbedingungen:
\begin{enumerate}
\item[A.] Falls ein minimales $j = 0, \ldots, i$ existiert, für das es eine Farbe $\tilde{c}$ gibt, die an~$v_j$ und~$u$ frei ist, so färbe wie folgt um und ein:
\[
c'(e_j) \coloneqq \tilde{c}, \enspace
c'(e_{j-1}) \coloneqq c_j, \enspace
\ldots, \enspace
c'(e_1) \coloneqq c_2, \enspace
c'(e_0) \coloneqq c_1
\]
\item[B.]
Ansonsten, falls eine Farbe $c_k$ mit $0 \leq k < i$ an $v_i$ frei ist: \\
Sei $d$ eine Farbe, die an~$u$ frei ist.
Vertausche $c_k \leftrightarrow d$ in dem $\{ c_k, d \}$-Pfad, der~$v_i$ als Endpunkt enthält. \\
Durch Fallunterscheidung über den anderen Endpunkt sieht man, dass danach Fall A anwendbar ist.
\end{enumerate}
\end{alg}
\begin{kor}
Es gibt einen Polynomialzeit-Approximationsalg.\ für Minimum Edge Coloring mit Absolutfehler~$\leq 1$.
\end{kor}
% Blatt 4, ÜA 4.1
\begin{kor}
Minimum Edge Coloring ist $4/3$-approximierbar
\end{kor}
% §4.3. The Traveling Salesman Problem
\subsection{\scriptSection{4.3} Ein Approximationsalg.\ für \Problem{$\Delta$-TSP}}
\begin{erinnerung}
Minimale Spannbäume für einen gewichteten ungerichteten Graphen können in polynomieller Zeit mit Kruskals oder mit Prims Algorithmus berechnet werden.
\end{erinnerung}
\begin{satz}
Minimum $\Delta$-TSP ist 2-approximierbar.
\end{satz}
\begin{beweisskizze}
Sei $(V, c)$ eine Instanz und $z^*$ die minimale Länge einer Tour.
Berechne einen minimalen Spannbaum.
Dessen Kanten haben eine Gesamtlänge von $\leq z^*$.
Führe Tiefensuche im Spannbaum durch und liste jeden neu entdeckten Knoten auf.
Die so erhaltene Tour hat (wegen der Dreiecksungleichung) Länge $\leq 2 z^*$.
\end{beweisskizze}
\begin{defn}
Ein unger. Multigraph heißt \em{Eulersch}, falls er eine \textit{Eulertour} besitzt, also eine Tour, die jede Kante nur ein Mal benutzt.
\end{defn}
% 2.12
\begin{lem}
Ein zshgder ungerichteter Multigraph ist genau dann Eulersch, wenn alle seine Knoten geraden Grad haben. \\
In dem Fall kann man eine Eulertour in Polynomialzeit finden.
\end{lem}
\begin{kor}
Sei $(V, c)$ eine Instanz des Minimum $\Delta$-TSP. \\
Aus jedem Eulerschen Multigraph auf der Knotenmenge~$V$ mit Gesamtkantengewicht $C$ kann man eine TSP-Tour der Gesamtlänge~$\leq C$ in Polynomialzeit berechnen.
\end{kor}
% 4.13
\begin{defn}
Sei $G = (V, E)$ ein unger. Graph.
Ein \emph{Matching} in~$G$ ist eine Teilmenge $E' \subseteq E$, sodass $e \cap e' = \emptyset$ für alle $e, e' \in E'$ mit $e \neq e'$.
Ein Matching heißt \emph{perfekt}, falls $V = \cup_{e \in E'} e$.
Die \textit{Kosten} eines Matchings bzgl. einer Kostenfunktion $c : E \to \R_{\geq 0}$ sind ${\sum}_{e \in E'} c(e)$.
\end{defn}
% 4.14
\begin{satz}
Ein Matching maximaler Größe mit minimalen Kosten (unter den Matchings maximaler Größe) kann für einen geg. Graphen~$G$ mit~$n$ Knoten in Zeit $n^{O(1)}$ berechnet werden.
\end{satz}
% 4.15
\begin{satz}[\emph{Christofides}]
Minimum $\Delta$-TSP ist $3/2$-approximierbar.
\end{satz}
\begin{samepage}
\begin{beweisskizze}
Sei $(V, c)$ eine Instanz und $z^*$ die minimale Länge einer Tour.
Berechne einen min.\ Spannbaum.
Berechne ein perfektes Matching mit minimalen Kosten auf den Knoten des Spannbaums mit ungeradem Grad.
Die Kosten dieses Matchings sind $\leq z^* / 2$. \\
Der Multigraph auf~$V$ bestehend aus den Kanten des Matchings und denen des Spannbaums ist Eulersch mit Gesamtkosten $\leq 3/2 z^*$. \\
Aus diesem erhalten wir eine TSP-Tour der Länge $\leq 3/2 z^*$.
\end{beweisskizze}
\subsection{\scriptSection{4.4} Ein Approx'alg.\ für \Problem{Min. Vertex Coloring}}
\begin{alg}[\Algorithm{Greedy Vertex Coloring}] \mbox{}\\
Wiederhole folgende Schritte, bis alle Knoten gefärbt sind:
\begin{enumerate}
\item
Bestimme ein nicht-vergrößerbares IS~$I$ in~$G$ wie folgt: Setze $H \coloneqq G$, $I \coloneqq \emptyset$, dann führe folgende Schritte aus, solange $H \neq \emptyset$:
\begin{enumerate}
\item Wähle einen Knoten~$v$ minimalen Grades aus~$H$ aus.
\item Füge $v$ zu~$I$ hinzu.
\item Lösche $v$ und seine Nachbarknoten aus~$H$.
\end{enumerate}
\item Färbe alle Knoten in~$I$ in einer noch unbenutzten Farbe.
\item Lösche die Knoten in~$I$ aus~$G$.
\end{enumerate}
\end{alg}
\end{samepage}
\begin{satz}
Greedy Vertex Coloring ist (für Graphen mit $n$~Knoten) ein $\O(n / \log n)$-Approximationsalgorithmus.
\end{satz}
\begin{beweisskizze}
Sei $k$ die optimale Zahl an benötigten Farben. \\
Sei $m_i$ ($i \geq 0$) die Anzahl der Knoten in~$H$ am Beginn der $i$-ten Iteration der inneren Schleife.
Dann gibt es ein IS der Größe $\geq m_i/k$ in~$H$ und folglich ist in~$H$ der Minimalgrad $\leq m_i - m_i/k$. \\
Somit ist $m_{i+1} \geq m_i/k - 1$.
Durch Induktion folgt $m_i \geq m_0/k^i - 2$. \\
Also gilt dann $\abs{I} = \min \Set{i}{m_i = 0} \geq \log(m_0/2) / \log(k)$. \\
Daraus kann man eine Schranke für die benötigten Iterationen der äußeren Schleife, was der Anzahl Farben entspricht, herleiten.
\end{beweisskizze}
% aus §3.6. Minimum Vertex Coloring:
\begin{bem}
Der naive Greedy-Algorithmus für MVC, der die Knoten absteigend nach Grad sortiert und dann in der Reihenfolge in der jeweils kleinsten verfügbaren Farbe färbt, hat ein Worst-Case-Approximationsverhältnis von $\Omega(n)$.
\end{bem}
% §5. Tree-Search Strategies
\subsection{\scriptSection{5} Idee: Baumsuche}
% §5.1. Erschöpfende Suche
% §5.2. Branch and Bound
\begin{strategie}[\emph{Branch and Bound} für Minimierungsprobleme]
Organisiere den Suchraum als Baum, der zunächst nur eine Wurzel enthält, wobei mögliche Lösungen aus~$\Feasible(x)$ Blätter sind und "`partielle Lösungen"' (die zu einer möglichen Lösung erweitert werden können oder auch nicht) die Verzweigungen bilden.
Es ist nicht praktikabel, den gesamten Baum zu durchsuchen.
Darum mache folgendes:
Beschrifte die Verzweigungen mit einer (kostengünstig) berechneten unteren Schranke für die Kosten einer Lösung, die Erweiterung der partiellen Lösung ist.
Expandiere dann wiederholt eine Verzweigung im Baum, \dh{} berechne seine Kindknoten und beschrifte sie mit einer unteren Schranke der Kosten.
Verzweigungen, deren untere Schranke mindestens so groß ist wie die Kosten einer bisher gefundenen zulässigen Lösung müssen nicht expandiert werden.
Gibt es keine Verzweigung mehr, die expandiert werden muss, so ist die bisher gefundene zulässige Lösung mit minimalen Kosten eine optimale Lösung.
\end{strategie}
\begin{bem}
Der Algorithmus kann auch früher abgebrochen werden, etwa wenn die unteren Schranken nur etwas kleiner sind als die Kosten der besten bisher gefundenen Lösung und wenn man mit einer approximativen Lösung zufrieden ist.
\end{bem}
\begin{bsp}
Für das TSP auf $(V, E)$ sind partielle Lösungen Pfade $p = u_0 \cdots u_m$ beginnend bei einem Startknoten~$u_0$.
Eine untere Kostenschranke für Touren, die Erweiterung des Pfades~$p$ sind, ist
\[
\arraycolsep=1pt
d \coloneqq
\begin{array}[t]{r l}
& \min \Set{c(u_0, v)}{v \in V \setminus \{ u_0, \cdots, u_k \}} \\
+& \min \Set{c(u_k, v)}{v \in V \setminus \{ u_0, \cdots, u_k \}} \\
+& \text{Summe der Kosten der $n-k-1$ kostengünstigsten} \\
& \text{Kanten zwischen Knoten in } \{ u_0, \cdots, u_k \}
\end{array}
\]
\end{bsp}
\begin{samepage}
\begin{bem}
In der Praxis schaffen Branch-and-Bound-Algorithmen oft eine drastische Verkleinerung des Suchraums.
Theoretisch haben sie jedoch für gew.\ dieselbe asympt. Laufzeit wie erschöpfende Suche.
\end{bem}
% §5.3. 3-Satisfiability
\subsection{\scriptSection{5.3} \Problem{3-SATisfiability} mit Baumsuche}
\begin{nota}
Für eine Formel~$F$ (in KNF) und ein Literal~$l$ sei $F|_{l=i}$ ($i \!\in\! \{0,1\}$) die Formel, die man erhält, wenn man~$x$ durch $i$ (bzw. $1 \!-\! i$) ersetzt, wobei $l \!=\! x$ (bzw. $l \!=\! \overline{x}$) für eine Var.~$x$ und vereinfacht.
\end{nota}
\begin{satz}
Eine Instanz $F$ von 3-SAT kann in Zeit $\O(\abs{F} \cdot \alpha_0^n)$ entschieden werden, wobei $\alpha_0 \approx 1.84$ und $\abs{F} = \#\text{Literale in~$F$}$.
\end{satz}
\end{samepage}
\begin{algorithmic}
\Function{Decide}{$F$}
\If{\text{$F$ hat keine Clauses}}
\Return true
\EndIf
\State wähle eine Clause $l_1 \vee \cdots \vee l_k$ in $F$ (mit $k \in \{ 0, 1, 2, 3 \}$)
\For{$i := 1, \ldots, k$}
\If{\Call{Decide}{$F|_{l_1=0,\ldots,l_{i-1}=0,l_i=1}$}}
\Return true
\EndIf
\EndFor
\State \Return false
\EndFunction
\end{algorithmic}
\begin{beweisskizze}
Sei $f(n)$ die maximale Anzahl an Blättern im Rekursionsbaum für eine Formel mit $n$~Variablen. \\
Dann kann man $f(n) \leq \alpha^n$ mit allen $\alpha > 1$ zeigen, für die gilt:
\[
\alpha^{n-1} + \alpha^{n-2} + \alpha^{n-3} \leq \alpha^n \iff
\alpha^{-1} + \alpha^{-2} + \alpha^{-3} \leq 1
\]
\end{beweisskizze}
% ÜA 5.1
\begin{lem}
Sei $F$ eine Formel in 3-KNF und $F' = F|_{l_1=a_1, \ldots, l_k=a_k}$ mit Literalen $l_1, \ldots, l_k$ und $a_1, \ldots, a_k \in \{ 0, 1 \}$.
Falls $F'$ keine Clause der Länge $< 3$ hat, so gilt: $F$ ist erfüllbar $\iff$ $F'$ ist erfüllbar
\end{lem}
% ÜA 5.1
\begin{satz}
Eine Instanz $F$ von 3-SAT kann in Zeit $\O(\size{F} \cdot \beta^n)$ entschieden werden, wobei $\beta \approx 1,73$ die Wurzel von $x^5 - x^3 - 2 x^2 - 2 x - 1 = 0$ ist.
\end{satz}
% §5.4. Minimum Vertex Cover
\subsection{\scriptSection{5.4} \Problem{Minimum Vertex Cover} mit Baumsuche}
% 5.2
\begin{satz}
Instanzen von Minimum Vertex Cover mit $n$~Knoten und $m$~Kanten können in Zeit $\O(3^{n/2} \cdot m + n)$ gelöst werden.
\end{satz}
\begin{nota}
$G - W$ ist der Graph~$G = (V, E)$ mit den Knoten in $W \subseteq V$ und den an~$W$ inzidenten Kanten gelöscht.
%Für einen Graphen $G = (V, E)$ und Knoten $W \subseteq V$ sei $G - W$ der Graph $(V', \Set{\{u, w\} \in E}{u, w \in V'})$ mit $V' \coloneqq V \setminus W$, der durch Löschen von~$W$ entsteht.
\end{nota}
\begin{algorithmic}
\Function{ComputeMVC}{$G = (V, E)$}
\If{$G = \emptyset$} \Return $\emptyset$ \EndIf
\If{$G$ hat isolierten Knoten $u$}
\State \Return $\Call{ComputeMVC}{G - \{ u \}}$
\EndIf
\If{$G$ hat Knoten $u$ vom Grad~1 mit Nachbar $v$}
\State \Return $\{ v \} \cup \Call{ComputeMVC}{G - \{ u, v \}}$
\EndIf
\If{$G$ hat Dreieck mit Eckknoten $u$, $v$, $w$}
\State $C_{u,v} \coloneqq \{u, v\} \cup \Call{ComputeMVC}{G - \{ u, v \}}$
\State $C_{u,w} \coloneqq \{u, w\} \cup \Call{ComputeMVC}{G - \{ u, w \}}$
\State $C_{v,w} \coloneqq \{v, w\} \cup \Call{ComputeMVC}{G - \{ v, w \}}$
\State \Return kleinste der Überdeckungen $C_{u,v}$, $C_{u,w}$ und $C_{v,w}$
\EndIf
\If{$G$ hat einfachen Pfad $u$ --- $v$ --- $w$ --- $z$}
\State $C_{u,w} \coloneqq \{u, w\} \cup \Call{ComputeMVC}{G - \{ u, w \}}$
\State $C_{v,w} \coloneqq \{v, w\} \cup \Call{ComputeMVC}{G - \{ v, w \}}$
\State $C_{v,z} \coloneqq \{v, z\} \cup \Call{ComputeMVC}{G - \{ v, z \}}$
\State \Return kleinste der Überdeckungen $C_{u,w}$, $C_{v,w}$ und $C_{v,z}$
\EndIf
\EndFunction
\end{algorithmic}
\begin{samepage}
\begin{bem}
In der Umgebung jedes Knoten eines Graphen tritt einer der vier Fälle auf.
Es kann daher in konstanter Zeit einer der vier Fälle ausgewählt werden.
Auf Reihenfolge muss nicht geachtet werden!
\end{bem}
Wir sagen, ein Fall \textit{verzweigt gemäß} $A_1, \ldots, A_k$, falls er den Algorithmus rekursiv mit Argumenten $G - A_1$, \ldots, $G - A_k$ aufruft.
Die Multimenge $\{ \size{A_1}, \ldots, \size{A_k} \}$ heißt zugehörige \textit{Verzweigungs- multimenge}.
Für eine solche Multimenge $\{ a_1, \ldots, a_k \}$ setzen wir
\[ \alpha(a_1, \ldots, a_k) \coloneqq \text{das eindeutige $x \geq 1$ mit } x^{-a_1} + \ldots + x^{-a_k} = 1. \]
\end{samepage}
Schaffen wir es, einen Algorithmus mit $m$~Fällen mit Verzweigungs- multimengen $\mathcal{A}_1, \ldots, \mathcal{A}_m$ anzugeben (sodass in konstanter Zeit entschieden werden kann, welcher Fall vorliegt), so läuft der Algorithmus in Zeit $\O(\alpha_0^n \cdot m + n)$, wobei $\max \, \Set{\alpha(\mathcal{A}_i)}{i = 1, \ldots, m}$
% 5.3
\begin{satz}
Instanzen von Minimum Vertex Cover mit $n$~Knoten und $m$~Kanten können in Zeit $\O(\alpha_0^n \cdot m + n)$ gelöst werden, wobei $\alpha_0 \approx 1,325$ die Wurzel von $x^3 - x - 1$ ist.
\end{satz}