Sie sind auf Seite 1von 661

Informatik II

Wintersemester 2019/2020

Melanie Schmidt
Abteilung Informatik
Department Mathematik/Informatik

7. Oktober 2019

1 / 34
Plan für heute

Melanie Schmidt Organisatorisches

Melanie Schmidt Übersicht Informatik II / Kapitel 1

Julian Wargalla Organisatorisches zu den Übungen

2 / 34
Organisatorisches

3 / 34
Organisatorisches
Dozentin Jun.-Prof. Dr. Melanie Schmidt

Zeiten & Orte


Mo 14:00–15:30 Kurt-Alder-Hörsaal (Chemie)
Mi 14:00–15:30 Hörsaal I (Physik)

Am 9.10.2019 fällt die Vorlesung aus!


Nächste Vorlesung: 14.10.2019
Übungen Julian Wargalla
Tutorinnen und Tutoren
I Alexander Bertram
I Anna Diermann
I Dennis Köhn
Folien erscheinen im ILIAS Kurs (Übungskurs)
Sprechstunde nach Vereinbarung

4 / 34
Organisatorisches

Teilnehmerkreis
Wirtschaftsinformatik
Wirtschaftsmathematik
Mathematik
Naturwissenschaften
Medieninformatik
..
.

5 / 34
Organisatorisches

Studienplan
WiSe 2018/2019 Programmierkurs (Frau Dr. Weil)
SoSe 2019 Informatik I (Herr Prof. Dr. Valentin)
WiSe 2019/2020 Informatik II (jetzt)
SoSe 2020 Programmierpraktikum (Herr Hunhold)
je nach Studienfach und Studienabschluss:
Spezialvorlesungen, (Haupt-)Seminar

6 / 34
Übersicht Informatik II

7 / 34
Übersicht

Welche Inhalte vermittelt Informatik II?


Grundwissen über die verschiedenen Teilgebiete der Informatik

Teilgebiete der Informatik


Theoretische Informatik
Algorithmik
Angewandte Informatik
Programmieren Info I
Praktische Informatik
Technische Informatik

8 / 34
Übersicht

Ziele der Informatik II


I Abrundung der Informatik-Grundkenntnisse durch Einblicke in
eine Auswahl der wichtigsten Gebiete
I Bereitstellung von Entscheidungsgrundlagen zur Auswahl
weiterer Lehrveranstaltungen

9 / 34
Übersicht

10 / 34
Übersicht

Teilgebiete der Informatik


Technische Informatik
I Entwurf von Prozessoren, Speicher, Bussystemen,…
I Typische Vorlesungen: Eingebettete Systeme, Rechnernetze,
Rechnerstrukturen, …

11 / 34
Übersicht

Teilgebiete der Informatik


Praktische Informatik
I Konstruktion von Software
I Typische Vorlesungen: Betriebssysteme, Compilerbau,
Datenbanken, Softwaretechnik, …

12 / 34
Übersicht

Teilgebiete der Informatik


Theoretische Informatik
I Analyse mathematischer Grundlagen aller Informatik-Teilgebiete
I Typische Vorlesungen: Berechenbarkeitstheorie, Automaten
und formale Sprachen, Komplexitätstheorie, …

13 / 34
Übersicht

Teilgebiete der Informatik


Angewandte Informatik
I Werkzeuge der technischen, praktischen und theoretischen
Informatik nutzen, um Problemstellungen aus
I Physik
I Chemie
I Biologie
I Medizin
..
.
zu lösen.

14 / 34
Übersicht

Teilgebiete der Informatik


Angewandte Informatik
spezielle Disziplinen mit eigenen Studiengängen wie:
I Wirtschafts-Informatik Uni Köln
I Medien-Informatik Uni Köln
I Bio-Informatik Uni Köln
I Geo-Informatik Uni Köln
I Medizin-Informatik Uni Köln
I Chemie-Informatik
I Jura-Informatik
in denen fundierte Kenntnisse in der Anwendungsdisziplin mit
grundlegenden Kenntnissen informatischer Methoden
verbunden werden.

15 / 34
Übersicht

Kapitel der Informatik II (angepasst)


I Übersicht
I Informationen und Daten TechInf, TheoInf
I Rechnerarchitektur TechInf, TheoInf
I Formale Sprachen und Grammatiken TheoInf
I Turingmaschinen und Berechenbarkeit TheoInf
I Komplexitätstheorie TheoInf
I Betriebssysteme PraInf, TheoInf

16 / 34
Literatur

I H.-P. Gumm, M. Sommer: Einführung in die Informatik, Oldenbourg


Verlag München Wien, 10. Auflage, 2010
I W. Oberschelp, G. Vossen: Rechneraufbau und Rechnerstrukturen,
Oldenbourg Verlag München Wien, 10. Auflage, 2006
I U. Schöning: Theoretische Informatik - kurzgefasst, Spektrum
Akademischer Verlag, 5. Auflage, 2008
I I. Wegener: Komplexitätstheorie, Springer-Verlag, 2003
I (Weitere Literaturangaben jeweils an Ort und Stelle)

In der Informatikbibliothek: Semesterapparat Jun.-Prof. Schmidt

17 / 34
Kapitel 1: Informationen und Daten

18 / 34
Informationen und Daten

Bits, Bytes, Dateien


I Informationen werden in digitalen Rechnern durch Nullen und
Einsen (Daten) repräsentiert.
I Eine solche Repräsentation muss so gewählt werden, dass man
aus den Daten die repräsentierten Informationen zurück
gewinnen kann.

Information
Repäsentation Abstraktion
Daten

19 / 34
Informationen und Daten

Bits, Bytes, Dateien


I Ein Bit ist die kleinstmögliche Informationseinheit: die
Informationsmenge der Antwort auf eine Frage, die zwei
Antworten zulässt:
I ja oder nein
I wahr oder falsch
I Strom oder kein Strom
..
.

20 / 34
Informationen und Daten

Bits, Bytes, Dateien


I Kodierung der Antwort durch einen Code mit zwei Zeichen
0 oder 1
I In elektronischen Datenverarbeitungsanlagen
0 ←→ 0 Volt 1 ←→ 5 Volt
I Auf Festpatten
0 ←→ unmagnetisiert 1 ←→ magnetisiert

21 / 34
Informationen und Daten

Bits, Bytes, Dateien


I Durch Bitfolgen kann man mehr Antworten kodieren:
2 Bits: 00, 01, 10, 11 4 = 22 mögliche Bitfolgen/Antworten
3 Bits: 000, 001, 010, 011, 100, 101, 110, 111
8 = 23 mögliche Bitfolgen/Antworten
n
n Bits: 2 mögliche Bitfolgen/Antworten
I Bezeichnungen von Bitfolgen fester Länge n:
n=1 Bit
n=4 Halbbyte oder Nibble
n=8 Byte
n = 16 Halbwort (keine einheitliche Verwendung)
n = 32 Wort (keine einheitliche Verwendung)
n = 64 Doppelwort (keine einheitliche Verwendung)

22 / 34
Informationen und Daten
Bits, Bytes, Dateien
I Eine Datei ist eine beliebig lange (aber endliche!) Folge von
Bytes, die Informationen repräsentiert wie
Texte, Zahlen, Musikstücke, Bilder, Videos . . .
I Üblicherweise enthalten Dateinamen eine Erweiterung, die
festlegt, wie die Bytefolge zu interpretieren ist, z.B.
name.txt für unformatierten Text
name.doc
name.tex für formatierten Text
name.wav
name.mp3 für Musik
name.tiff
name.jpeg für Bilder
name.avi
name.mp4 für Videos
I In UNIX ist es üblich, den Typ der Datei in den ersten
Inhaltsbytes zu kennzeichnen.

23 / 34
Informationen und Daten
Bits, Bytes, Dateien
I Die Größe einer Datei ist die Anzahl ihrer Bytes.
I Größere Mengen ‘analog’ zu Maßeinheiten benannt:
210 Bytes = 1024 Byte ≈ 1000 Byte
Daher der Name Kilobyte in Anlehnung an Maßeinheiten:
1 Kilogramm = 1000 g
I Maßeinheiten wachsen immer um 103 ≈ 210 . Deshalb:
1 Megabyte = 10242 = 220 B 1 Tonne = 103 kg = 106 g
1 Gigabyte = 10243 = 230 B 1 Gigagramm = 109 g
1 Terabyte = 10244 = 240 B 1 Teragramm = 1012 g
1 Petabyte = 10245 = 250 B 1 Petagramm = 1015 g
1 Exabyte = 10246 = 260 B 1 Exagramm = 1018 g
I Festplattenhersteller verwenden Giga für 109 statt 230 .
→ 500-Gigabyte-Festplatte ≈ 465 Gigabyte Speicherplatz!
[500 × 109 ≈ 465 × 230 = 499289948160]

24 / 34
Informationen und Daten

Darstellung von Texten


I Kodierung von
Buchstaben (A, B, C, . . . , a, b, c, . . .)
Satzzeichen (., ,, ;, ?, !, . . .)
Spezialzeichen (+, &, %, . . .)
Steuerzeichen (CR (carriage return = Wagenrücklauf ),
TAB (Tabulator), . . .)
in Bitfolgen.

25 / 34
7-Bit ASCII Code
(American Standard Code for Information Interchange)

Bits 3210/7654 P000 P001 P010 P011 P100 P101 P110 P111
0000 NULL DC0 0 @ P ‘ p
0001 SOM DC1 ! 1 A Q a q
0010 EOA DC2 ” 2 B R b r
0011 EOM DC3 # 3 C S c s
0100 EOT DC4 $ 4 D T d t
0101 WRU ERR % 5 E U e u
0110 RU SYNC & 6 F V f v
0111 BELL LEM ’ 7 G W g w
1000 FE S0 ( 8 H X h x
1001 HT/SK S1 ) 9 I Y i y
1010 LF S2 * : J Z j z
1011 V/TAB S3 + ; K [ k
1100 FF S4 , < L \ l ACK
1101 CR S5 - = M ] m UC
1110 SO S6 . > N ↑ n ESC
1111 SI S7 / ? O ← o DEL

26 / 34
7-Bit ASCII Code
(American Standard Code for Information Interchange)

NULL null character


SOM Start of Message
EOA End of Address
EOM End of Message
EOT End of Transmission
WRU “Who are You” (enquiry)
RU “Are you ...?”
BELL Audible Signal
FE Format Effector
HT / SK Horizontal Tabulation / Skip
LF Line Feed
V / TAB Vertical Tabulation
FF Form Feed
DC0 -DC4 Device Control (DC0 :DataLinkEscape)
CR Carriage Return
SO Shift Out
SI Shift In
ERR Error
SYNC Synchronois Idle
LEM Logical End of Medium
S0 -S7 Separator Information
ACK Acknowledgement
UC Unassigned Control
ESC Escape
DEL Delete Idle

27 / 34
Informationen und Daten

Darstellung von Texten


I Die 27 = 128 ASCII-Zeichen entsprechen den Bytes 0000 0000
für ASCII 0 bis 0111 1111 für ASCII 127
I Das erste Bit ist 0.
I Man kann es zur Fehlererkennung benutzen, indem man es so
setzt, dass das Byte immer eine ungerade Anzahl von 1-Bits
enthält. −→ Paritätsbit P in der Tabelle
I Oder: Das erste Bit nutzen, um mit 0 und 1 zwischen den
ASCII-Zeichen und weiteren 128 Zeichen umzuschalten.
I Die Belegung der Bytes 1000 0000 für ASCII 128 bis
1111 1111 für ASCII 255 ergibt eine ASCII-Erweiterung.

28 / 34
Informationen und Daten

Darstellung von Texten


I Die ISO (International Organization for Standardization) hat
verschiedene ASCII-Erweiterungen normiert, insbesondere die
ASCII-Erweiterung Latin-1 (ISO 8859-1).
I (Latin-1 enthält zum Beispiel Umlaute)
I ISO: griechisch ἴσος (isos), ‘gleich’
I Der Grund, warum man auf Computern oft merkwürdige
Dinge sieht, wo ein Umlaut sein sollte, liegt darin, dass mittels
einer anderen ASCII-Erweiterung kodiert wurde.
I UNIX ignoriert das erste Bit.

29 / 34
Informationen und Daten

Darstellung von Texten


I Unicode
I ist ein Standard, der versucht, das ASCII-Erweiterungschaos zu
überwinden und die relevanten Zeichen der verschiedenen
Kulturkreise in dem universellen 16-Bit-Code UCS-2
zusammenzufassen.
I UCS-2 ist international standardisiert unter der Norm
ISO-10646.
I Ebenso wurde eine 31-Bit-Version (UCS-4) festgelegt.

? UCS-2 LE-BOM ?

Gute Editoren, Emailprogramme, Browser können die gängigen


Standards interpretieren und konvertieren.

30 / 34
Informationen und Daten

Darstellung von Texten


I UTF-8
I ist eine kompakte Kodierung, die mit der historischen
7-Bit-ASCII-Kodierung kompatibel ist und den
UCS-Erweiterungen Rechnung trägt: Norm ISO-10646
Anhang R. (UTF steht für „UCS Transformation Format”.)
I UTF-8 hat variable Kodierungslängen
1 Byte für 7-Bit-ASCII-Zeichen
2–6 Bytes für andere Zeichen

31 / 34
Informationen und Daten
I UTF-8 Schema
I 1-Byte Codes haben die Form
0xxx xxxx für 7-Bit-ASCII.
I 2-Byte Codes haben die Form
110x xxxx, 10xx xxxx für 11-Bit UCS-2.
I 3-Byte Codes haben die Form
1110 xxxx, 10xx xxxx, 10xx xxxx für 16-Bit UCS-2.
I 4-Byte Codes haben die Form
1111 0xxx, 10xx xxxx, 10xx xxxx, 10xx xxxx für 21-Bit UCS-2.
I 5-Byte Codes haben die Form
1111 10xx, 10xx xxxx, 10xx xxxx, 10xx xxxx, 10xx xxxx
für 26-Bit UCS-2.
I 6-Byte Codes haben die Form
1111 110x, 10xx xxxx, 10xx xxxx, 10xx xxxx, 10xx xxxx,
10xx xxxx für 31-Bit UCS-2.
I D.h. für 7-Bit-ASCII erhöht sich die Dateilänge nicht.
I Das Schema erlaubt es, bei einem Übertragungsfehler leicht
wieder aufzusetzen.
32 / 34
Informationen und Daten

Darstellung von Texten


I Kodierung von Zeichenketten
I Zeichenketten (strings) werden kodiert, indem man die Codes
der Zeichen aneinander fügt.
I Z.B. (7-Bit-ASCII mit Paritätsbit) für ”‘INFORMATIK II”’:
0100 1001 1100 1110 0100 0110 0100 1111 0101 0010
1100 1101 1100 0001 0101 0100 0100 1001 1100 1011
0010 0000 0100 1001 0100 1001

33 / 34
Julian Wargalla
Organisatorisches zu den Übungen zur
Informatik II

34 / 34
Informatik II
Wintersemester 2019/2020

Melanie Schmidt
Abteilung Informatik
Department Mathematik/Informatik

14. Oktober 2019

1 / 34
Organisatorisches

I Übungszettel: Nur eine Aufgabe ist relevant für die Zulassung.


Es sind natürlich alle Aufgaben gleichermaßen relevant für die
Klausur!
I Druckversion der Folien erscheint im ILIAS-Kurs
I Programmieranteil in der Klausur: Wir beschäftigen uns im
Rahmen der Vorlesung mit verschiedenen Rechnermodellen
(RAM, Turingmaschine, DFAs). Der sichere Umgang mit
diesen Rechnermodellen wird abgefragt. Einen separaten
Programmierteil wie (früher) in Info I gibt es nicht.

2 / 34
Informationen und Daten

Darstellung ganzer Zahlen


I Natürliche Zahlen (inkl. 0)
Zahlensystem Basis b Ziffern
Dezimalsystem 10 0, 1, 2, . . ., 9
Dualsystem 2 0, 1
Oktalsystem 8 0, 1, 2, . . ., 7
Hexadezimalsystem 16 0, 1, 2, . . ., 9, A, . . ., F
I Beispiele
100112 = 1 · 24 + 0 · 23 + 0 · 22 + 1 · 21 + 1 · 20
= 16 + 2 + 1
= 1910
1B516 = 1 · 162 + 11 · 161 + 5 · 160
= 256 + 176 5
= 43710

3 / 34
Informationen und Daten
Darstellung ganzer Zahlen
I Natürliche Zahlen (inkl. 0)
I Zahlendarstellung mit einer beliebigen Basis b > 1 (∈ N)
I Notwendig: b verschiedene Zeichen (Ziffern)
I Jede Ziffer z stellt eine Zahl w(z) ∈ {0, . . . , b − 1} dar
I Sind eine natürliche Zahl b > 1 (Basis) sowie b Zahlzeichen
(Ziffern) z0 , z1 , . . . , zb−1 für die natürlichen Zahlen
0 = w(z0 ), 1 = w(z1 ), . . . , b − 1 = w(zb−1 ) gegeben, so
entsprechen Zeichenketten mit den Zeichen z0 , z1 , . . . , zb−1
genau den natürlichen Zahlen:
I xn−1 xn−2 . . . x1 x0 mit xi ∈ {z0 , z1 , . . . , zb−1 } kodiert die
natürliche Zahl
X
n−1
w(xi )bi
i=0

und jede natürliche Zahl k kann so mit O(logb k) Ziffern


kodiert werden. −→ Übungsaufgabe

4 / 34
Informationen und Daten
Darstellung ganzer Zahlen
I Umwandlungen zwischen Zahlensystemen
I z.B.: 43710 → ?2

29 28 27 26 25 24 23 22 21 20

... 0 1 1 0 1 1 0 1 0 1

512 256 128 64 32 16 8 4 2 1

I 437 : 256 = 1 Rest 181


I 181 : 128 = 1 Rest 53
I 53 : 32 = 1 Rest 21
I 21 : 16 = 1 Rest 5
I 5 : 4 = 1 Rest 1
5 / 34
Informationen und Daten

Darstellung ganzer Zahlen


I Natürliche Zahlen (inkl. 0)
I Umwandlungen zwischen Zahlensystemen
I Woher wissen wir, wo wir anfangen sollen?
I → Eigentlich rechnet man besser rückwärts
437 : 16 = 27 Rest 5
I z.B.: 43710 → ?16 27 : 16 = 1 Rest 11
1 : 16 = 0 Rest 1
also 43710 = 1B516
I Einfacher Spezialfall: dual ↔ hexadezimal

1110 0110 1011 0101


E 6 B 5

6 / 34
Informationen und Daten

Darstellung ganzer Zahlen


I Wie werden negative Zahlen gespeichert?

7 / 34
Informationen und Daten

Darstellung ganzer Zahlen: 1. Möglichkeit


Vorzeichen / Betragsdarstellung
I erstes Bit restliche Bits
„0“ für „+“ und „1“ für „−“ wie gehabt
5 : 00000101
I z.B.: (8 Bit Wörter)
−5 : 10000101
I Wortlänge n → darstellbarer Bereich [−2n−1 + 1, 2n−1 − 1],
n = 8 : [−127, +127]

8 / 34
Informationen und Daten

Darstellung ganzer Zahlen: 1. Möglichkeit


I Nachteile
I Es gibt keine eindeutige Null (+0, −0).
I Das Rechenwerk braucht ein Addierwerk und ein
Subtrahierwerk, sowie eine Logik, die entscheidet, ob addiert
oder subtrahiert werden muss. Z.B. Addition zweier Zahlen x
und y in dieser Darstellung:
Vorzeichen Vorzeichen Operation auf Vorzeichen des
von x von y den Beträgen Ergebnisses
+ + Add x + y +
− − Add x + y −
+ − x≥y Subtr x − y +
x<y Subtr y − x −
− + x≥y Subtr x − y −
x<y Subtr y − x +

9 / 34
Informationen und Daten

Darstellung ganzer Zahlen: 2. Möglichkeit


I Excess 2n−1 Darstellung
I Repräsentiere x als x + 2n−1 .
I Z.B. n = 8: Excess 128 −3 : −3 + 128 = 125 = 011111012
I Zahlenbereich:
[−128, 127]

[0, 255]
I Vergleiche x ≤ y bleiben erhalten.
I Aber selbst Addieren positiver Zahlen ist nicht mehr einfach.
I Auch: Excess A Darstellung für A ̸= 2n−1 z.B. A = 2n−1 − 1

10 / 34
Informationen und Daten
Darstellung ganzer Zahlen
I Excess 23 Darstellung
I Zahlenring
b 1000
0=
b 1001
1= −1 =
b 0111

−2 =
b 0110
b 1010
2=

−3 =
b 0101
b 1011
3=

−4 =
b 0100

b 1100
4=
−5 =
b 0011

b 1101
5=
−6 =
b 0010

b 1110
6=
−7 =
b 0001

b 1111
7= −8 =
b 0000

11 / 34
Informationen und Daten

Darstellung ganzer Zahlen: 3. Möglichkeit (so wird’s gemacht!)


I Abhilfe: Komplementdarstellungen erlauben die Rückführung
der Subtraktion auf die Addition.
I Idee: Für z > 0 Darstellung von −z durch z = C − |z| für
geeignetes C.
I Subtraktion durch Addition des Komplements:
x − y = x + (−y) = x + y = x + C − y.
I Anschließend Subtraktion von C.
I Immer noch Subtraktion? Ja, aber immer derselben Konstante
I Ob und wie gut diese Idee funktioniert, hängt von b und C ab.

12 / 34
Informationen und Daten

Darstellung ganzer Zahlen: Einerkomplementdarstellung


I Zunächst einmal konkret für b = 2 und C = 2n − 1.
I Darstellbarer Bereich: −(2n−1 − 1) bis 2n−1 − 1
I Einerkomplementdarstellung
Beobachtungen
I Erinnerung: −z darstellen durch C − z
I Die Binärdarstellung von C = 2n − 1 besteht aus n Einsen.
I Beispiel: z = 5, n = 4: C = [1111]2 , z = [0101]2 ,
C − z = [1111]2 − [0101]2 = [1010]2 ← -5
I Beobachtung 1: Erstes Bit zeigt auch hier das Vorzeichen an
I Beobachtung 2: Bitweise Komplemente!

13 / 34
Informationen und Daten
Darstellung ganzer Zahlen
C = bn − 1 (b Basis, n Wortlänge): (b − 1)-Komplement
Zahlenring für b = 2, n = 4, d.h. C = 15 = [1111]2
−7 =
b 1000 b 0111
7=
−6 =
b 1001 b 0110
6=

−5 =
b 1010 b 0101
5=

−4 =
b 1011 b 0100
4=

−3 =
b 1100 b 0011
3=

−2 =
b 1101 b 0010
2=

−1 =
b 1110 b 0001
1=
−0 =
b 1111 b 0000
0=

14 / 34
Informationen und Daten
Darstellung ganzer Zahlen
I „Einer”komplemente allgemein, für b gerade
I C = bn − 1 (b Basis, n Wortlänge): (b − 1)-Komplement
P
n−1
I Komplementbildung von x = xi b i :
i=0
P
n−1
x = C − x = (bn − 1) − xi bi
i=0
P
n−1 P
n−1 P
n−1
= bi+1 − bi − xi bi
i=0 i=0 i=0
P
n−1
= ((b − 1) − xi )bi
i=0
I Stellenkomplement: xi wird zu (b − 1) − xi
I Z.B.: (4 Stellen)
I Dualsystem 0101 = 1010 (erstes Bit: Vorzeichen)
Null: 0000, 1111
I Dezimalsystem 0815 = 9184 Neunerkomplement
Null: 0000, 9999
I Zahlenbereich: [−( b2 − 1), ( b2 − 1)]
n n

speziell für b = 2: [−(2n−1 − 1), (2n−1 − 1)]


15 / 34
Informationen und Daten

Darstellung ganzer Zahlen

Wir haben bisher gesehen:


I Das (b − 1)-Komplement C − z erhält man, indem man für
jede Stelle (b − 1) − xi berechnet
I Mit (b − 1)-Komplementen kann man für gerades b alle
n n
Zahlen im Bereich [−( b2 − 1), ( b2 − 1)] darstellen.
I Die Subtraktion x − y lässt sich durch die Addition x + y
darstellen, wenn man im Anschluss gegebenenfalls C abzieht.
I Wann muss man das denn abziehen?
I Genau dann, wenn das Ergebnis positiv ist.

16 / 34
Informationen und Daten

Darstellung ganzer Zahlen


C = bn − 1 (b Basis, n Wortlänge): (b − 1)-Komplement
I Subtraktion von C: z = x − y = x + (−y) = x + y − C
I Fall 1: x ≤ y (=⇒ z ≤ 0)
z ist negativ, also ist C − |z| erwünscht
Das haben wir tatsächlich ausgerechnet:

x + y = x + C − y = C − (y − x) = C − |z|

Durch das C tritt auch kein Überlauf auf: x + y ≤ C = bn − 1


I Beispiele
5 5 00101
−7 +2 + 11000
−2 7 = 2 11101 = 00010

17 / 34
Informationen und Daten

Darstellung ganzer Zahlen


C = bn − 1 (b Basis, n Wortlänge): (b − 1)-Komplement
I Subtraktion von C: z = x − y = x + (−y) = x + y − C
I Fall 2: x > y (=⇒ z > 0)
Wir haben x − y = x − y + C = z + C ausgerechnet
Das ist verkehrt, weil z > 0 ist. Wir müssen C abziehen.
Das ist aber noch nicht alles!
x+y = x + (C − y)
= x + (bn − 1 − y)
= x − y − 1 + bn ≥ bn
| {z }
≥1
=⇒ bn ≤ x + y
I d.h. Überlauf von 1 in die nicht existierende (n + 1)-te Stelle!
I Ignorieren des Überlaufs entspricht Subtraktion von bn .
I Ignorieren und Addition von 1 entspricht Subtraktion von
C = bn − 1.

18 / 34
Informationen und Daten
Darstellung ganzer Zahlen
C = bn − 1 (b Basis, n Wortlänge): (b − 1)-Komplement
I Subtraktion von C: z = x − y = x + (−y) = x + y − C
I Beispiele:
Dezimalsystem (n = 2)
65 65
− 43 + 56
22 121
1 „Einserrücklauf“
22
Dualsystem (n = 5)
14 01110
−7 + 11000 b 00111)
(=
7 100110
1
00111

19 / 34
Informationen und Daten

Darstellung ganzer Zahlen


C = bn − 1 (b Basis, n Wortlänge): (b − 1)-Komplement
I Subtraktion von C: z = x − y = x + y − C
I Beispiele:
Dualsystem (n = 5)
14 01110
−0 + 11111
14 101101
1
01110

I Die „Negative Null“ stört nicht!

20 / 34
Informationen und Daten

Darstellung ganzer Zahlen

Fazit (Einerkomplement):
I Subtraktion kann durch Addition ersetzt werden
I Weiterhin eine Fallunterscheidung (x ≤ y oder x > y)
Und nun: Das Zweierkomplement (bzw. b-Komplement)

21 / 34
Informationen und Daten
Darstellung ganzer Zahlen
C = bn (b Basis, n Wortlänge): b-Komplement
Pn−1 i
I Komplementbildung von x = i=0 xi b :
P
n−1
x = C − x = bn − xi bi
i=0
P
n−1
= (bn − 1) − xi bi + 1
i=0
P
n−1 P
n−1 P
n−1
= bi+1 − bi − xi bi + 1
i=0 i=0 i=0
P
n−1
= ((b − 1) − xi )bi + 1
i=0
I D.h.: Erst Stellenkomplement bilden, dann Eins aufaddieren
I Z.B.: (4 Stellen)
I Dezimalsystem 0815 = 9184 + 1 = 9185
I Dualsystem 0101 = 1011 (erstes Bit: Vorzeichen)
I Nur eine Null!
n n
I Zahlenbereich: [⌈− b2 ⌉, ⌈ b2 ⌉ − 1]
speziell für b = 2: [−2n−1 , 2n−1 − 1] 22 / 34
Informationen und Daten
Darstellung ganzer Zahlen
C = bn (b Basis, n Wortlänge): b-Komplement
Zahlenring für b = 2, n = 4:
−8 =
b 1000
−7 =
b 1001 b 0111
7=

−6 =
b 1010 b 0110
6=

−5 =
b 1011 b 0101
5=

−4 =
b 1100 b 0100
4=

−3 =
b 1101 b 0011
3=

−2 =
b 1110 b 0010
2=

−1 =
b 1111 b 0001
1=
b 0000
0=
23 / 34
Informationen und Daten
Darstellung ganzer Zahlen
C = bn (b Basis, n Wortlänge): b-Komplement
I Subtraktion von C: C = bn , d.h. Überlauf in (n + 1)-ter
Stelle ignorieren → funktioniert „von alleine”!
I Beispiele
I Dezimalsystem (n = 2)
65 65
− 43 + 57
22 122

I Dualsystem (n = 5) 22

14 01110 5 00101
−7 + 11001 −7 + 11001
7 100111 −2 11110 (= 00010)

00111

24 / 34
Informationen und Daten

Darstellung ganzer Zahlen


I Überschreiten des zulässigen Zahlenbereichs
I z.B. b-Komplement, n = 4
6 0110
+3 + 0011
9 1001 b −7
=

−5 1011
−4 + 1100
−9 10111 b7
=

25 / 34
Informationen und Daten

Darstellung ganzer Zahlen


I Blaise Pascal und seine Rechenmaschine
Blaise Pascal (1623–1662)

26 / 34
Informationen und Daten

Darstellung ganzer Zahlen


I Blaise Pascal und seine Rechenmaschine
I Blaise Pascal erfand 1643 im Alter von 20 Jahren für seinen
Vater, der Steuerpächter in der Normandie war, eine
Rechenmaschine für Addition und Subtraktion.
I Nach 50 Probeexemplaren funktionierte die Maschine.
I Heute als Pascaline bekannt

27 / 34
Informationen und Daten
Darstellung ganzer Zahlen
I Blaise Pascal und seine Rechenmaschine
I Eines der ersten Exemplare widmete er 1645 dem Kanzler
Pierre Seguier, der als Statthalter der Normandie Vorgesetzter
seines Vaters war. In seinem Widmungsbrief schrieb er:
Die Langwierigkeit und Schwierigkeit der Methoden, die man bisher
anwandte, brachten mich auf den Gedanken, ein rasch und leicht
arbeitendes Hilfsmittel zu erfinden, das mich bei den umfangreichen
Rechnungen unterstützen könne, mit denen ich seit einigen Jahren im
Zusammenhang mit den Ämtern beschäftigt bin, mit denen Sie meinen
Vater für den Dienst beehrten, den er Seiner Majestät in der oberen
Normandie leistete. Ich verwandte auf diese Untersuchung mein ganzes
Wissen, das ich mir in der Mathematik durch meine Neigungen und meine
ersten Studien erworben hatte. Und nach tiefem Nachdenken erkannte
ich, dass es nicht unmöglich war, ein solches Mittel zu finden. Die
Kenntnisse in Geometrie, Physik und Mechanik lieferten mir den Plan
dazu und gaben mir die Gewissheit, dass der Gebrauch einer solchen
Maschine unfehlbar sein müsste, wenn nur ein Handwerker das Instrument
so ausführen könnte, wie ich mir das Modell ausgedacht hatte.
28 / 34
Informationen und Daten
Darstellung ganzer Zahlen
I Blaise Pascal und seine Rechenmaschine
I Seguier verschaffte ihm ein königliches Privileg. Der
Mathematiker de Roberval in Paris übernahm die
Vermarktung, Preis 100 Livres. Vermutlich wurden aber nur
sieben Exemplare verkauft.

29 / 34
Informationen und Daten
Darstellung ganzer Zahlen
I Blaise Pascal und seine Rechenmaschine
I Eigentlich konnte die Maschine nur addieren. Subtraktion
wurde mit Hilfe des Stellenkomplements realisiert!
I Eine Metallleiste konnte so verschoben werden, dass man
entweder die „normalen”’ schwarzen Ziffern oder deren rote
Stellenkomplemente sieht.

30 / 34
Informationen und Daten

Darstellung ganzer Zahlen


I Multiplikation x · y im b-Komplement
I x > 0, y > 0, z.B.: (n = 10)
0000001101 · 0000010101
1101
13 · 21
0
13
1101
26
0
273
1101
00100010001

31 / 34
Informationen und Daten
Darstellung ganzer Zahlen
I Multiplikation x · (−y) im b-Komplement
I x > 0, y > 0: x · y = x · (bn − y) = (x − 1) · bn + bn − x · y
I D.h. für das 2n-stellige Ergebnis:

n Stellen n Stellen
| {z }| {z }
ignorieren signifikant

00011·11110
0
11
I Z.B. (n = 5): 3 · (−2) = −6 11
11
11
0001011010
Wir ignorieren die vorderen 5 Bits und erhalten 11010.
Das entspricht −6.

32 / 34
Informationen und Daten
Darstellung ganzer Zahlen
I Multiplikation (−x) · (−y) im b-Komplement (x, y > 0)
I x · y < bn : x·y = (bn − x) · (bn − y)
= b2n − bn · x − bn · y + x · y
= bn · (bn − x − y) + x · y
| {z }
≥bn

11101·11110
0
11101
I Z.B. (n = 5): (−3) · (−2) = 6 11101
11101
11101
1101100110
Wir ignorieren die vorderen 5 Bits und erhalten 00110.
Das entspricht 6.

33 / 34
Informationen und Daten
Darstellung ganzer Zahlen
I Ganzzahlige Division x : y (x > 0, y > 0)
I Z.B.: 425 : 18 = 23 Rest 11
110101001 : 10010 = 10111 ←− ganzzahliger Quotient
10010
100010
10010
100000
10010
11101
10010
1011 ←− Rest
I Negative Operanden −→ Umweg über positive
I Divisor = 0 −→ Fehlermeldung „ZERO DIVIDE“

34 / 34
Informatik II
Wintersemester 2019/2020

Melanie Schmidt
Abteilung Informatik
Department Mathematik/Informatik

16. Oktober 2019

1 / 22
Datenerhebung

Prof. Dr. Benjamin Rott


Anna Schreck

Institut für Mathematikdidaktik

2 / 22
Informationen und Daten
Rationale Zahlen
I Wie stellt man reele rationale Zahlen im Computer dar?
Direkte Verallgemeinerung der Darstellung ganzer Zahlen:

X
n−1
xi · 2i
i=−m

24 23 22 21 20 2−1 2−2 2−3 2−4

... 0 1 0 1 1 0 1 1 0 ...

1 1 1 1
16 8 4 2 1 2 4 8 16

8 + 2 + 1 + 0.25 + 0.125 = 11.375

3 / 22
Informationen und Daten
Rationale Zahlen
I Frage: Wie stellt man 0.1 binär dar?
I Das klappt nicht: 2−1 = 0.5, 2−2 = 0.25, 2−3 = 0.125,
2−4 = 0.0625, . . .
I [0.00011001100]2 = 0.099609375
I 0.01 binär nicht endlich darstellbar
(ähnlich zu 1/3 im Dezimalsystem)
Generelles Problem: begrenzte Darstellungsgenauigkeit
I Ein Ausweg: Exakte Arithmetik
I Zum Beispiel: GMP (GNU Multiple Precision Arithmetic
Library) für C++: „There is no practical limit to the precision
except the ones implied by the available memory in the
machine GMP runs on.”
I Unterstützt auch große ganze Zahlen

4 / 22
Informationen und Daten

Festkommazahlen
I „gedachtes Komma“ an fixer Position im Bitstring
I Klar: Anzahl der Nachkommastellen ist Festlegungssache

x5 x4 x3 x2 x1 x0 x−1 x−2
| {z }| {z }
n=6 Stellen m=2 Nachkom-
mastellen

Pn−1
Wert: i=−m xi · 2i

5 / 22
Informationen und Daten

Festkommazahlen
I Umrechnung
I Z.B.: 6.37510 =?2 :
x 
6 : 2 = 3R 0 

 0.375
 · 2 = 0 .75
 
3 : 2 = 1R 1   0.75 · 2 = 1 .5
 
1 : 2 = 0R 1  y 0.5 · 2 = 1 .0

I Ergebnis: 6.37510 = 110.0112


I 0.1 → 0.2 → 0.4 → 0.8 → 1.6 → 1.2 → 0.4 → 0.8 → . . .
Periodische Darstellung, [0.000110011001100 . . .]2

6 / 22
Informationen und Daten

Festkommazahlen
I Nachteil: Signifikante Nachkommastellen gehen verloren
obwohl eigentlich Bits ungenutzt sind
I Abhilfe: Gleitkommazahlen

7 / 22
Informationen und Daten

Gleitkommazahlen (floating point numbers)


I Idee: Speicherung der Zahl und der Position des Kommas
I Dezimal:

143.7 = 0.1437 · 103


0.00823 = 0.823 · 10−2

I Allgemein:
x = m · be
m Mantisse, b Basis, e Exponent; Abspeicherung als (±m, ±e)

8 / 22
Informationen und Daten

Gleitkommazahlen (floating point numbers)


I Idee: Speicherung der Zahl und der Position des Kommas
I Keine eindeutige Darstellung, z.B. (dezimal)

3.14 = 0.0314 · 102


= 0.314 · 101 (∗)
= ...

I (∗) normalisierte Darstellung: Null vor dem Komma, erste


Nachkommaziffer ̸= 0
I Wirklich gespeichert werden nur 324 und 1!

9 / 22
Informationen und Daten

Gleitkommazahlen (floating point numbers)


I Formal: Eine Gleitkommazahl der Form ±m · b±e heißt
normalisiert, falls b1 ≤ |m| < 1.
I Beispiel
I b = 2:

0.00001101 → 0.1101 · 2−4


101.0101 → 0.1010101 · 23

normalisieren:

0.011001 · 2−4 −→ 0.11001 · 2−5

10 / 22
Informationen und Daten

Gleitkommazahlen (floating point numbers)


I Addition / Subtraktion
I Berechne x ± y für

x = mx · bex y = my · bey

I → Exponenten angeglichen, dann Mantissen addieren


I Wie macht man das am besten?

11 / 22
Informationen und Daten
Gleitkommazahlen (floating point numbers) Beispiel:
I Berechne
0.1517 · 10−3 + 0.8123 · 103
I Annahme: Insgesamt stehen 4 Stellen für die Mantisse zur
Verfügung. (Dezimalsystem)
I Hinweis: Das richtige Ergebnis ist

0.0001517 + 812.3 = 812.3001517

Vielleicht so:
I 0.8123 · 103 = 812300 · 10−3
I Wir stellen fest: 812300 hat mehr als 4 Stellen.
I Ergebnis?
(0.1517 + 2300) · 10−3 = 2300.1517 · 10−3 = 2.3001517?
I Das ist ziemlich verkehrt (und hat auch mehr als 4 Stellen)
12 / 22
Informationen und Daten
Gleitkommazahlen (floating point numbers) Beispiel:
I Berechne
0.1517 · 10−3 + 0.8123 · 103
I Annahme: Insgesamt stehen 4 Stellen für die Mantisse zur
Verfügung. (Dezimalsystem)
I Hinweis: Das richtige Ergebnis ist

0.0001517 + 812.3 = 812.3001517

Oder so:
I 0.1517 · 10−3 = 0.0000001517 · 103
I Auch das ist zu lang. → 0.0000
I Ergebnis: (0.8123 + 0.0000) · 103 = 812.3
I Das ist nicht richtig, aber der Fehler ist doch deutlich kleiner.

13 / 22
Informationen und Daten

Gleitkommazahlen (floating point numbers)


I Addition / Subtraktion
I Angleichung des Exponenten: „Denormalisieren“ des
Operanden mit dem kleineren Exponenten

x = mx · bex y = my · bey

ex = ey : x ± y = (mx ± my ) · bex
ex < ey : x ± y = (mx · bex −ey ± my ) · bey
ex > ey : x ± y = (mx ± my · bey −ex ) · bex

Anschließend normalisieren!

14 / 22
Informationen und Daten
Beispiel (b = 10, 4 Mantissenstellen)
x = +0.1235 · 103
y = +0.5512 · 105
z = −0.5511 · 105

x+y = +0.0012 · 105 + 0.5512 · 105


= +0.5524 · 105

y+z = +0.5512 · 105 − 0.5511 · 105


= +0.0001 · 105
= +0.1 · 102

(x + y) + z = +0.5524 · 105 − 0.5511 · 105


= +0.0013 · 105
= +0.13 · 103 ←

x + (y + z) = +0.1235 · 103 + 0.1 · 102


= +0.1235 · 103 + 0.01 · 103
= +0.1335 · 103 ←
Das Assoziativgesetz gilt nicht!
15 / 22
Informationen und Daten

Gleitkommazahlen (floating point numbers)


I Multiplikation / Division
I 0.1 · 103 · 0.7 · 10−4 = 0.07 · 10−1 = 0.7 · 10−2

x · y = (mx · my ) · bex +ey


x : y = (mx : my ) · bex −ey

I Am Ende normieren

16 / 22
Informationen und Daten

Gleitkommazahlen (floating point numbers)


I Eine Darstellung im Rechner (b = 2, 32 Bits)
1 Bit 8 Bits 23 Bits
Exponent Mantisse

Vorzeichen 2–Komplement–Darstel–
der Mantisse lung des Exponenten

z.B.: 0 1 1 1 1 1 1 0 0 1 0 1 1 0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0

+0.10112 · 2−4 = 0.000010112


= 0.0429687510

17 / 22
Informationen und Daten
Gleitkommazahlen (floating point numbers)
I Zahlenbereich

z > 0 : 0.5 · 2−128 ≤ z ≤ (1 − 2−23 ) · 2127


z < 0 : −(1 − 2−23 ) · 2127 ≤ z ≤ −0.5 · 2−128

negativer darstellbare negative negativer positiver darstellbare positive positiver


overflow Zahlen mit Lücken underflow underflow Zahlen mit Lücken overflow

… …

−(1 − 2−23 ) · 2127 −0.5 · 2−128 0 0.5 · 2−128 (1 − 2−23 ) · 2127

I Das linkeste Bit der Mantisse ist immer 1 (b = 2).


−→ überflüssig zu speichern!
I Aber wie wird die Null gespeichert?

18 / 22
Informationen und Daten
Gleitkommazahlen (floating point numbers)
bis ca. 1980: Jeder Computerhersteller hat eigenes Gleitkommaformat
seit 1979: IEEE-Komitee (Institute of Electrical and Electronic Engineers)
1985: IEEE Standard 754, bis heute allgemein akzeptiert
IEEE Standard 754
I single precision (32 Bits)
1 Bit 8 Bits 23 Bits
1. Exponent Mantisse

Vorzeichen
der Mantisse

I double precision (64 Bits)


1 Bit 11 Bits 52 Bits
2. Exponent Mantisse

Vorzeichen
der Mantisse

I extended precision (79 Bits)


(interner Gebrauch zur Reduzierung von Rundungsfehlern)
19 / 22
Informationen und Daten
Gleitkommazahlen (floating point numbers)
IEEE Standard 754
I Exponenten
I Excess 127 mit Spezialanwendungen für 0 und 255,
Bereich [−126, +127]
I Excess 1023 mit Spezialanwendungen für 0 und 2047,
Bereich [−1022, +1023]
I Achtung, Darstellung hier mit 1 ≤ m < 2, und Weglassen:
s 1 Mantisse

nicht Komma
gespeichert

I Kleinste normalisierte Zahl:sp: 2−126 ≈ 10−38


dp: 2−1022 ≈ 10−308
I Größte normalisierte Zahl: sp: ≈ 2127 ≈ 1038
dp: ≈ 21023 ≈ 10308
20 / 22
Informationen und Daten
Gleitkommazahlen (floating point numbers)
IEEE Standard 754
I Numerische Typen
1. 24 signifikante Bits

normalisiert +/− 0 < exp < max alles erlaubt

0. 23 signifikante Bits

denormalisiert +/− 0 ̸= 0

0.

Null +/− 0 0

unendlich +/− 1 1 . . . . . . . . . . . . 1 0

keine Zahl +/− 1 1 . . . . . . . . . . . . 1 ̸= 0

”‘Not a Number”’ (NaN)


21 / 22
Informationen und Daten

Gleitkommazahlen (floating point numbers)


IEEE Standard 754
23
z }| {
I Größte denormalisierte Zahl: sp: 0. 111. . .12 · 2−126
52
z }| {
dp: 0. 11. . .12 · 2−1022
I Kleinste denormalisierte Zahl: sp: 2−23 · 2−126 = 2−149
dp: 2−52 · 2−1022 = 2−1074
I Rechenregeln
I „unendlich“ + x = „unendlich“
I „unendlich“
x
=0
I 0x = „unendlich“
I „unendlich“
„unendlich“ undefiniert: NaN

22 / 22
Informatik II
Wintersemester 2019/2020

Melanie Schmidt
Abteilung Informatik
Department Mathematik/Informatik

21. Oktober 2019

1 / 29
Organisatorisches
Übungsbetrieb: Wichtiges
I Die Übung am 1.11. (Freitags, Allerheiligen) wird
vorgezogen auf den 25.10. Die anderen Gruppen starten im
Bereich 28.10.-31.10.!
I Die Übungsgruppen sind ziemlich voll. Besonders betroffen
sind diese beiden Termine:
I Montag: 10:00 - 11:30
I Dienstag: 12:00 - 13:30
I Wir bieten daher folgendes zusätzlich an:
I Übungsgruppe ohne Anmeldung:
Donnerstag 12:00 - 13:30 (Julian Wargalla)
I Fragestunde zu den Übungen: im Anschluss an die neue
Donnerstags-Übung, ebenfalls Julian Wargalla
Sie können die neue Übungsgruppe sowie die Fragestunde ohne
weitere Anmeldung besuchen. Korrektur erfolgt durch die
ursprünglich vorgesehene TutorIn. Wir hoffen dass durch die
zusätzliche Gruppe insbesondere die beiden oben genannten
Übungsgruppen etwas entlastet werden.
2 / 29
Informationen und Daten
Gleitkommazahlen
I Idee: Speicherung von mx , ex mit der Interpretation

x = mx · bex .

Dabei heißt mx Mantisse und ex Exponent. Die Basis b ist fix


und muss nicht mit abgespeichert werden.
I m und e sind ganze Zahlen, die in einem Format für ganze
Zahlen abgespeichert werden
I Die Darstellung ist nicht eindeutig und hängt von der
Normalisierung der Mantisse ab
Ein Format für Gleitkommazahlen muss also einige Dinge festlegen:
I die Basis b
I die Normalisierung der Mantisse
I welche und wie viele Bits für m und e verwendet werden

3 / 29
Informationen und Daten

IEEE Standard 754, 32 Bit (single precision)


I Exponent in Excess-Darstellung, 8 Bit
I Mantisse 23 Bit, plus 1 Bit Vorzeichen
I Einschränkung des Exponenten für Spezialfälle
I Normalisierung der Mantisse so dass 1 ≤ m ≤ 2, also genau
eine Stelle vor dem Komma (diese ist nicht Null)
1 Bit 8 Bits 23 Bits
1. Exponent Mantisse

Vorzeichen
der Mantisse

I b = 2, daher ist Stelle vor dem Komma immer eine 1


I diese wird nicht gespeichert

4 / 29
Informationen und Daten

Rundungsfehler

negativer darstellbare negative negativer positiver darstellbare positive positiver


overflow Zahlen mit Lücken underflow underflow Zahlen mit Lücken overflow

… …

I Nur ein kleiner Teil der rationalen Zahlen kann exakt als
Gleitkommzahl dargestellt werden.
I Wie groß können Rundungsfehler sein?
I Für die folgenden Überlegungen folgen wir dem Artikel
What Every Computer Scientist Should Know About
Floating-Point Arithmetic von David Goldberg, erschienen in
ACM Computing Surveys, Volume 23, 1991.

5 / 29
Informationen und Daten

Rundungsfehler
I Wir gehen im Folgenden von einem Gleitkommaformat aus,
dass die Mantisse so normiert, dass exakt eine Stelle vor dem
Komma steht.
I Die Mantisse wird mit p Bits gespeichert (plus Vorzeichenbit).
I Außerdem ist eine ganzzahlige Basis b ≥ 2 festgelegt.
I Wir bezeichnen für eine reele Zahl x mit x eine
Gleitkommazahl, die minimalen Abstand zu x hat (x wird
‘gerundet’).

6 / 29
Informationen und Daten

Rundungsfehler
I Mantisse: Vorzeichenbit, p Bits nach dem Komma. Basis ist b.

Lemma
Sei x ∈ R und x eine Gleitkommazahl im obigen Format, die
minimalen Abstand zu x hat. Dann gilt

|x − x| 1
≤ · b−(p−1) ,
|x| 2

d.h. der relative Fehler ist durch eine Konstante beschränkt, die nur
von b und p abhängt. Diese Konstante bezeichnen wir mit ϵb,p oder
mit ϵmaschine . Sie wird auch als Maschinengenauigkeit bezeichnet.

7 / 29
Informationen und Daten

Rundungsfehler
I Subtraktionen (und auch Additionen) können im Vergleich
zum Ergebniswert sehr hohen relativen Fehler verursachen!
I Zunächst einmal müssen wir aber festlegen, wie eine
Subtraktion überhaupt durchgeführt wird.
I Erinnerung: „Denormalisieren“ des Operanden mit dem
kleineren Exponenten
I Aber wie wird die Mantisse der betroffenen Zahl gerundet?
Wir legen folgendes Verfahren fest: Die Denormalisierung
geschieht, indem die Darstellung der Mantisse um ausreichend viele
Stellen nach rechts verschoben wird. Nach Durchführung der
Operation wird auf die nächste Fließkommazahl gerundet.

8 / 29
Informationen und Daten
Rundungsfehler
I Verfahren: Denormalisieren des Operanden mit dem kleineren
Exponenten durch Verschieben der Stellen nach rechts
(entspricht Abrunden auf die nächstkleinere Gleitkommazahl)
I Beispiel (b=10):

1.00·101 −9.99·100 = 1.00·101 −0.99·101 = 0.01·101 = 0.1·100

I Richtiges Ergebnis:

10 − 99.9 = 0.01 = 0.1 · 10−1

I Relativer Fehler |0.1−0.01|


0.01 =9
I Allgemein: Seien x, y zwei Zahlen im Gleitkommaformat und
x − y das Ergebnis einer Subtraktion, bei der die kleinere Zahl
denormalisiert wurde. Dann kann der relative Fehler
|x−y|−|x−y|
|x−y| bis zu b − 1 betragen.
9 / 29
Informationen und Daten
Rundungsfehler

Ausweg: Ein zusätzliches Bit verwenden („guard bit”)


I Beispiel oben (1.00 · 101 − 9.99 · 100 ): Jetzt kein Fehler mehr!
I Anderes Beispiel (b=10):

1.00·101 −9.99·10−1 = 1.00·101 −0.099·101 = 0.901·101 → 9.01·100

I Richtig: 10 − 0.999 = 9.001


I Relativer Fehler nur 0.001/9.001
I Anderes Beispiel: 1.10 · 102 − 8.59 · 100
I 2 Nachkommastellen plus 1 guard bit: 1.10 · 102 − 0.085 · 102
I Ergebnis 1.015 · 102 , aufgerundet 1.02 · 102
I Relativer Fehler 0.0059/1.0141 ≥ 0.0058 ist größer als
ϵb,p = 21 · 10−2 = 0.005. Aber nicht viel :-)

10 / 29
Informationen und Daten

Rundungsfehler

Theorem
Seien x, y Gleitkommazahlen nach obigem Modell mit Parametern
b und p. Wenn für die Darstellung der kleineren Zahl nach
Denormalisierung p + 1 Bits verwendet werden und das Ergebnis e
dann auf die nächste Gleitkommazahl e gerundet wird, dann gilt

|(x − y) − e|
≤ 2 · ϵb,p .
|x − y|

11 / 29
Informationen und Daten
Rundungsfehler
I Wir wissen nun: Eine einzelne Subtraktion hat beschränkten
Fehler, wenn ein zusätzliches Bit verwendet wird.
I Summen mit vielen Summanden können aber einen
erheblichen Fehler akkumulieren.
Einfache Analyse:
I Gegeben seien Zahlen x1 , . . . , xm in obigem Modell mit
Parametern b und p.
I Berechne die Summe
X m
xi
i=1
I Bezeichne mit e(x + y) das Ergebnis einer Operation, die so
wie oben definiert durchgeführt wird.

12 / 29
Informationen und Daten

Rundungsfehler
|x1 +x2 −e(x1 +x2 )|
I Laut Theorem: |x1 +x2 | ≤ 2ϵb,p .
I Also e(x1 + x2 ) = (1 + δ2 ) · (x1 + x2 ) für δ2 ∈ [−2ϵb,p , 2ϵb,p ].
I Genauso: e(e(x1 + x2 ), x3 ) = (1 + δ3 ) · (x3 + e(x1 + x2 )) für
δ3 ∈ [−2ϵb,p , 2ϵb,p ]
I Zusammen:
e(e(x1 + x2 ), x3 ) = (1 + δ3 ) · (x3 + (1 + δ2 ) · (x1 + x2 ))
I → Fehler pflanzt sich fort

13 / 29
Informationen und Daten

Rundungsfehler
Auswege
I Eine Möglichkeit: Verwendung von p zusätzlichen Bits
(doppelte Genauigkeit) für die einzelnen Operationen
I Oder: Algorithmus von Kahan
I (Es gibt auch noch andere Möglichkeiten, die wir hier aber
auslassen)

14 / 29
Informationen und Daten

Kahan-Summation
Berechne die Summe
X
m
xi
i=1

I S := 0, F := 0
I Für alle i = 1, . . . , n:
I Y := xi - F
I Z := S + Y
I F := (Z - S) - Y
I S := Z
Idee: Der Fehler wird in einer separaten Variable mitgeführt (die
einen anderen Genauigkeitsbereich haben kann) und sammelt sich
dort, bis er relevant für den Wert der Summe wird.

15 / 29
Informationen und Daten

Kahan-Summation
Darstellung des ersten Schritts (F = 0)

S
+ xi xlinks
i xrechts
i

= Z

− S
= xlinks
i

− xi xlinks
i xrechts
i

= F = − xrechts
i

16 / 29
Informationen und Daten

Kahan-Summation
Theorem
Sei S mit obigem Algorithmus berechnet. Dann ist

X
n X
n
S= xi (1 + δi ) + O(n · ϵ ) ·
2
|xi |
i=1 i=1

wobei |δi | ≤ 2ϵb,p für alle i ∈ {1, . . . , n}.

17 / 29
Informationen und Daten

Fehlertoleranz
I Bisher: Kodierung als Darstellung von Zeichen im Rechner
I Allgemeiner ist Kodierung die Übertragung von einer Sprache
in eine andere.
I D.h. Folgen von Zeichen eines Alphabets werden in
Zeichenfolgen eines anderen Alphabets übertragen.
I Bei der Wahl der Kodierung können die folgenden Aspekte
eine Rolle spielen:
I Eindeutigkeit der Nachricht
I Kürze der Nachricht
I Effiziente Durchführung der Operationen
I Fehlertoleranz bei Rauschen (Einzelne Bits sind falsch gesetzt.)
I Verschlüsselung (Kryptographie)

18 / 29
Informationen und Daten

Fehlertoleranz
I In der Übermittlung von Daten können Fehler auftreten.
I Magnetspeicher können ausfallen.
I Elektronische Speicherstellen können (mit geringer
Wahrscheinlichkeit) ihre Informationen verlieren oder
verfälschen.
I Prinzipiell werden dabei zwei Fehlerquellen unterschieden:
I Hard errors: Die Zelle ist physikalisch beschädigt.
I Sie liefert immer denselben Wert zurück: (stuck at zero/one).
I Soft errors: Die Information ist verloren, nach neuem
Beschreiben aber vorhanden.
I Dynamische Speicher benutzen kleine Kondensatoren.
I Ladung =
b Zustand “1”
I Ladung kann absinken.

19 / 29
Informationen und Daten

Fehlererkennung
I Verwendung von parity bits
I Ein Speicher der Länge n nimmt nur Dualzahlen
dn−2 dn−3 . . . d0 der Länge n − 1 auf.
I Das Bit dn−1 wird wie folgt gesetzt:
 Pn−2
0, falls i=0 di ungerade
dn−1 =
1, sonst

P
I Dann muss n−1 i=0 di stets ungerade sein.
Andernfalls ist ein Fehler aufgetreten.

20 / 29
Informationen und Daten

Fehlerbehebung
I Sei c : M → {0, 1}n eine Kodierung in Blöcke der Länge n.
I Für a, b ∈ {0, 1}n sei d(a, b) = |{i : ai ̸= bi }| der
Hammingabstand von a, b.
I Sei h(c) = min{d(a, b) | a, b ∈ c(M)} der kleinste Abstand
zweier Bitstrings in c(M).
I Beispiel:
I Seien 00000, 10011, 01010, 11001, 00101, 10110, 01111, 11100
die verwendeten Bitstrings.
I Dann ist h(c) = 2.
I Wird 11011 empfangen, so erkennen wir, dass ein Fehler
aufgetreten ist.
I Wird maximal ein Bit gekippt, so können wir dies immer
feststellen.

21 / 29
Informationen und Daten

Lemma (Hammingcodes)
(i) In einem Blockcode c der Länge n können k gleichzeitig
auftretende Fehler erkannt werden, wenn h(c) ≥ k + 1 ist.
(ii) Ist h(c) ≥ 2k + 1, so können sie auch korrigiert werden.

Beweis in der Übung

22 / 29
Kapitel 2: Rechnerarchitektur
I Überleitende Frage: Wie realisieren wir die angesprochenen
Operationen jetzt tatsächlich, d.h. durch ein Schaltnetz?
I Davor: Grundlagen (boolesche Algebra)

23 / 29
Rechnerarchitektur

Schaltkreisentwicklung / Boolesche Algebra


B = {0, 1}, Interpretation: 0 =
b falsch, 1 =
b wahr

Mathematische Eigenschaften von B:


I Erklärt man auf B zwei zweistellige Operationen „⊕“ und „·“
durch
0⊕0 = 1⊕1 = 0
1⊕0 = 0⊕1 = 1
0·0 = 0·1 = 1·0 = 0
1·1 = 1
so ist (B, ⊕, ·) ein Körper der Ordnung 2 (häufig auch als
Galoisfeld GF(2) bezeichnet) mit dem Nullelement 0 und dem
Einselement 1.

24 / 29
Rechnerarchitektur

Schaltkreisentwicklung / Boolesche Algebra Mathematische


Eigenschaften von B:
I Erklärt man für x, y ∈ B die drei Operationen

x ∪ y := max(x, y)
x ∩ y := min(x, y)
x := 1 − x

so ist (B, ∪, ∩,− ) eine Boolesche Algebra, d.h. ein


distributiver, komplementärer Verband, in welchem es ein
kleinstes (0) und ein größtes (1) Element gibt.

25 / 29
Rechnerarchitektur

Schaltkreisentwicklung / Boolesche Algebra


Satz RA.1 Seien x, y, z ∈ B. Dann gelten:
(a) Kommutativgesetze: x ∪ y = y ∪ x und x ∩ y = y ∩ x
(b) Assoziativgesetze: (x ∪ y) ∪ z = x ∪ (y ∪ z) und
(x ∩ y) ∩ z = x ∩ (y ∩ z)
(c) Verschmelzungsgesetze: (x ∪ y) ∩ x = x und (x ∩ y) ∪ x = x
(d) Distributivgesetze: x ∩ (y ∪ z) = (x ∩ y) ∪ (x ∩ z) und
x ∪ (y ∩ z) = (x ∪ y) ∩ (x ∪ z)
(e) Komplementgesetze: x ∪ (y ∩ y) = x und x ∩ (y ∪ y) = x
(f) x ∪ 0 = x und x ∩ 0 = 0 und x ∩ 1 = x und x ∪ 1 = 1
(g) de Morgansche Regeln: x ∪ y = x ∩ y und x ∩ y = x ∪ y
(h) x = x ∪ x = x ∩ x = x

26 / 29
Rechnerarchitektur

Schaltkreisentwicklung / Boolesche Algebra


Beweis: (exemplarisch für (c) (x ∪ y) ∩ x = x)

Argumente linke Seite rechte Seite


x y x ∪ y (x ∪ y) ∩ x x
0 0 0 0 0
0 1 1 0 0
1 0 1 1 1
1 1 1 1 1

27 / 29
Rechnerarchitektur

Schaltkreisentwicklung / Boolesche Algebra


Vertraute Schreibweise
∪ −→ + (Addition) (auch ∨)
∩ −→ · (Multiplikation) (auch ∧)

x y x+y x·y x
0 0 0 0 1
0 1 1 0 1
1 0 1 0 0
1 1 1 1 0

28 / 29
Rechnerarchitektur

Schaltkreisentwicklung / Boolesche Algebra


Definition RA.2 Seien n, m ∈ N, n, m ≥ 1. Dann heißt eine
Funktion F : Bn −→ Bm Schaltfunktion.

n ... Black Box ... m

Input Output

29 / 29
Informatik II

Melanie Schmidt
Abteilung Informatik
Department Mathematik/Informatik

23. Oktober 2018

1 / 27
Rechnerarchitektur

Boolesche Algebra
Erinnerung
I Wir interessieren uns für B = {0, 1} mit den Operationen
I x ∪ y = max{x, y}
I x ∩ y = min{x, y}
I ¬x = x̄ = 1 − x
I (B, ∪, ∩,¯) mit B = {0, 1} nennen wir boolesche Algebra
I Bekannt auch aus der Aussagenlogik, ∪ entspricht ∨,
∩ entspricht ∧, und¯entspricht der Verneinung ¬
I Wir haben wichtige Rechenregeln gesehen, z.B.
Distributivität, de Morgansche Regel, …

2 / 27
Rechnerarchitektur

Schaltkreisentwicklung / Boolesche Algebra


Satz Seien x, y, z ∈ B. Dann gelten:
(a) Kommutativgesetze: x ∨ y = y ∨ x und x ∧ y = y ∧ x
(b) Assoziativgesetze: (x ∨ y) ∨ z = x ∨ (y ∨ z) und
(x ∧ y) ∧ z = x ∧ (y ∧ z)
(c) Verschmelzungsgesetze: (x ∨ y) ∧ x = x und (x ∧ y) ∨ x = x
(d) Distributivgesetze: x ∧ (y ∨ z) = (x ∧ y) ∨ (x ∧ z) und
x ∨ (y ∧ z) = (x ∨ y) ∧ (x ∨ z)
(e) Komplementgesetze: x ∨ (y ∧ y) = x und x ∧ (y ∨ y) = x
(f) x ∨ 0 = x und x ∧ 0 = 0 und x ∧ 1 = x und x ∨ 1 = 1
(g) de Morgansche Regeln: x ∨ y = x ∧ y und x ∧ y = x ∨ y
(h) x = x ∨ x = x ∧ x = x

3 / 27
Rechnerarchitektur
Boolesche Funktionen und Schaltfunktionen
I ∨, ∧ und ¬ sind boolesche Funktionen
I Allgemein:

Definition
Für n ∈ N nennen wir eine Funktion F : Bn → Bm boolesche
Funktion oder Schaltfunktion.

.. ..
n . Black Box . m

Input Output

I Spezialfall: m = 1

4 / 27
Rechnerarchitektur

Schaltkreisentwicklung / Boolesche Algebra


Beispiel Exklusives Oder (XOR)
I Input 2 Bits x und y
I Output 1 Bit, das folgender Wertetabelle folgt:

x y x⊕y
0 0 0
0 1 1
1 0 1
1 1 0
I Schaltfunktion ⊕ : B2 −→ B

5 / 27
Rechnerarchitektur

Schaltkreisentwicklung / Boolesche Algebra


Beispiel Addition von zwei 16-stelligen Binärzahlen
I Input b1 b2 . . . b16 b17 b18 . . . b32
| {z } | {z }
Summand 1 Summand 2
I Output c1 c2 . . . c17
| {z }
Summe
I Schaltfunktion A : B32 −→ B17

6 / 27
Rechnerarchitektur

Schaltkreisentwicklung / Boolesche Algebra


Beispiel Sortieren von 30 16-stelligen Binärzahlen
I Input 30 · 16 = 480 Bits
I Output 480 Bits
I Schaltfunktion S : B480 −→ B480

7 / 27
Rechnerarchitektur
Boolesche Funktionen und Schaltfunktionen
Wie viele Schaltfunktionen gibt es?
I F : Bn → Bm durch eine Wertetabelle mit |Bn | = 2n Zeilen
darstellbar
I Für jede Zeile gibt es |Bm | = 2m viele verschiedene
Möglichkeiten, was der Wert der Funktion in dieser Zeile ist
I Es gibt so viele verschiedene Schaltfunktionen wie es (bei
gleicher Reihenfolge der Zeilen) verschieden ausgefüllte
Wertetabellen gibt
I Es gibt also
n n
(2m )2 = 2m·2
verschiedene Schaltfunktionen.
I Also 22 viele verschiedene boolesche Funktionen für m = 1.
n

8 / 27
Rechnerarchitektur

Schaltkreisentwicklung / Boolesche Algebra


I Alle einstelligen booleschen Funktionen f : B −→ B:

≡0 x ¬x ≡1
x f0 (x) f1 (x) f2 (x) f3 (x)
0 0 0 1 1
1 0 1 0 1

I Alle zweistelligen booleschen Funktionen f : B2 −→ B sind auf


der nächsten Folie aufgelistet:

9 / 27
Rechnerarchitektur
AND XOR OR
≡0 ∧ ; x : y ⊕ ∨
x y f0 f1 f2 f3 f4 f5 f6 f7
0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 1 1 1 1
1 0 0 0 1 1 0 0 1 1
1 1 0 1 0 1 0 1 0 1

NOR NAND
↓ ⇔ ¬y ⇐ ¬x ⇒ ↑ ≡1
x y f8 f9 f10 f11 f12 f13 f14 f15
0 0 1 1 1 1 1 1 1 1
0 1 0 0 0 0 1 1 1 1
1 0 0 0 1 1 0 0 1 1
1 1 0 1 0 1 0 1 0 1

Anmerkung:
f1 heißt auch Konjunktion, f7 Disjunktion und f12 Negation.
10 / 27
Rechnerarchitektur

Spezialfall m = 1

Alle Funktionen F : B2 → B2 ?

Sei F : Bn −→ Bm mit F(x1 , . . . , xn ) = (y1 , . . . , ym ).


Setzt man dann für jedes i ∈ {1, . . . , m}

fi : Bn −→ B

definiert durch
fi (x1 , . . . , xn ) = yi
so ist F offensichtlich für alle x1 , . . . , xn ∈ B wie folgt darstellbar:

F(x1 , . . . , xn ) = (f1 (x1 , . . . , xn ), f2 (x1 , . . . , xn ), . . . , fm (x1 , . . . , xn ))

11 / 27
Rechnerarchitektur

Darstellung von booleschen Funktionen


I Eine Möglichkeit: Durch eine Wertetabelle wie gerade
I Nachteil: Immer groß
I Immer klein geht nicht (aufgrund der Anzahl der Funktionen)
I Manchmal klein aber schon: Schreiben wir eine Funktion
durch einen logischen Ausdruck, kann er unter Umständen
sehr kompakt sein, z.B. (x1 ∨ x2 ) ∧ ¬x3 ∧ x4 statt der Angabe
der 24 = 16 Funktionswerte
I Frage: Können wir alle booleschen Funktionen so darstellen?

12 / 27
Rechnerarchitektur
Minterme

i x y z Minterm
0 0 0 0 ¬x ∧ ¬y ∧ ¬z
1 0 0 1 ¬x ∧ ¬y ∧ z
2 0 1 0 ¬x ∧ y ∧ ¬z
3 0 1 1 ¬x ∧ y ∧ z
4 1 0 0 x ∧ ¬y ∧ ¬z
5 1 0 1 x ∧ ¬y ∧ z
6 1 1 0 x ∧ y ∧ ¬z
7 1 1 1 x ∧ y ∧ z
Idee
Der Minterm zu Zeile i ist genau dann wahr, wenn die Variablen
die Werte annehmen, die durch die Binärdarstellung von i gegeben
sind.

13 / 27
Rechnerarchitektur

Minterme

I Den Index i einer Zeile in der Wertetabellen erhalten wir,


indem wir die Variablenbelegung als Binärzahl interpretieren
I Der Minterm zur Zeile i ist die boolesche Funktion, die genau
für diese Variablenbelebung den Wert 1 annimmt und sonst
immer 0 ist.
I Wir erhalten diesen Minterm so:
I Für alle Variablen x, deren Belegung 1 ist, merken wir uns x
I Für alle Variablen x, deren Belegung 0 ist, merken wir uns ¬x
I Nun verknüpfen wir alle Literale durch ∧

14 / 27
Rechnerarchitektur
Minterme

I Der Minterm zur Zeile i ist die boolesche Funktion, die genau
für diese Variablenbelebung den Wert 1 annimmt und sonst
immer 0 ist.
I Sei f : Bn → B eine boolesche Funktion, für die wir die
Wertetabelle kennen.
I Wir nennen den Index i einschlägig, wenn der Wert von f in
dieser Zeile 1 ist, andernfalls nennen wir den Index nicht
einschlägig.
x y x⊕y
0 0 0 nicht einschlägig
0 1 1 einschlägig
1 0 1 einschlägig
1 1 0 nicht einschlägig

15 / 27
Rechnerarchitektur
Minterme

x y x⊕y
0 0 0 nicht einschlägig
0 1 1 einschlägig
1 0 1 einschlägig
1 1 0 nicht einschlägig
I Wir stellen f nun da, indem wir den Minterm für alle
einschlägigen Indizes bilden und diese Minterme mit ∨
verknüpfen.
I Die Funktion f nimmt genau dann den Wert 1 an, wenn
mindestens einer der Minterme den Wert 1 annimmt!
I XOR: (¬x ∧ y) ∨ (x ∧ ¬y)

16 / 27
Rechnerarchitektur
Minterme
Weiteres Beispiel: Sei fbsp : B3 → B gegeben durch

i x y z fbsp (x, y, z)
0 0 0 0 1
1 0 0 1 0
2 0 1 0 0
3 0 1 1 0
4 1 0 0 1
5 1 0 1 1
6 1 1 0 1
7 1 1 1 1
I Einschlägige Indizes: 0, 4, 5, 6, 7
I Also fbsp =
(¬x∧¬y∧¬z)∨(x∧¬y∧¬z)∨(x∧¬y∧z)∨(x∧y∧¬z)∨(x∧y∧z)
I Darstellungslänge hier verkürzbar: fbsp = (¬x ∧ ¬y ∧ ¬z) ∨ x
17 / 27
Rechnerarchitektur

Funktionale Vollständigkeit

Beobachtung
Wir können alle booleschen Funktionen mit {∨, ∧, ¬} darstellen!

Definition
Wir nennen eine Menge M boolescher Funktionen funktional
vollständig, wenn sich jede boolesche Funktion durch Einsetzen
und Komposition von Funktionen aus M darstellen lässt.

Satz
Die Menge {∨, ∧, ¬} ist funktional vollständig.

18 / 27
Rechnerarchitektur
Funktionale Vollständigkeit
Frage(n)
I Ist {∧, ¬} funktional vollständig?
I Ist {∨, ¬} funktional vollständig?
I Reicht auch eine boolesche Funktion?

Beispielfunktion
I Erinnerung: fbsp = (¬x ∧ ¬y ∧ ¬z) ∨ x
I Kann man das ohne ∧ darstellen? Oder ohne ∨?

Ja!
I Erinnerung: De Morgansche Regeln
I ¬(x ∧ y) = ¬x ∨ ¬y und ¬(x ∨ y) = ¬x ∧ ¬y
I Also: fbsp = ¬(¬((¬x ∧ ¬y ∧ ¬z)) ∧ ¬x)

19 / 27
Rechnerarchitektur
Einschub: Vereinfachen und Umwandeln

fbsp
= (¬x ∧ ¬y ∧ ¬z) ∨ (x ∧ ¬y ∧ ¬z) ∨ (x ∧ ¬y ∧ z) ∨ (x ∧ y ∧ ¬z) ∨ (x ∧ y ∧ z)
Tafel
= (¬x ∧ ¬y ∧ ¬z) ∨ (x ∧ ¬y) ∨ (x ∧ y)
Tafel
= (¬x ∧ ¬y ∧ ¬z) ∨ x ∨ x
(h) (h)
= (¬x ∧ ¬y ∧ ¬z) ∨ x = ¬(¬((¬x ∧ ¬y ∧ ¬z))) ∨ ¬(¬x)
de Morgansche Regel
= ¬(¬((¬x ∧ ¬y ∧ ¬z)) ∧ ¬x)
I Distributivgesetze: x ∧ (y ∨ z) = (x ∧ y) ∨ (x ∧ z)
x ∨ (y ∧ z) = (x ∨ y) ∧ (x ∨ z)
I Komplementgesetze: x ∨ (y ∧ y) = x und x ∧ (y ∨ y) = x
I (h) x = x ∧ x = x ∨ x = ¬(¬x)
I de Morgansche Regeln: ¬(x ∧ y) = ¬x ∨ ¬y und
¬(x ∨ y) = ¬x ∧ ¬y 20 / 27
Rechnerarchitektur

Satz
{∨, ¬} ist funktional vollständig. {∧, ¬} ist funktional vollständig.

Beweis
Das folgt aus der Anwendung der de Morganschen Regeln (und
Anwendung von x = ¬(¬x)).

21 / 27
Rechnerarchitektur

Frage(n)
I {∧, ¬} ist funktional vollständig.
I {∨, ¬} ist funktional vollständig.
I Reicht auch eine boolesche Funktion? Ja!

22 / 27
Rechnerarchitektur

Satz
{NAND} ist funktional vollständig.

Beweis
Wir wissen schon, dass wir jede boolesche Funktion mit ¬ und ∨
darstellen können. Nun beobachten wir:

¬x = NAND(x, x)
x ∨ y = ¬(¬(x ∨ y)) = ¬(¬x ∧ ¬y) = NAND(¬x, ¬y)
= NAND(¬x ∨ ¬x, ¬y ∨ ¬y) = NAND(¬(x ∧ x), ¬(y ∧ y))
= NAND(NAND(x, x), NAND(y, y))

Also können wir alle booleschen Funktionen durch NAND


ausdrücken.

23 / 27
Rechnerarchitektur

Zwischenfazit
Funktional vollständig: {∨, ∧, ¬}, {∨, ¬, }, {∧, ¬}, {NAND}

Satz
{⊕, ∧, ¬} ist funktional vollständig.

Beweis
Präzision des Beweises für {∨, ∧, ¬}.

24 / 27
Rechnerarchitektur

Normalformen
Sei f : Bn → B eine boolesche Funktion. Die Darstellung von f …
I …als Disjunktion der Minterme aller einschlägigen Indizes heißt
disjunktive Normalform (DNF).
I …als XOR-Verknüpfung der Minterme aller einschlägigen
Indizes heißt Ringsummen-Normalform (RNF).
I …als Konjunktion der Maxterme aller nicht-einschlägigen
Indizes heißt konjunktive Normalform (KNF).

Maxterm
Der Maxterm zu Zeile i ist die Negation des Minterms für Zeile i.

25 / 27
Rechnerarchitektur
Maxterm
Der Maxterm zu Zeile i ist die Negation des Minterms für Zeile i.

x y x⊕y Minterm Maxterm


0 0 0 nicht einschlägig ¬x∧ ¬y x∨ y
0 1 1 einschlägig ¬x∧ y x∨ ¬y
1 0 1 einschlägig x∧ ¬y ¬x∨ y
1 1 0 nicht einschlägig x∧ y ¬x∨ ¬y

I KNF: Darstellung von f als Konjunktion der Maxterme aller


nicht-einschlägigen Indizes.
I XOR: (x ∨ y) ∧ (¬x ∨ ¬y)
Die Funktion f nimmt genau dann den Wert 1 an, wenn keiner der
Minterme nicht-einschlägiger Indizes den Wert 1 annimmt. Also
genau dann, wenn alle Maxterme den Wert 1 annehmen.
26 / 27
Rechnerarchitektur
Maxterme
Erinnerung: Sei fbsp : B3 → B gegeben durch

i x y z fbsp (x, y, z)
0 0 0 0 1
1 0 0 1 0
2 0 1 0 0
3 0 1 1 0
4 1 0 0 1
5 1 0 1 1
6 1 1 0 1
7 1 1 1 1

I Nicht-einschlägige Indizes: 1, 2, 3
I Also fbsp = (x ∨ y ∨ ¬z) ∧ (x ∨ ¬y ∨ z) ∧ (x ∨ ¬y ∨ ¬z)
I Hier kürzer als DNF, da weniger nicht-einschlägige Indizes.

27 / 27
Informatik II
Wintersemester 2019/2020

Melanie Schmidt
Abteilung Informatik
Department Mathematik/Informatik

28. Oktober 2019

1 / 32
Organisatorisches

Übungsbetrieb
I Erinnerung: Diese beiden Gruppen sind besonders voll:
I Montag: 10:00 - 11:30
I Dienstag: 12:00 - 13:30
I Wir bieten daher folgendes zusätzlich an:
I Übungsgruppe ohne Anmeldung:
Donnerstag 12:00 - 13:30 (Julian Wargalla)
I Fragestunde zu den Übungen: im Anschluss an die neue
Donnerstags-Übung, ebenfalls Julian Wargalla
I Raum: kleiner Hörsaal XXXI, alte Botanik
Kontaktdaten
I Melanie Schmidt: mschmidt@informatik.uni-koeln.de
I Julian Wargalla: wargalla@informatik.uni-koeln.de

2 / 32
Rechnerarchitektur
Schaltkreisentwicklung / Boolesche Algebra
Tabellendefinition Boolescher Funktionen fite : Bn −→ B
Beispiel i x y z fite (x, y, z)
0 0 0 0 0
1 0 0 1 1
2 0 1 0 0
3 0 1 1 1
4 1 0 0 0
5 1 0 1 0
6 1 1 0 1
7 1 1 1 1
| {z }
Dualdarstellung von i

fite (x, y, z) = if x then y else z


= (x ⇒ y) ∧ (¬x ⇒ z)
= (¬x ∨ y) ∧ (x ∨ z)

3 / 32
Rechnerarchitektur

Erinnerung
Normalformen
Sei f : Bn → B eine boolesche Funktion. Die Darstellung von f …
I …als Disjunktion der Minterme aller einschlägigen Indizes heißt
disjunktive Normalform (DNF).
I …als XOR-Verknüpfung der Minterme aller einschlägigen
Indizes heißt Ringsummen-Normalform (RNF).
I …als Konjunktion der Maxterme aller nicht-einschlägigen
Indizes heißt konjunktive Normalform (KNF).

4 / 32
Rechnerarchitektur
Normalformen
i x y z fite (x, y, z)
0 0 0 0 0 nicht einschlägig
1 0 0 1 1 einschlägig
2 0 1 0 0 nicht einschlägig
3 0 1 1 1 einschlägig
4 1 0 0 0 nicht einschlägig
5 1 0 1 0 nicht einschlägig
6 1 1 0 1 einschlägig
7 1 1 1 1 einschlägig
DNF
fite (x, y, z) = (¬x ∧ ¬y ∧ z) ∨ (¬x ∧ y ∧ z) ∨ (x ∧ y ∧ ¬z) ∨ (x ∧ y ∧ z)

KNF
I Maxterm zu Zeile 0: ¬(¬x ∧ ¬y ∧ ¬z) = (x ∨ y ∨ z)
fite (x, y, z) = (x ∨ y ∨ z) ∧ (x ∨ ¬y ∨ z) ∧ (¬x ∨ y ∨ z) ∧ (¬x ∨ y ∨ ¬z)

5 / 32
Rechnerarchitektur
Symbole für Gatter: Verschiedene Standards
y = ¬x1 = x1 x1 y x1 1 y
x1 x1
y = x1 ∧ x2 y & y
x2 x2
x1 x1
y = x1 ∨ x2 y ≥1 y
x2 x2
x1 x1
y = x1 ∧ x2 y & y
x2 x2
x1 x1
y = x1 ∨ x2 y ≥1 y
x2 x2
x1 x1
y = x1 ⊕ x2 y =1 y
x2 x2
6 / 32
Rechnerarchitektur
Symbole für Gatter
Vereinfachung für x0 ∧ x1 ∧ x2 ∧ . . . ∧ xn−1 :

.
..
...

Symbole für ∨ und ⊕ analog zusammenfassbar.


7 / 32
Rechnerarchitektur
Beispiel: Schaltnetz von fite basierend auf DNF
DNF
fite (x, y, z) = (¬x ∧ ¬y ∧ z) ∨ (¬x ∧ y ∧ z) ∨ (x ∧ y ∧ ¬z) ∨ (x ∧ y ∧ z)

8 / 32
Rechnerarchitektur
Anderes Beispiel: Schaltnetz für fbsp basierend auf KNF
KNF
fbsp = (x ∨ y ∨ ¬z) ∧ (x ∨ ¬y ∨ z) ∧ (x ∨ ¬y ∨ ¬z)

9 / 32
Rechnerarchitektur
Anderes Beispiel: Schaltnetz für fbsp basierend auf KNF
KNF
fbsp = (x ∨ y ∨ ¬z) ∧ (x ∨ ¬y ∨ z) ∧ (x ∨ ¬y ∨ ¬z)

10 / 32
Rechnerarchitektur

Schaltnetze
Formale Definition eines Schaltnetzes
I Definition Ein Schaltnetz ist ein gerichteter zyklenfreier
Graph (DAG: directed acyclic graph) D = (V, A), wobei A aus
Eingängen (Variablen) und Gattern besteht.
Input sind die Knoten, in die keine Kante hineinführt,
Output sind die Knoten, aus denen keine Kante hinausführt.
I
I

11 / 32
Rechnerarchitektur
Schaltnetze
Beispiel KNF-Darstellung als DAG
f(x, y, z) = (x ∨ y ∨ z) ∧ (x ∨ ¬y ∨ z) ∧ (¬x ∨ y ∨ z) ∧ (¬x ∨ y ∨ ¬z)
Input Input Input
x y z

¬ ¬ ¬ ¬

∨ ∨ ∨ ∨


Output f(x, y, z)

12 / 32
Rechnerarchitektur

Schaltnetze
Formale Definition eines Schaltnetzes
I Definition Ein Schaltnetz ist ein gerichteter zyklenfreier
Graph (DAG: directed acyclic graph) D = (V, A), wobei A aus
Eingängen (Variablen) und Gattern besteht.
Input sind die Knoten, in die keine Kante hineinführt,
Output sind die Knoten, aus denen keine Kante hinausführt.
I Alle Wege führen von einem Eingang zu einem Output-Gatter
I Die Richtung ist in unseren Zeichnungen implizit. Wir
zeichnen so, dass alle Wege entweder von links nach rechts
oder von oben nach unten gerichtet sind.

13 / 32
Rechnerarchitektur
Beispiel:Schaltnetz von fite basierend auf DNF
DNF
fite (x, y, z) = (¬x ∧ ¬y ∧ z) ∨ (¬x ∧ y ∧ z) ∨ (x ∧ y ∧ ¬z) ∨ (x ∧ y ∧ z)

14 / 32
Rechnerarchitektur

Zyklenfreiheit
I Zyklus: Gerichteter Kreis
I Warum keine Zyklen?

x Input
x

y ¬
y Output

Situation: x = 0 y = 1 → y = 0 → y = 1... „Flimmerschaltung“

15 / 32
Rechnerarchitektur
Beobachtung
I Wir können jede boolesche Funktion als Schaltnetz darstellen,
zum Beispiel basierend auf DNF oder KNF. Dann benötigen
wir nur Gatter für ∧, ∨, ¬.
I Resultierende Schaltnetze können (unnötig) groß sein.
fbsp = (x ∨ y ∨ ¬z) ∧ (x ∨ ¬y ∨ z) ∧ (x ∨ ¬y ∨ ¬z)

16 / 32
Rechnerarchitektur

Beobachtung
I Wir können jede boolesche Funktion als Schaltnetz darstellen,
zum Beispiel basierend auf DNF oder KNF. Dann benötigen
wir nur Gatter für ∧, ∨, ¬.
I Resultierende Schaltnetze können (unnötig) groß sein.
fbsp = (¬x ∧ ¬y ∧ ¬z) ∨ x

17 / 32
Rechnerarchitektur

Beobachtung
I Wir können jede boolesche Funktion als Schaltnetz darstellen,
zum Beispiel basierend auf DNF oder KNF. Dann benötigen
wir nur Gatter für ∧, ∨, ¬.
I Resultierende Schaltnetze können (unnötig) groß sein.
fbsp = x ∨ (¬y ∧ ¬z)

18 / 32
Rechnerarchitektur

Was wollen wir eigentlich klein halten?


Da gibt es verschiedene Möglichkeiten.
I Die Anzahl der Bauteile in der Schaltung: Größe
I Den längsten Weg von einem Eingang zu einem Ausgang:
Tiefe des Schaltnetzes
I (Die maximale Anzahl von Eingängen der Bauteile: Fan-In)

19 / 32
DNF / KNF - basierte Schaltnetze
I Tiefe ist maximal drei:
I Erste Stufe: Negation der Variablen wenn benötigt
I Zweite Stufe: Bildung der Min-/Maxterme
I Dritte Stufe: Disjunktion/Konjunktion aller Terme
I Größe und Fan-In: Ω(2n ):
I 2n Zeilen, davon potiell die Hälfte einschlägig und die andere
nicht einschlägig. Dann haben sowohl DNF als auch KNF in
ihrer Darstellung 2n−1 Terme.

20 / 32
Rechnerarchitektur

Alternative: Ad-hoc-Entwurf
Beispiel: Multiplexer
Aufgabe: Gegeben sind d Steuerbits y1 , . . . , yd und 2d Datenbits
x0 , . . . , x2d −1 (also d + 2d Eingabebits). Berechne die Funktion

MUXd (y1 , . . . , yd , x1 , . . . , x2d −1 ) = x(y1 y2 ...yd )2

→ Interpretiere y1 , . . . , yd als Binärzahl i und gib xi zurück


(also 1 Ausgabebit).

21 / 32
Rechnerarchitektur

y1 y2 y3 MUX3 (y1 , y2 , y3 , x0 , x1 , . . . , x7 )
0 0 0 x0
0 0 1 x1
0 1 0 x2
0 1 1 x3
1 0 0 x4
1 0 1 x5
1 1 0 x6
1 1 1 x7
I Vereinfachte Wertetabelle für MUX3
I d = 3, also 2d = 8, also 11 Eingabebits
I Vollständige Wertetabelle hat daher 211 = 2048 Zeilen
I DNF/KNF-Darstellung hat mehr als 210 = 1024 Gatter

22 / 32
Rechnerarchitektur

23 / 32
Rechnerarchitektur

Ad-hoc-Entwurf von Schaltnetzen


Addierer
I Wir fangen einfach an: Addiere zwei Bits!
I Welche Funktion wollen wir realisieren?
x y c(x, y) s(x, y)
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
I s für Summe, c für carry bit, also Übertrag
I Beobachtung: s(x, y) = x ⊕ y, c(x, y) = x ∧ y

24 / 32
Rechnerarchitektur

Halbaddierer

25 / 32
Rechnerarchitektur

Halbaddierer

26 / 32
Rechnerarchitektur

I Ziel: Addieren nach der ‘Schulmethode’, von hinten nach


vorne, mit Überträgen
I Beobachtung: Für die Addition der hintersten Bits reicht ein
Halbaddierer.
I Vorletztes Bit?

27 / 32
Rechnerarchitektur
Volladdierer
I Ab der 2. Stelle müssen wir den Übertrag c′ der vorherigen
Stelle berücksichtigen → drei Bits addieren.
x y c′ c(x, y, c′ ) s(x, y, c′ )
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1
I Je vier Minterme, vier Maxterme → DNF / KNF relativ groß
I s(x, y, c′ ) = x ⊕ y ⊕ c′
I Übertrag ist 1 ⇔ mindestens zwei Einsen
I c(x, y, c′ ) = (x ∧ y) ∨ (x ∧ c′ ) ∨ (y ∧ c′ )
28 / 32
Rechnerarchitektur
Volladdierer – Erster Entwurf

I Sieben Gatter, Tiefe ist drei

29 / 32
Rechnerarchitektur
Ad-hoc-Entwurf: Idee!
Rechne

(x ∧ y)∨(x ∧ c′ ) ∨ (y ∧ c′ )
= (x ∧ y)∨(c′ ∧ (x ∨ y))
= (x ∧ y)∨(c′ ∧ (¬x ∧ y))
∨(c′ ∧ (x ∧ ¬y))
∨(c′ ∧ (x ∧ y))
= (x ∧ y)∨(c′ ∧ (¬x ∧ y))
∨(c′ ∧ (x ∧ ¬y))
= (x ∧ y)∨(c′ ∧ (x ⊕ y))

Also: c(x, y, c′ ) = (x ∧ y) ∨ (c′ ∧ (x ⊕ y)).


Gut: x ⊕ y verwenden wir bereits für die Berechnung von s(x, y, c′ ).

30 / 32
Rechnerarchitektur

Volladdierer – Zweiter Entwurf

I Fünf Gatter, Tiefe ist drei

31 / 32
Rechnerarchitektur
Addieren nach der Schulmethode
I Addiere Bits von hinten nach vorne, beachte Überträge
I Eingabe seien die Zahlen xn−1 . . . x0 und yn−1 . . . y0 ,
Ausgabe sn sn−1 . . . s0

32 / 32
Informatik II
Wintersemester 2019/2020

Melanie Schmidt
Abteilung Informatik
Department Mathematik/Informatik

30. Oktober 2019

1 / 25
Rechnerarchitektur
Addieren nach der Schulmethode
I Addiere Bits von hinten nach vorne, beachte Überträge
I Eingabe seien die Zahlen xn−1 . . . x0 und yn−1 . . . y0 ,
Ausgabe sn sn−1 . . . s0

2 / 25
Rechnerarchitektur

Addieren nach der Schulmethode


Begriffe
I Größe: Anzahl der Bauteile
I Tiefe: Länge des längsten Wegs von einem Eingang zu einem
Ausgang

3 / 25
Rechnerarchitektur
Halbaddierer

x y c(x, y) s(x, y)
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0

s(x, y) = x ⊕ y, c(x, y) = x ∧ y

Größe 2, Tiefe 1
4 / 25
Rechnerarchitektur
Volladdierer
x y c′ c(x, y, c′ ) s(x, y, c′ )
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1
s(x, y, c ) = x ⊕ y ⊕ c und c(x, y, c′ ) = (x ∧ y) ∨ (c′ ∧ (x ⊕ y))
′ ′

Größe 5, Tiefe 3
5 / 25
Rechnerarchitektur
Addieren nach der Schulmethode
I Addiere Bits von hinten nach vorne, beachte Überträge
I Eingabe seien die Zahlen xn−1 . . . x0 und yn−1 . . . y0 ,
Ausgabe sn sn−1 . . . s0

I Größe 2 + 5(n − 1) = 5n − 3, Tiefe Ω(n)

6 / 25
Rechnerarchitektur

Nachteile des Schaltnetzes nach Schulmethode


I Tiefe Ω(n)
I Schaltnetze können Dinge parallel berechnen
I In diesem Entwurf muss der letzte Volladdierer darauf warten,
dass alle vorherigen Addierer fertig sind.
I → Schaltnetz ist langsam

7 / 25
Rechnerarchitektur

Carry-Look-Ahead Adder
I Beobachtung: Lange Schaltzeit aufgrund der Überträge
I Können wir die Überträge vorberechnen?
Ziel der nächsten Folien: Berechne den Übertrag ci , der bei der
Addition von xi−1 , yi−1 und ci−1 auftritt. Wir wollen aber nicht
c1 , . . . , cn nacheinander sondern möglichst parallel berechnen.

Nebenbemerkung: Bei der Addition zweier Binärzahlen tritt als


Übertrag immer nur 0 oder 1 auf, wir haben nicht mehrere
Überträge an einer Stelle. Sind xi = 1 und yi = 1 und ci = 1,
stellen wir uns vor, dass xi und yi einen neuen Übertrag erzeugen
und der Übertrag ci ‘verbleibt’.

8 / 25
Rechnerarchitektur
Carry-Look-Ahead Adder
Struktureinsicht
I (xi , yi ) = (1, 1) generiert einen Übertrag
I (xi , yi ) = (0, 0) eliminiert einen Übertrag
I (xi , yi ) = (1, 0) und (xi , yi ) = (0, 1) reicht weiter

Wir nutzen nun zunächst Halbaddierer, um herauszufinden, in


welchem Fall wir sind.

I Für alle i = 0, . . . , n − 1 leiten wir xi und yi in


einen Halbaddierer
I Seien vi und ui die beiden Bits, die der
Halbaddierer für xi und yi berechnet
I (Also vi = xi ⊕ yi und ui = xi ∧ yi )

9 / 25
Rechnerarchitektur
Carry-Look-Ahead Adder
I vi = 1 ⇔ Übertrag wird weitergeleitet
I ui = 1 ⇔ Übertrag wird generiert
Beobachtung: vi = 1 und ui = 1 treten nicht gleichzeitig auf.

xi yi vi ui Übertrag I c1 = u0 , Übertrag bei


0 0 0 0 eliminiert Addition von x0 und y0
0 1 1 0 weitergeleitet I c2 = u1 ∨ (u0 ∧ v1 ),
1 0 1 0 weitergeleitet
Übertrag bei Addition
1 1 0 1 generiert
von x1 , y1 und c0
I c3 = u2 ∨ (u1 ∧ v2 ) ∨ (u0 ∧ v1 ∧ v2 )
I c4 = u3 ∨ (u2 ∧ v3 ) ∨ (u1 ∧ v2 ∧ v3 ) ∨ (u0 ∧ v1 ∧ v2 ∧ v3 )
I ci = ui−1 ∨ (ui−2 ∧ vi−1 ) ∨ . . . ∨ (u0 ∧ v1 ∧ v2 ∧ . . . ∧ vi−1 )

10 / 25
Rechnerarchitektur
Carry-Look-Ahead Adder
I c1 = u0
I c2 = u1 ∨ (u0 ∧ v1 )
I c3 = u2 ∨ (u1 ∧ v2 ) ∨ (u0 ∧ v1 ∧ v2 )
I c4 = u3 ∨ (u2 ∧ v3 ) ∨ (u1 ∧ v2 ∧ v3 ) ∨ (u0 ∧ v1 ∧ v2 ∧ v3 )
I ci = ui−1 ∨ (ui−2 ∧ vi−1 ) ∨ . . . ∨ (u0 ∧ v1 ∧ v2 ∧ . . . ∧ vi−1 )

11 / 25
Rechnerarchitektur

Carry-Look-Ahead Adder

12 / 25
Rechnerarchitektur

Carry-Look-Ahead Adder

13 / 25
Rechnerarchitektur
Carry-Look-Ahead Adder
Eigenschaften des bisherigen Entwurfs
I Tiefe ist 4:
I 1. Stufe: Halbaddierer zur Berechnung von ui und vi
I 2.+3. Stufe: Vorberechnung der Übertragsbits ci
ci = ui−1 ∨ (ui−2 ∧ vi−1 ) ∨ . . . ∨ (u0 ∧ v1 ∧ v2 ∧ . . . ∧ vi−1 )
 

i−1 ∧
i−1
ci = uj ∧ vk 
j=0 k=j+1

I 4. Stufe: Berechnung von si = vi ⊕ ci


I Fan-In ist zu hoch.
I Für die Berechnung von ci müssen wir auf jeden Fall i − 1
Terme berechnen, wofür wir mindestens ein Bauteil
verwenden. Insgesamt benötigen wir also mindestens
0 + 1 + . . . + (n − 1) = n(n − 1)/2 Bauteile.
I Größe: Ω(n2 )
14 / 25
Rechnerarchitektur
Carry-Look-Ahead Adder
Fan-In reduzieren

.
..
...

Tiefe Ω(t), wenn t der originale Fan-in war.


15 / 25
Rechnerarchitektur

Carry-Look-Ahead Adder
Fan-In reduzieren: (fast) vollständige Binärbäume

Tiefe ist Θ(log t). Wir brauchen t − 1 Bauteile: Jedes Bauteil


reduziert die Anzahl der Leitungen um eins, am Ende ist eine
Leitung übrig.

16 / 25
Rechnerarchitektur

Carry-Look-Ahead Adder
Fazit für bisherigen CLA-Entwurf
Berechnung der Summe sn . . . s0 von xn−1 . . . x0 und yn−1 . . . y0 mit

I Fan-In 2,
I Tiefe Θ(log n),
I Größe Ω(n2 ).

17 / 25
Rechnerarchitektur

Tiefe
Kann man eigentlich mit weniger als log n Tiefe auskommen,
wenn der Fan-In auf 2 beschränkt ist?
I Überlegung: Jedes Eingabebit kann sn−1 und sn beeinflussen.
I Es müssen also alle Eingabebits im Schaltnetz mit sn−1
verbunden sein
I Betrachten wir kurz den Teilgraphen aller Wege, die zu sn−1
führen
I Das ist ein gerichteter Baum mit Senke sn−1 , in dem alle
Knoten einen Eingangsgrad von maximal 2 haben (also ein
Binärbaum).
I Dieser Baum hat Tiefe Ω(log n)

18 / 25
I Tiefe ist also bereits asymptotisch optimal
I Ziel nun: Größe reduzieren!

Bemerkung: Für die tatsächliche Umsetzung ist Θ(log n) eine zu


ungenaue Abschätzung. Die Konstante ist hier sehr relevant. Wir
werden uns aber im Rahmen dieser Vorlesung mit einer
asymptotischen Angabe begnügen.

19 / 25
Rechnerarchitektur

Idee zur Verbesserung


Definition
1. Seien u, u′ , v, v′ boolesche Variablen.
Wir definieren den Operator ◦ : B2 × B2 → B2 durch

(u, v) ◦ (u′ , v′ ) := (u ∨ (u′ ∧ v), v ∧ v′ ).

2. Seien (u0 , v0 ), (u1 , v1 ), . . ., (un−1 , vn−1 ) Paare boolescher


Variablen. Wir definieren
{
(u0 , v0 ) für i = 0,
(Ui , Vi ) :=
(ui , vi ) ◦ (Ui−1 , Vi−1 ) für 1 ≤ i ≤ n − 1.

20 / 25
Rechnerarchitektur

Idee zur Verbesserung


Definition
1. Seien u, u′ , v, v′ boolesche Variablen.
Wir definieren den Operator ◦ : B2 × B2 → B2 durch

(u, v) ◦ (u′ , v′ ) := (u ∨ (u′ ∧ v), v ∧ v′ ).

2. Seien (u0 , v0 ), (u1 , v1 ), . . ., (un−1 , vn−1 ) Paare boolescher


Variablen. Wir definieren
{
(u0 , v0 ) für i = 0,
(Ui , Vi ) :=
(ui , vi ) ◦ (Ui−1 , Vi−1 ) für 1 ≤ i ≤ n − 1.

21 / 25
Rechnerarchitektur

Idee für Verbesserung

Schaltnetz für ◦
u u′ v v′

3 Gatter
Tiefe 2

u + vu′ vv′

22 / 25
Rechnerarchitektur

Idee für Verbesserung


Lemma Für 1 ≤ i ≤ n gilt ci = Ui .
Beweis Induktion
i=1: c1 = u0 = U0
i > 1 : (Ui−1 , Vi−1 ) = (ui−1 , vi−1 ) ◦ (Ui−2 , Vi−2 )
= (ui−1 , vi−1 ) ◦ (ci−1 , Vi−2 )
= (ui−1 ∨ (vi−1 ∧ ci−1 ), vi−1 ∧ Vi−2 )
= (ci , vi−1 ∧ Vi−2 )

23 / 25
Rechnerarchitektur

Idee für Verbesserung


Lemma Die Operation ◦ ist assoziativ.
Beweis

[(u1 , v1 ) ◦ (u2 , v2 )] ◦ (u3 , v3 )


= (u1 ∨ (v1 ∧ u2 ), v1 ∧ v2 ) ◦ (u3 , v3 )
= ((u1 ∨ (v1 ∧ u2 )) ∨ (v1 ∧ v2 ∧ u3 ), v1 ∧ v2 ∧ v3 )
= (u1 ∨ (v1 ∧ (u2 ∨ (v2 ∧ u3 ))), v1 ∧ (v2 ∧ v3 ))
= (u1 , v1 ) ◦ (u2 ∨ (v2 ∧ u3 ), v2 ∧ v3 )
= (u1 , v1 ) ◦ [(u2 , v2 ) ◦ (u3 , v3 )]

24 / 25
Rechnerarchitektur

Idee für Verbesserung


Ziel: Schnelle parallele Berechnung der Ui

(Ui , Vi ) = (ui , vi ) ◦ (ui−1 , vi−1 ) ◦ · · · ◦ (u0 , v0 )

25 / 25
Informatik II
Wintersemester 2019/2020

Melanie Schmidt
Abteilung Informatik
Department Mathematik/Informatik

04. November 2019

1 / 24
Rechnerarchitektur
Carry-Look-Ahead Adder
I Schulmethode: Lange Schaltzeit aufgrund der Überträge
I Idee: Überträge vorberechnen
Übertrag ci tritt bei Addition von xi−1 , yi−1 und ci−1 auf.
Struktureinsicht
I (xi , yi ) = (1, 1) generiert einen Übertrag
I (xi , yi ) = (0, 0) eliminiert einen Übertrag
I (xi , yi ) = (1, 0) und (xi , yi ) = (0, 1) reicht weiter

I Für alle i = 0, . . . , n − 1 leiten wir xi und yi in


einen Halbaddierer
I Seien vi und ui die beiden Bits, die der
Halbaddierer für xi und yi berechnet
I (Also vi = xi ⊕ yi und ui = xi ∧ yi )
2 / 24
Rechnerarchitektur
Berechnung der Überträge
Schulmethode
I c1 = u0
I c2 = u1 ∨ (c1 ∧ v1 )
I c3 = u2 ∨ (c2 ∧ v2 )
I ci = ui−1 ∨ (ci−1 ∧ vi−1 )
Berechne c1 , dann c2 , dann c3 , …

Carry-Look-Ahead Adder
I c1 = u0
I c2 = u1 ∨ (u0 ∧ v1 )
I c3 = u2 ∨ (u1 ∧ v2 ) ∨ (u0 ∧ v1 ∧ v2 )
I c4 = u3 ∨ (u2 ∧ v3 ) ∨ (u1 ∧ v2 ∧ v3 ) ∨ (u0 ∧ v1 ∧ v2 ∧ v3 )
I ci = ui−1 ∨ (ui−2 ∧ vi−1 ) ∨ . . . ∨ (u0 ∧ v1 ∧ v2 ∧ . . . ∧ vi−1 )
3 / 24
Rechnerarchitektur
Carry-Look-Ahead Adder
I c1 = u0
I c2 = u1 ∨ (u0 ∧ v1 )
I c3 = u2 ∨ (u1 ∧ v2 ) ∨ (u0 ∧ v1 ∧ v2 )
I c4 = u3 ∨ (u2 ∧ v3 ) ∨ (u1 ∧ v2 ∧ v3 ) ∨ (u0 ∧ v1 ∧ v2 ∧ v3 )
I ci = ui−1 ∨ (ui−2 ∧ vi−1 ) ∨ . . . ∨ (u0 ∧ v1 ∧ v2 ∧ . . . ∧ vi−1 )

Jedes ci explizit darstellen und direkt aus u0 , v0 , . . . , ui−1 , vi−1


berechnen. Niedrige Tiefe, aber groß.
4 / 24
Rechnerarchitektur

Carry-Look-Ahead Adder
I Alle ci gleichzeitig berechnen (vier Stufen: Halbaddierer, zwei
Stufen für CLA, eine Stufe für abschließende Summenbildung)
I Fan-in reduzieren (vollständige Binärbäume)

Fazit für CLA-Entwurf letzte Woche


Berechnung der Summe sn . . . s0 von xn−1 . . . x0 und yn−1 . . . y0 mit

I Fan-In 2,
I Tiefe Θ(log n),
I Größe Ω(n2 ).

5 / 24
Rechnerarchitektur
Idee zur Verbesserung
Definition
1. Seien u, u′ , v, v′ boolesche Variablen.
Wir definieren den Operator ◦ : B2 × B2 → B2 durch

(u, v) ◦ (u′ , v′ ) := (u ∨ (u′ ∧ v), v ∧ v′ ).

2. Seien (u0 , v0 ), (u1 , v1 ), . . ., (un−1 , vn−1 ) Paare boolescher


Variablen. Wir definieren
{
(u0 , v0 ) für i = 0,
(Ui , Vi ) :=
(ui , vi ) ◦ (Ui−1 , Vi−1 ) für 1 ≤ i ≤ n − 1.

Erinnerung: ci = ui−1 ∨ (ci−1 ∧ vi−1 )

6 / 24
Lemma
I Für 1 ≤ i ≤ n gilt ci = Ui .
I Die Operation ◦ ist assoziativ.

Wir können uns aussuchen, wie wir

(Ui , Vi ) = (ui , vi ) ◦ (ui−1 , vi−1 ) ◦ · · · ◦ (u0 , v0 )

ausrechnen!

7 / 24
Rechnerarchitektur

Idee für Verbesserung


Ziel: Schnelle parallele Berechnung der Ui

(Ui , Vi ) = (ui , vi ) ◦ (ui−1 , vi−1 ) ◦ · · · ◦ (u0 , v0 )

Die Berechnungsreihenfolge ist aufgrund der Assoziativität beliebig.


Berechnung aller Teilterme
I Der Einfachheit halber schreiben wir ai = (ui , vi ).
I Gesucht: Für 1 ≤ i ≤ n alle Terme

πi := ai ◦ ai−1 ◦ · · · ◦ a0

I Im Folgenden sei n eine Zweierpotenz n = 2k .

8 / 24
Rechnerarchitektur
Algorithmus für Berechnung von ◦
Bevor wir fortfahren…
I Für nur an−1 ◦ . . . ◦ a0 brauchen wir nur einen vollständigen
Binärbaum als Berechnungsbaum.
I Das könnte als Algorithmus so aussehen:
I Ist n = 1, gib a0 zurück. Sonst:
I Berechne alle Paare
b0 = a1 ◦ a0 , b2 = a3 ◦ a2 , . . . , b 2n −1 = an−1 ◦ an−2
I Rufe den Algorithmus rekursiv für b n −1 , . . . , b0 auf und gib
2
das Ergebnis zurück.
I Als Schaltnetz:

9 / 24
Rechnerarchitektur
Algorithmus für Berechnung von ◦
I Das reicht aber nicht!
I Wir brauchen alle Teilterme

πi := ai ◦ ai−1 ◦ · · · ◦ a0

Hier werden Teilterme berechnet, aber nicht alle:


I a0 ◦ a1
I a0 ◦ a1 ◦ a2 ◦ a3
I a0 ◦ a1 ◦ a2 ◦ a3 ◦ a4 ◦ a5 ◦ a6 ◦ a7
10 / 24
Rechnerarchitektur
Algorithmus für Berechnung von ◦
Rekursiver Algorithmus (Ladner/Fischer)
Idee:
I Wenn n = 1, gib a0 zurück. Sonst:
I Berechne

b0 = a1 ◦ a0 , b1 = a3 ◦ a2 , ... , b 2n −1 = an−1 ◦ an−2


I Berechne rekursiv (mit Eingabe b0 , . . . , b n −1 ) die Menge von
2
Teiltermen
{ n }
T = π2i+1 := bi ◦ bi−1 ◦ . . . ◦ b0 | 0 ≤ i ≤ − 1 .
2
I Bilde die Menge
{ n }
T′ = π2(i+1) = a2(i+1) ◦ π2i+1 | 0 ≤ i ≤ − 2
2

I Gib {a0 } ∪ T ∪ T′ zurück.


11 / 24
Rechnerarchitektur

Algorithmus für Berechnung von ◦

12 / 24
Rechnerarchitektur
Algorithmus für Berechnung von ◦

13 / 24
Rechnerarchitektur
Algorithmus für Berechnung von ◦
Rekursiver Entwurf eines Schaltnetzes S(n)
I Wenn n = 1, leite a0 zu einem Output. Wenn n > 1:
I Berechne parallel

b0 = a1 ◦ a0 , b1 = a3 ◦ a2 , ... , b 2n −1 = an−1 ◦ an−2

I Verwende S( n2 ) mit Inputs b0 , b2 , . . . , b n zur Berechnung von


2

n
π2i+1 = bi ◦ bi−1 ◦ · · · ◦ b0 (0 ≤ i ≤ − 1)
2
I Berechne parallel
n
π2(i+1) = a2(i+1) ◦ π2i+1 (0 ≤ i ≤ − 2)
2
I Die Outputs sind a0 sowie alle berechneten π2i+1 und π2(i+1)
14 / 24
Rechnerarchitektur
Algorithmus für Berechnung von ◦

S(2)
a1 a0

a1 ◦ a0 a0

15 / 24
Rechnerarchitektur
Algorithmus für Berechnung von ◦
S(4)
a3 a2 a1 a0

• •

◦ ◦

S(2)

a3 ◦ a2 ◦ a1 ◦ a0 a2 ◦ a1 ◦ a0 a1 ◦ a0 a0
16 / 24
Rechnerarchitektur
Algorithmus für Berechnung von ◦
S(8)
a7 a6 a5 a4 a3 a2 a1 a0

• • • •

◦ ◦ ◦ ◦

S(4)

• • •

◦ ◦ ◦

a7 ◦ a6 ◦ · · · ◦ a0 … a1 ◦ a0 a0

17 / 24
Rechnerarchitektur

Algorithmus für Berechnung von ◦


Analyse
I Die Korrektheit von S(n) kann via Induktion bewiesen werden.
I Es werden nur ◦ -Bausteine benutzt.
I Sei C(n) die Anzahl der ◦ -Bausteine in S(n) und sei D(n)
die Tiefe von S(n), ebenfalls in ◦ -Bausteinen.

18 / 24
Rechnerarchitektur
Verbesserter CLA
Analyse
Es gilt D(2) = 1 ≤ 2 und

D(n) = D(n/2) + 2
= D(n/4) + 2 + 2
..
.

log n−1
=⇒ D(n) = 2
i=0
= 2 log n
= O(log n)

19 / 24
Rechnerarchitektur
Verbesserter CLA
Es gilt C(1) = 0 und
C(n) = C(n/2) + n/2 + n/2 − 1
= C(n/2) + n − 1
= C(n/4) + n/2 − 1 + n − 1
= C(n/8) + n/4 − 1 + n/2 − 1 + n − 1
..
.

log n−1
=⇒ C(n) = (n/2i − 1)
i=0


log n−1
= n 2−i − log n
i=0
= n(1 + 1/2 + 1/4 + . . . + 1/2log n−1 ) − log n
≤ 2n − log n
∈ O(n)
20 / 24
Rechnerarchitecktur

Verbesserter CLA

Induktionsbeweis
Behauptung: C(n) ≤ 2n − log n
I Induktionsanfang: C(2) = 1 < 2 · 2 − log2 2
I Induktionsschritt:
I.V.
C(n) = C(n/2) + n − 1 ≤ 2 · (n/2) − log(n/2) + n − 1 =
n − log n + log2 2 + n − 1 = 2n − log n.

21 / 24
Rechnerarchitektur

Verbesserter CLA
Satz Sei ◦ ein Baustein zur Realisierung von ◦. Für
x0 , x1 , . . . , xn−1 und y0 , y1 , . . . , yn−1 gibt es einen Schaltkreis
CARRY zur Vorberechnung aller Überträge c1 , . . . , cn mit
höchstens 2n ◦ -Bausteinen und höchstens 2 · log n ◦ -Tiefe.

22 / 24
Rechnerarchitektur
Anwendung auf den Addierer
xn−1 yn−1 xn−2 yn−2 x1 y1 x0 y0

HA HA … HA HA

CARRY
cn cn−1 cn−2 c1

sn+1 sn−1 sn−2 s1 s0

23 / 24
Rechnerarchitektur
Addierer
Satz Der Addierer auf der letzten Folie hat weniger als
9n Gatter der Form

Tiefe 4 · log n + 2
Beweis
HA hat 2 Gatter, Tiefe 1. 2n Gatter
◦ hat 3 Gatter, Tiefe 2.
⇒ CARRY hat höchstens 3 · 2n Gatter und
höchstens 2 · 2 log n Tiefe.
Finale Summenbildung benötigt weitere n − 1 Gatter.
24 / 24
Informatik II
Wintersemester 2019/2020

Melanie Schmidt
Abteilung Informatik
Department Mathematik/Informatik

06. November 2019

1 / 30
Rechnerarchitektur

Ad-Hoc-Entwurf von Schaltnetzen


I Multiplexer
I Addition
I Multiplikation

2 / 30
Rechnerarchitektur

Multiplikation

0000001101·0000010101
1101
13·21
0
13
1101
26
0
273
1101
00100010001

I Verschieben und Addieren


I Insgesamt n Additionen von Zahlen der Länge ≤ 2n bzw. n
(wenn die Eingabezahlen n Bits haben)

3 / 30
Rechnerarchitektur
Multiplikation
I Wir haben einen + -Baustein zur Verfügung, der Größe Θ(n)
und Tiefe Θ(log n) hat und aus Eingabe x = (xn−1 , . . . , x0 )
und y = (yn−1 , . . . , y0 ) die Summe s = (sn , . . . , s0 ) berechnet.
I Wir wollen die Summe von n Zahlen a1 , . . . , an berechnen.
I Hintereinanderschalten? Tiefe Θ(n · log n)!

4 / 30
Rechnerarchitektur
Multiplikation
I Verwende vollständigen Binärbaum!

I Größe: n − 1 + -Bausteine, Tiefe: Θ(log n) + -Bausteine


I Also: Größe Θ(n2 ), Tiefe Θ((log n)2 )
I Man muss für den vollständigen Entwurf noch genauer
spezifizieren, wie man an die ai kommt (Verschieben).
I Es ist möglich, die Tiefe auf Θ(log n) zu reduzieren,
das machen wir aber hier in der Vorlesung nicht.
5 / 30
Rechnerarchitektur

Optimierung von Schaltnetzen


Optimierung zielt darauf ab, bestmögliche Lösungen zu finden.
Einige Fragestellungen
Sei f : Bn → Bm eine boolesche Funktion.
I Finde einen Schaltkreis für f, dessen Größe so klein wie
möglich ist.
I Finde für ein vorgegebenes t einen Schaltkreis für f, der unter
allen Schaltkreisen mit Tiefe t, die f realisieren, minimale
Größe hat.

Disclaimer
Lösungen für obige Fragen werden wir nicht erhalten. Eine
tatsächliche Schaltnetzoptimierung ist eine sehr schwere Aufgabe.

6 / 30
Rechnerarchitektur
Optimierung von Schaltnetzen
Eine etwas einfachere Frage
Sei f : Bn → B eine boolesche Funktion. Finde einen Schaltkreis für
f, dessen Größe so klein wie möglich ist.
I Das ist bereits eine Einschränkung! Wir erinnern uns an den
Entwurf des Volladdierers:

I Wir konnten hier ein Bauteil sparen, weil wir in beiden


booleschen Ausdrücken (x ⊕ y) benutzt haben:
s(x, y, c′ ) = (x ⊕ y) ⊕ c′ und c(x, y, c′ ) = (x ∧ y) ∨ (c′ ∧ (x ⊕ y))
7 / 30
Rechnerarchitektur

Optimierung von Schaltnetzen


I Obige Frage ist immer noch sehr offen: Wir können uns viele
verschiedene Möglichkeiten vorstellen, boolesche Ausdrücke zu
bilden und diese dann in Schaltnetze umzuwandeln.
I Wir sehen uns eine spezielle Vorgehensweise an.

Erinnerung: DNF
Sei f : Bn → B eine boolesche Funktion. Die Darstellung von f als
Disjunktion der Minterme aller einschlägigen Indizes heißt
disjunktive Normalform (DNF).
I DNF im Allgemeinen sehr lang (z.B. Multiplexer)
I Kürzere Ausdrücke mit einer ähnlichen Struktur?

8 / 30
Rechnerarchitektur
Optimierung von Schaltnetzen
Sei fbsp : B3 → B gegeben durch

i x y z fbsp (x, y, z)
0 0 0 0 1
1 0 0 1 0
2 0 1 0 0
3 0 1 1 0
4 1 0 0 1
5 1 0 1 1
6 1 1 0 1
7 1 1 1 1

fbsp = (¬x∧¬y∧¬z)∨(x∧¬y∧¬z)∨(x∧¬y∧z)∨(x∧y∧¬z)∨(x∧y∧z)
fbsp = (¬x ∧ ¬y ∧ ¬z) ∨ x
fbsp = (¬y ∧ ¬z) ∨ x

9 / 30
Rechnerarchitektur

Optimierung von Schaltnetzen


Eine etwas zu einfache Fragestellung
Sei f : Bn → B eine boolesche Funktion. Finde eine Darstellung von
f als Disjunktion von Monomen (Polynom).

I Ein Literal ist eine Variable oder eine negierte Variable: x, ¬x


I Ein Monom ist eine Konjunktion von Literalen: x1 ∧ ¬x2 ∧ ¬x9
I Eine Disjunktion von Monomen nennen wir auch Polynom.

Ein Polynom für f ist zum Beispiel seine DNF.

10 / 30
Rechnerarchitektur
Optimierung von Schaltnetzen

Wir brauchen ein Kostenmaß, um Polynome zu bewerten.


I Die Kosten eines Monoms m ist die Anzahl der Literale in m.
I Die Kosten eines Polynoms ist die Summe der Kosten der im
Polynom enthaltenen Monome.
(x1 ∧ ¬x2 ∧ ¬x9 ) ∨ (x6 ) ∨ (x3 ∧ ¬x4 ∧ ¬x6 ∧ x8 ) hat also
Kosten 3 + 1 + 4 = 8.
I Ein Polynom mit minimalen Kosten heißt Minimalpolynom.

Unsere Fragestellung
Sei f : Bn → B eine boolesche Funktion.
Finde ein Minimalpolynom für f.
I (Auch diese Fragestellung ist nicht einfach.)

11 / 30
Rechnerarchitektur

Optimierung von Schaltnetzen


I Hat dieses Kostenmaß irgendetwas mit der tatsächlichen
Schaltkreisgröße zu tun?

12 / 30
Rechnerarchitektur

Optimierung von Schaltnetzen


I Hat dieses Kostenmaß irgendetwas mit der tatsächlichen
Schaltkreisgröße zu tun?
I Ja, mit Einschränkungen:
I Negationen werden gar nicht eingerechnet (nicht so schlimm,
jede Variable muss nur maximal einmal negiert werden).
I Abgesehen von Negationen entsprechen die Kosten der Anzahl
der Gatter plus 1:
I Um die Konjunktion eines Monoms mit nℓ Literalen zu bilden,
benötigt man nℓ − 1 Gatter mit Fan-in 2.
I Pro Monom wird also ein Gatter zu viel gezählt; bei nm
Monomen entstehen also zusätzliche Kosten von nm .
I Um die Disjunktion von nm Monomen zu bilden, benötigt man
nm − 1 Gatter.
I Unsere Kosten sind also genau eins höher als die Anzahl der
∨/∧-Gatter.

13 / 30
Rechnerarchitektur
Optimierung von Schaltnetzen
Minimalpolynome
I Darstellung von f : Bn → B als Polynom,
d.h. Disjunktion von Monomen.
I Irgendwelche Monome?
I Wir brauchen solche Monome, die f implizieren.
I Ein Monom m impliziert f, wenn aus m(b) = 1 für b ∈ Bn
auch f(b) = 1 folgt. Wir nennen ein solches Monom Implikant
von f.
I Minterme einschlägiger Indizes sind Implikanten:
Der Minterm zu Zeile i ist genau dann wahr, wenn b der durch
die Binärdarstellung von i gegebenen Variablenbelegung
entspricht. Ist der Minterm also wahr, befinden wir uns in
Zeile i, und da diese Zeile einschlägig ist, folgt daraus, dass
f(b) = 1 gilt.
14 / 30
Rechnerarchitektur
Optimierung von Schaltnetzen
Es gibt aber eventuell auch deutlich kürzere Implikanten.

x y z fite (x, y, z) Minterm-Implikanten


0 0 0 0
0 0 1 1 ¬x ∧ ¬y ∧ z
0 1 0 0
0 1 1 1 ¬x ∧ y ∧ z
1 0 0 0
1 0 1 0
1 1 0 1 x ∧ y ∧ ¬z
1 1 1 1 x∧y∧z

Beobachtung: Wenn x ∧ y = 1, dann ist fite immer wahr. Also ist


x ∧ y auch ein Implikant von f.

15 / 30
I Im obigen Beispiel sind x ∧ y ∧ ¬z und x ∧ y ∧ z Implikanten,
und x ∧ y auch. x ∧ y ist eine Verkürzung der ersten beiden.
I Wenn wir x ∧ y in unserer Darstellung haben, sind die anderen
beiden Implikanten überflüssig.

Primimplikanten
Wir nennen einen Implikanten m von f einen Primimplikanten,
wenn keine echte Verkürzung von m ebenfalls ein Implikant ist.
I I(f) bezeichnet die Menge aller Implikanten von f
I PI(f) bezeichnet die Menge aller Primimplikanten von f

16 / 30
Rechnerarchitektur
Optimierung von Schaltnetzen
x y z fite (x, y, z) Minterm-Implikanten
0 0 0 0
0 0 1 1 ¬x ∧ ¬y ∧ z
0 1 0 0
0 1 1 1 ¬x ∧ y ∧ z
1 0 0 0
1 0 1 0
1 1 0 1 x ∧ y ∧ ¬z
1 1 1 1 x∧y∧z
Primimplikanten: x ∧ y, y ∧ z, ¬x ∧ z
(¬x ∧ z) ∈ PI(f), da weder ¬x noch z Implikanten von f sind.
Beispielsweise gilt:
¬x(0, 0, 0) = 1, aber f(0, 0, 0) = 0 und
z(1, 0, 1) = 1, aber f(1, 0, 1) = 0.
17 / 30
Satz
Minimalpolynome für eine boolesche Funktion f enthalten nur
Primimplikanten von f.

Beweis
I Erinnerung: Verschmelzungsgesetz besagt x ∨ (x ∧ y) = x
=⇒ Sind m1 , m2 ∈ I(f) und m1 eine Verkürzung von m2 ,
d.h. m2 = m1 ∧ m3 , so gilt m1 ∨ m2 = m1 ∨ (m1 ∧ m3 ) = m1 .
=⇒ Zu jedem Polynom, das einen Implikanten enthält, der nicht
Primimplikant ist, existiert ein anderes Polynom mit
geringeren Kosten.

18 / 30
Rechnerarchitektur

Optimierung von Schaltnetzen

x y z fite (x, y, z) Minterm-Implikanten


0 0 0 0
0 0 1 1 ¬x ∧ ¬y ∧ z
0 1 0 0
0 1 1 1 ¬x ∧ y ∧ z
1 0 0 0
1 0 1 0
1 1 0 1 x ∧ y ∧ ¬z
1 1 1 1 x∧y∧z

Primimplikanten: x ∧ y, y ∧ z, ¬x ∧ z
Minimalpolynom: (x ∧ y) ∨ (¬x ∧ z)

19 / 30
Rechnerarchitektur

Primimplikanten und Minimalpolynome finden

Grundsätzliche Vorgehensweise
1. Berechnung der Primimplikantenmenge PI(f)
2. Bestimmung des Minimalpolynoms durch optimale Auswahl
von Primimplikanten

Wir besprechen zwei Varianten


I KV-Diagramme: Grafisches Verfahren für kleine boolesche
Funktionen bis zu f : B4 → B
I Algorithmus von Quine/McCluskey

20 / 30
Rechnerarchitektur
KV-Diagramme
I Unabhängig entwickelt von Maurice Karnaugh und Edward W.
Veitch
I Struktur der Funktion in 4x4-Matrix erkennen.
wx
yz 00 01 11 10
00

01

11

10

I Jede Zelle entspricht einer Variablenbelegung. Wir tragen dort


den Funktionswert ein.
21 / 30
Rechnerarchitektur

KV-Diagramme
I Für f : B3 → B verwendet man eine etwas kleinere Matrix:
xy
z 00 01 11 10
0

I Auch hier die Funktionswerte eintragen.

22 / 30
Rechnerarchitektur

KV-Diagramme
Wie sieht ein Monom in dieser Matrix aus?
I Minterm: Beschreibt genau eine Zelle
I Kürzere Monome entsprechen Rechtecken, deren Höhe und
Breite Zweierpotenzen sind!

xy
z 00 01 11 10
0

I ¬x ∧ ¬y ∧ ¬z, ¬x ∧ z, x ∧ ¬y, y

23 / 30
Rechnerarchitektur
KV-Diagramme
Wie sieht ein Monom in dieser Matrix aus?
I Minterm: Beschreibt genau eine Zelle
I Kürzere Monome entsprechen Rechtecken, deren Höhe und
Breite Zweierpotenzen sind!
wx
yz 00 01 11 10
00

01

11

10

I ¬w ∧ ¬x ∧ y ∧ ¬z, ¬w ∧ ¬x ∧ z, ¬w ∧ x, w
24 / 30
Rechnerarchitektur
KV-Diagramme
Wie sieht ein Monom in dieser Matrix aus?
I Rechtecke können auch ‘über den Rand’ verlaufen.

wx
yz 00 01 11 10
00

01

11

10

I ¬x ∧ y
25 / 30
Rechnerarchitektur

KV-Diagramme
Wie finden wir in diese Matrizen Primimplikanten?
Ein Rechteck entspricht einem Primimplikanten, wenn …
I es nur Einsen enthält,
I Höhe und Breite eine Zweierpotenz sind, und
I es nicht in einem größeren Rechteck dieser Art enthalten ist.

Erinnerung: Vorgehensweise
1. Berechnung der Primimplikantenmenge PI(f)
2. Bestimmung des Minimalpolynoms durch optimale Auswahl
von Primimplikanten

26 / 30
Rechnerarchitektur

Optimierung von Schaltnetzen


Beispiel KV-Diagramm für fite
x y z fite (x, y, z)
0 0 0 0
xy
0 0 1 1 z 00 01 11 10
0 1 0 0
0 1 1 1 0 0 0 1 0
1 0 0 0
1 0 1 0 1 1 1 1 0
1 1 0 1
1 1 1 1

Wir lesen ab: PI(f) = {x ∧ y, y ∧ z, ¬x ∧ z},


Minimalpolynom: (x ∧ y) ∨ (¬x ∧ z)

27 / 30
Rechnerarchitektur
Optimierung von Schaltnetzen
Beispiel
w x y z fqmc (w, x, y, z) wx
0 0 0 0 0
yz 00 01 11 10
0 0 0 1 0
0 0 1 0 1
0 0 1 1 1 00 0 1 0 0
0 1 0 0 1
0 1 0 1 1
0 1 1 0 0
0 1 1 1 1 01 0 1 0 0
1 0 0 0 0
1 0 0 1 0
1
1
0
0
1
1
0
1
1
1
11 1 1 1 1
1 1 0 0 0
1 1 0 1 0
1 1 1 0 1 10 1 0 1 1
1 1 1 1 1

PI(fqmc ) = {¬w ∧ x¬y, ¬w ∧ x ∧ z, w ∧ y, y ∧ z, ¬x ∧ y}


Minimalpolynom: (¬w ∧ x ∧ ¬y) ∨ (w ∧ y) ∨ (y ∧ z) ∨ (¬x ∧ y)

28 / 30
Rechnerarchitektur
Optimierung von Schaltnetzen
Definition
1. Eine partiell definierte Boolesche Funktion ist eine Funktion

f : Bn → {0, 1, ∗},

„∗“ steht für „gleichgültig“.


2. Ein Polynom p stellt eine partiell definierte Boolesche
Funktion dar, wenn für alle a ∈ Bn mit f(a) ̸= ∗ gilt

p(a) = f(a).

Die von p dargestellte Funktion g : Bn → B heißt


Erweiterung von f. Ein Minimalpolynom für f ist ein
billigstes unter allen Polynomen, die f darstellen.

29 / 30
Rechnerarchitektur
Optimierung von Schaltnetzen
Minimierung für partielle Boolesche Funktionen
Beispiel f : {0, 1,
{ 2, . . ., 9} → {0, 1}
1 falls n ∈ {1, 4, 9}
f(n) =
0 sonst
Wir benötigen 4 Bits zur Kodierung von 0, 1, . . . , 9.
KV-Diagramm für kanonische Kodierung
wx
yz 00 01 11 10
00 0 1 ∗ 0

01 1 0 ∗ 1

11 0 0 ∗ ∗

10 0 0 ∗ ∗

Minimalpolynom: (¬x ∧ ¬y ∧ z) ∨ (x ∧ ¬y ∧ ¬z)


30 / 30
Informatik II
Wintersemester 2019/2020

Melanie Schmidt
Abteilung Informatik
Department Mathematik/Informatik

13. November 2019

1 / 19
Rechnerarchitektur

Optimierung

I Ein Literal ist eine Variable oder eine negierte Variable: x, ¬x


I Ein Monom ist eine Konjunktion von Literalen: x1 ∧ ¬x2 ∧ ¬x9
I Eine Disjunktion von Monomen nennen wir auch Polynom.
I Die Kosten eines Monoms m sind gleich der Anzahl der
Literale in m.
I Die Kosten eines Polynoms sind gleich der Summe der Kosten
der im Polynom enthaltenen Monome.

Fragestellung
Sei f : Bn → B eine boolesche Funktion. Finde ein Minimalpolynom
für f, d.h. ein Polynom mit minimalen Kosten.

2 / 19
Rechnerarchitektur

Optimierung

Grundsätzliche Vorgehensweise
1. Berechnung der Primimplikantenmenge PI(f)
2. Bestimmung des Minimalpolynoms durch optimale Auswahl
von Primimplikanten

I Letztes Mal: KV-Diagramme


I Heute: Algorithmus von Quine und McCluskey

3 / 19
Rechnerarchitektur

Optimierung von Schaltnetzen


Der Algorithmus von Quine und McCluskey
I Starte mit der DNF, d.h. mit der Implikantenmenge

Qn = {mb (x) | b ∈ f−1 (1)}

mit den Implikanten der Länge (Kosten) n.


I Berechne (nacheinander) für k = n − 1, n − 1, . . .:
Qk : Menge aller Implikanten der Länge k
Pk : Menge aller Primimplikanten der Länge k

4 / 19
Rechnerarchitektur
Optimierung von Schaltnetzen
Lemma Sei m ein Monom, das weder xj noch xj enthält. Dann gilt
m ∈ I(f) ⇐⇒ (m ∧ xj ) ∈ I(f) und (m ∧ xj ) ∈ I(f).
Beweis
I Sei m ∈ I(f), b ∈ Bn . (m ∧ xj )(b) = 1 =⇒ m(b) = 1 =⇒ f(b) = 1
Also ist (m ∧ xj ) ∈ I(f). Analog: (m ∧ ¬xj ) ∈ I(f)
I Seien (m ∧ xj ), (m ∧ ¬xj ) ∈ I(f).
m(b) = 1 =⇒ (m ∧ xj )(b) = 1 oder (m ∧ ¬xj )(b) = 1 =⇒ f(b) = 1
Also gilt m ∈ I(f).

Folgerungen
I m ∈ Qk−1 ⇐⇒ (∃ xj ) (m ∧ xj ), (m ∧ ¬xj ) ∈ Qk
I m ∈ Pk ⇐⇒ m ∈ Qk und es existiert keine Verkürzung von m in Qk−1
I Qk = ∅ =⇒ Q1 = Q2 = · · · = Qk−1 = P1 = P2 = · · · = Pk = ∅

5 / 19
Rechnerarchitektur

Optimierung von Schaltnetzen


Quine / McCluskey Algorithmus
I Input: Funktionstabelle (b, f(b)) für f : Bn −→ B.
I Output: Die Menge der Primimplikanten PI(f).
I Pseudocode:
1. Qn ← {mb (x) | b ∈ f−1 (1)}
2. i←n
3. while Qi ̸= ∅ do
4. i←i−1
5. Qi ← {m | (∃ j) xj , ¬xj ̸∈ m und (m ∧ xj ), (m ∧ ¬xj ) ∈ Qi+1 }
6. Pi+1 ← {m ∈ Qi+1 | Qi enthält keine Verkürzung von m}
7. end while
8. PI(f) ← Pn ∪ Pn−1 ∪ · · · ∪ Pi+1

6 / 19
Rechnerarchitektur

Optimierung von Schaltnetzen


Berechnung von Qi aus Qi+1
I 1. Möglichkeit:
Teste alle Paare (m′ , m′′ ) ∈ Q2i+1 . Falls m′ = m ∧ xj und
(|Qi+1 |)
m′′ = m ∧ xj , so füge m zu Qi hinzu. −→ 2 solche Paare
I Verbesserung:
∪i+1
Zerlege Qi+1 = ℓ=0 Qi+1,ℓ mit

Qi+1,ℓ := {m ∈ Qi+1 | m enthält genau ℓ negierte Literale}

Teste für jedes der ℓ negierten Literale xj in m′ ∈ Qi+1,ℓ , ob


mj , das durch Ersetzen von xj durch xj in m′ entsteht, in
Qi+1,ℓ−1 ist.

7 / 19
Rechnerarchitektur

Optimierung von Schaltnetzen


Beispiel Gegeben sei die Boolesche Funktion fqmc : B4 → B
durch ihre Funktionstabelle. Die Menge
Q4 := {mb (x) | b ∈ f−1 (1)}, aufgeteilt in die Mengen Q4,ℓ
(ℓ ∈ {0, . . ., 4}) sei gegeben durch:

Q4 : Q4,4 = ∅
Q4,3 = {¬w ∧ ¬x ∧ y ∧ ¬z, ¬w ∧ x ∧ ¬y ∧ ¬z}
Q4,2 = {¬w ∧ ¬x ∧ y ∧ z, w ∧ ¬x ∧ y ∧ ¬z, ¬w ∧ x ∧ ¬y ∧ z}
Q4,1 = {¬w ∧ x ∧ y ∧ z, w ∧ ¬x ∧ y ∧ z, w ∧ x ∧ y ∧ ¬z}
Q4,0 = {w ∧ x ∧ y ∧ z}

8 / 19
Rechnerarchitektur
Optimierung von Schaltnetzen
Die vom Quine/McCluskey-Algorithmus berechneten Mengen
sehen dann folgendermaßen aus:
Q3 : Q3,3 = ∅
Q3,2 = {¬w ∧ ¬x ∧ y, ¬w ∧ x ∧ ¬y, ¬x ∧ y ∧ ¬z}
Q3,1 = {¬w ∧ x ∧ z, ¬w ∧ y ∧ z, w ∧ ¬x ∧ y, w ∧ y ∧ ¬z,
¬x ∧ y ∧ z}
Q3,0 = {w ∧ x ∧ y, w ∧ y ∧ z, x ∧ y ∧ z}
P4 = ∅
Q2 : Q2,2 = ∅
Q2,1 = {¬x ∧ y}
Q2,0 = {y ∧ z, w ∧ y}
P3 = {¬w ∧ x ∧ ¬y, ¬w ∧ x ∧ z}
Q1 = ∅
P2 = Q2 = {¬x ∧ y, y ∧ z, w ∧ y}
9 / 19
Rechnerarchitektur

Menge der Primimplikanten:


PI(f) = {¬w ∧ x ∧ ¬y, ¬w ∧ x ∧ z, ¬x ∧ y, y ∧ z, w ∧ y}

10 / 19
Rechnerarchitektur

Optimierung von Schaltnetzen


Satz Der Quine/McCluskey Algorithmus berechnet aus der
Funktionstabelle (b, f(b)) (b ∈ {0, 1}n ) einer Booleschen Funktion
f : Bn → B die Menge PI(f).
Die Eingabelänge beträgt N = 2n und die Ausgabelänge

O(3n ) = O(Nlog2 3 )

Der Algorithmus lässt sich so organisieren, dass seine Laufzeit

O(3n n2 ) = O(Nlog2 3 · log22 N)

beträgt.

11 / 19
Rechnerarchitektur
Optimierung von Schaltnetzen
( )
Beweis Es gibt ni · 2i Monome mit genau i Literalen. Daher gibt
es insgesamt
∑n ( ) ∑ n ( )
n i n i
·2 = 2 −1
i i
i=1 i=0
∑ n ( )
n i n−i
= 2 ·1 −1
i
i=0
= (2 + 1)n − 1
= 3n − 1 < 3n

viele verschiedene Monome über n Variablen.


(Alternativer Beweis: Für jede der n Variablen gibt es drei
Möglichkeiten: im Monom, nicht im Monom, und negiert im
Monom enthalten. Alle nicht kann nicht sein, also ≤ 3n − 1.)
Implementierung und Laufzeitanalyse mit Techniken aus Info I.
12 / 19
Rechnerarchitektur

Grundsätzliche Vorgehensweise
1. Berechnung der Primimplikantenmenge PI(f)
2. Bestimmung des Minimalpolynoms durch optimale Auswahl
von Primimplikanten

13 / 19
Rechnerarchitektur
Optimierung von Schaltnetzen
Berechnung eines Minimalpolynoms aus der Menge der
Primimplikanten
I f : Bn → B f−1 (1) = {b(1), b(2), . . ., b(s)}
DNF p = mb(1) (x) + mb(2) (x) + · · · + mb(s) (x)
Primimplikanten PI(f) = {m∗1 , m∗2 , . . ., m∗k }
I Definition Die Primimplikantentafel (PI-Tafel) von f ist
eine (k × s)-Matrix mit Einträgen aus {0, 1}, deren i-te Zeile
zum Primimplikanten m∗i und deren j-te Spalte zum Minterm
mb(j) (x) korrespondiert, wobei der Matrixeintrag an der Stelle
(i, j) gleich m∗i (b(j)) ist (1 ≤ i ≤ k, 1 ≤ j ≤ s).
I Sprechweise für m∗i (b(j)) = 1: „m∗i überdeckt den Minterm
mb(j) (x)“ bzw. „m∗i überdeckt b(j)“.
D.h. p′ = m∗i1 ∨ m∗i2 ∨ · · · ∨ m∗ir stellt f genau dann dar, wenn
jedes b(j) ∈ f−1 (1) von mindestens einem m∗iℓ (1 ≤ ℓ ≤ r) aus
p′ überdeckt wird. („p′ überdeckt f.“)
I Minimalpolynom für f: f überdeckende Menge von
Primimplikanten mit minimalen Kosten. 14 / 19
Rechnerarchitektur

Optimierung von Schaltnetzen


Beispiel PI-Tafel für fqmc : B4 → B
f−1 (1) b(1) b(2) b(3) b(4) b(5) b(6) b(7) b(8) b(9)
PI(fqmc ) 0010 0011 0100 0101 0111 1010 1011 1110 1111
¬w ∧ x ∧ ¬y 0 0 1 1 0 0 0 0 0
¬w ∧ x ∧ z 0 0 0 1 1 0 0 0 0
¬x ∧ y 1 1 0 0 0 1 1 0 0
y∧z 0 1 0 0 1 0 1 0 1
w∧y 0 0 0 0 0 1 1 1 1

15 / 19
Rechnerarchitektur

Kernimplikanten
Wird ein Minterm nur von einem Primimplikanten überdeckt, so
muss dieser Primimplikant Teil des Minimalpolynoms sein.
Solche Primimplikanten nennen wir Kernimplikanten.

Beobachtung
Kernimplikanten müssen ausgewählt werden. Entsprechende Zeile
kann aus PI-Tafel entfernt werden, ebenso alle Spalten zu
Mintermen, die dann bereits überdeckt sind.

16 / 19
Rechnerarchitektur
Optimierung von Schaltnetzen
Beispiel fqmc
Wir betrachten nochmals die im Beispiel angegebene PI-Tafel. Wir
machen zunächst die folgenden Beobachtungen:
I ¬x ∧ y ist Kernimplikant, da nur er b(1) = 0010 überdeckt.
I ¬w ∧ x ∧ ¬y ist Kernimplikant, da nur er b(3) = 0100
überdeckt.
I w ∧ y ist Kernimplikant, da nur er b(8) = 1110 überdeckt.
Wir erhalten dann die reduzierte PI-Tafel:
PI(f)\f−1 (1) 0111 = b(5)
¬w ∧ x ∧ z 1
y∧z 1
Der Primimplikant y ∧ z bildet offensichtlich eine minimale
Überdeckung der reduzierten PI-Tafel. Daher ist
p = (¬x ∧ y) ∨ (¬wx ∧ ¬y) ∨ (w ∧ y) ∨ (y ∧ z) das eindeutige
Minimalpolynom für f.
17 / 19
Mitabgedeckte Minterme
I Seien m und m′ zwei Minterme
I Wenn jeder Primimplikant, der m überdeckt, auch m′
überdeckt, dann brauchen wir m′ nicht extra beachten.

Beobachtung
Mitabgedeckte Minterme müssen wir nicht beachten. Wir können
die entsprechende Spalte einfach streichen.

18 / 19
Verletzung der Primimplikanteneigenschaft
I Seien m∗1 und m∗2 zwei Primimplikanten, wobei m∗1 mindestens
so viel kostet wie m∗2 .
I Wenn jeder Minterm, der von m∗1 überdeckt wird, auch von
m∗2 überdeckt wird, dann ist es in keinem Minimalpolynom
nötig, m∗1 zu verwenden.
I Das kann erstmal gar nicht auftreten aufgrund der
Primimplikanteneigenschaft.
I Hat man jedoch bereits einige Spalten und Zeilen gelöscht, so
kann dies eintreten.

Beobachtung
Ist ein Primimplikant m∗1 nicht günstiger als ein anderer, welcher
mindestens dieselben Minterme überdeckt, so können wir die zu
m∗1 gehörige Zeile löschen.

19 / 19
Informatik II
Wintersemester 2019/2020

Melanie Schmidt
Abteilung Informatik
Department Mathematik/Informatik

18. November 2019

1 / 30
Rechnerarchitektur

Optimierung von Schaltnetzen

Grundsätzliche Vorgehensweise
1. Berechnung der Primimplikantenmenge PI(f)
2. Bestimmung des Minimalpolynoms durch optimale Auswahl
von Primimplikanten

I Vorletztes Mal: KV-Diagramme


I Letztes Mal: Algorithmus von Quine und McCluskey

2 / 30
Rechnerarchitektur
Optimierung von Schaltnetzen
Berechnung eines Minimalpolynoms aus der Menge der
Primimplikanten
I f : Bn → B f−1 (1) = {b(1), b(2), . . ., b(s)}
DNF p = mb(1) (x) + mb(2) (x) + · · · + mb(s) (x)
Primimplikanten PI(f) = {m∗1 , m∗2 , . . ., m∗k }
I Definition Die Primimplikantentafel (PI-Tafel) von f ist
eine (k × s)-Matrix mit Einträgen aus {0, 1}, deren i-te Zeile
zum Primimplikanten m∗i und deren j-te Spalte zum Minterm
mb(j) (x) korrespondiert, wobei der Matrixeintrag an der Stelle
(i, j) gleich m∗i (b(j)) ist (1 ≤ i ≤ k, 1 ≤ j ≤ s).
I Sprechweise für m∗i (b(j)) = 1: „m∗i überdeckt den Minterm
mb(j) (x)“ bzw. „m∗i überdeckt b(j)“.
D.h. p′ = m∗i1 ∨ m∗i2 ∨ · · · ∨ m∗ir stellt f genau dann dar, wenn
jedes b(j) ∈ f−1 (1) von mindestens einem m∗iℓ (1 ≤ ℓ ≤ r) aus
p′ überdeckt wird. („p′ überdeckt f.“)
I Minimalpolynom für f: f überdeckende Menge von
Primimplikanten mit minimalen Kosten. 3 / 30
Rechnerarchitektur
Optimierung von Schaltnetzen
Beispiel
w x y z fqmc (w, x, y, z) wx
0 0 0 0 0
yz 00 01 11 10
0 0 0 1 0
0 0 1 0 1
0 0 1 1 1 00 0 1 0 0
0 1 0 0 1
0 1 0 1 1
0 1 1 0 0
0 1 1 1 1 01 0 1 0 0
1 0 0 0 0
1 0 0 1 0
1
1
0
0
1
1
0
1
1
1
11 1 1 1 1
1 1 0 0 0
1 1 0 1 0
1 1 1 0 1 10 1 0 1 1
1 1 1 1 1

PI(fqmc ) = {¬w ∧ x¬y, ¬w ∧ x ∧ z, w ∧ y, y ∧ z, ¬x ∧ y}


Minimalpolynom: (¬w ∧ x ∧ ¬y) ∨ (w ∧ y) ∨ (y ∧ z) ∨ (¬x ∧ y)

4 / 30
Rechnerarchitektur

Optimierung von Schaltnetzen


Beispiel PI-Tafel für fqmc : B4 → B
f−1 (1) b(1) b(2) b(3) b(4) b(5) b(6) b(7) b(8) b(9)
PI(fqmc ) 0010 0011 0100 0101 0111 1010 1011 1110 1111
¬w ∧ x ∧ ¬y 0 0 1 1 0 0 0 0 0
¬w ∧ x ∧ z 0 0 0 1 1 0 0 0 0
¬x ∧ y 1 1 0 0 0 1 1 0 0
y∧z 0 1 0 0 1 0 1 0 1
w∧y 0 0 0 0 0 1 1 1 1

5 / 30
Rechnerarchitektur

Vereinfachung der PI-Tafel durch Reduktion:


1. Enthält Spalte j nur in Zeile i eine 1, so streiche Zeile i und
alle Spalten, die in Zeile i eine 1 haben, aus der PI-Tafel.
(Kernimplikant gefunden)
2. Ist Spalte j′ nirgendwo kleiner als Spalte j, so streiche Spalte j′
aus der PI-Tafel. (Minterm wird immer mitüberdeckt)
3. Ist Zeile i′ nirgendwo größer als Zeile i und Kosten (m∗i′ ) ≥
Kosten (m∗i ), so streiche Zeile i′ aus der PI-Tafel.
(Verletzung der Primimplikanteneigenschaft)

6 / 30
Rechnerarchitektur
Optimierung von Schaltnetzen
Lemma Die Regeln sind korrekt.
Beweis:
1. Der Primimplikant m∗i gehört zu jedem Minimalpolynom
von f. Wir müssen uns nur noch um die nicht überdeckten
Minterme kümmern.
2. Jeder Primimplikant, der b(j) überdeckt, überdeckt auch b(j′ ).
3. Primimplikant m∗i überdeckt eine Obermenge von Mintermen
mit höchstens so viel Kosten.
Definition
1. Die aus der PI-Tafel einer Funktion durch erschöpfende
Anwendung der drei Reduktionsregeln entstehende Matrix
heißt reduzierte PI-Tafel.

7 / 30
Rechnerarchitektur
Zusammenfassung des 2. Teils
I Stelle Primimplikantentafel auf.
I Wende die obigen Regeln an, bis dies nicht mehr möglich ist.
I Und dann?
wx
yz 00 01 11 10
00 0 0 0 0

01 1 1 1 0

11 1 0 1 0

10 1 1 1 0

8 / 30
f−1 (1) b(1) b(2) b(3) b(4) b(5) b(6) b(7) b(8)
PI(fqmc ) 0001 0011 0010 0110 1110 1111 1101 0101
¬w ∧ ¬x ∧ z 1 1 0 0 0 0 0 0
¬w ∧ ¬x ∧ y 0 1 1 0 0 0 0 0
¬w ∧ y ∧ ¬z 0 0 1 1 0 0 0 0
x ∧ y ∧ ¬z 0 0 0 1 1 0 0 0
w∧x∧y 0 0 0 0 1 1 0 0
w∧x∧z 0 0 0 0 0 1 1 0
x ∧ ¬y ∧ z 0 0 0 0 0 0 1 1
¬w ∧ ¬y ∧ z 1 0 0 0 0 0 0 1

9 / 30
Rechnerarchitektur

Bemerkung
Das Finden einer kostengünstigsten Auswahl ist NP-schwer. Was
das bedeutet, lernen wir später in dieser Vorlesung noch kennen.

Insbesondere ist kein polynomieller Algorithmus bekannt, der


immer eine optimale Lösung findet.

10 / 30
Rechnerarchitektur

Sind keine Regeln mehr anwendbar, gibt es zwei Möglichkeiten, um


aus den k Primimplikanten auszuwählen, so dass die s Minterme
überdeckt werden:
1. Algorithmen mit exponentieller Worst-Case-Laufzeit
Hier nehmen wir in Kauf, dass die Laufzeit nicht mehr polynomiell
in der Eingabelänge ist.
I Naive Variante:
I Alle 2k − 1 Möglichkeiten aufzählen, wie aus k
Primimplikanten ein Polynom gebildet werden kann.
I Für jede Möglichkeit überprüfen, ob alle Minterme überdeckt
werden; wenn ja, ist es ein gültiges Polynom.
I Ein günstigstes gültiges Polynom speichern und am Ende
ausgeben.

11 / 30
Rechnerarchitektur

Algorithmen mit exponentieller Worst-Case-Laufzeit


I Verbesserung:
I Viele der aufgezählten Möglichkeiten sind ”offensichtlich” nicht
das gesuchte Minimalpolynom:
I Ist zum Beispiel ein Primimplikant teurer als das günstigste
bisher gefundene Polynom, so macht es sicher keinen Sinn,
Polynome aufzuzählen, in denen dieser Implikant enthalten ist.
I Dies macht man sich zu Nutze, indem man versucht, die
Polynome in geschickter Reihenfolge aufzuzählen und dabei
möglichst häufig zu entdecken, dass ganze Mengen von
Polynomen ausgelassen werden können.
I Dieses Vorgehen findet man in Backtrackingverfahren.

12 / 30
Rechnerarchitektur

Nicht-exakte Verfahren
Hier nehmen wir in Kauf, dass wir nicht mehr gesichert optimale
Lösungen finden.
I Naives Verfahren: Heuristisch einen Primimplikanten
auswählen und hoffen, dass das eine gute Idee war.
I Besser:
I Einen Approximationsalgorithmus verwenden.
I Ein α-Approximationsalgorithmus für ein Minimierungsproblem
findet immer eine Lösung, die maximal α so viel kostet wie
eine optimale Lösung.
I Das Problem entspricht einem sogenannten
Mengenüberdeckungsproblem, für das verschiedene
Approximationsalgorithmen bekannt sind.

13 / 30
Rechnerarchitektur

Nicht-exakte Verfahren
I Gieriges Verfahren: Immer den Primimplikanten auswählen,
der die meisten nicht überdeckten Minterme überdeckt.
I Die Approximationsgarantie dieses Verfahrens ist
Θ(log k) ∈ O(n).
I Es gibt auch einen Algorithmus, dessen
Approximationsgarantie etwas komplizierter zu erklären ist:
I Sei fi die Anzahl der Primimplikanten, die den i. Minterm
überdecken.
I Sei f das Maximum dieser Anzahlen, also f = maxi∈{1,...,s} fi .
I Dann gibt es einen f-Approximationsalgorithmus.

14 / 30
Rechnerarchitektur

Schaltnetze

Schaltwerke

15 / 30
Rechnerarchitektur
Schaltwerke

I Schaltnetze mit Zyklen


I Verwendung eines Takts

Erinnerung: Zyklenfreiheit von Schaltnetzen

x Input
x

y ¬
y Output

Situation: x = 0 y = 1 → y = 0 → y = 1... „Flimmerschaltung“

16 / 30
Rechnerarchitektur

R-S-Flip-Flop

R S

NOR

• •

U V

17 / 30
Rechnerarchitektur

R-S-Flip-Flop

Annahme: Linkes Gatter schaltet zuerst


I t0 Ausgangszeitpunkt
I t1 beide Gatter haben einmal geschaltet
I t2 beide Gatter haben zweimal geschaltet

R S Ut1 Vt1 R S Ut2 Vt2


0 0 ¬Vt0 Vt0 0 0 ¬Vt0 Vt0
0 1 ¬Vt0 0 0 1 1 0
1 0 0 1 1 0 0 1
1 1 0 0 1 1 0 0

18 / 30
Rechnerarchitektur

R-S-Flip-Flop

Annahme: Rechtes Gatter schaltet zuerst


I t0 Ausgangszeitpunkt
I t1 beide Gatter haben einmal geschaltet
I t2 beide Gatter haben zweimal geschaltet

R S Ut1 Vt1 R S Ut2 Vt2


0 0 Ut0 ¬Ut0 0 0 Ut0 ¬Ut0
0 1 1 0 0 1 1 0
1 0 0 ¬Ut0 1 0 0 1
1 1 0 0 1 1 0 0

19 / 30
Rechnerarchitektur

R-S-Flip-Flop

Idee
I R = 1 und S = 1 als Eingabe verbieten
I U als Zustand Q interpretieren
I Beobachtung: Sofern das Schaltwerk mit R = 1 und S = 0
oder R = 0 und S = 1 initialisiert wird und nie R = S = 1 gilt,
ist V = ¬U.
I R steht für reset, S steht für set.

20 / 30
Rechnerarchitektur
Sequentielle Schaltwerke
R-S-Flip-Flop

R S
alter neuer
Zustand „reset“ „set“ Zustand
Q R S Q
NOR 0 0 0 0
0 0 1 1
0 1 0 0
1 0 0 1
• •
1 0 1 1
1 1 0 0

Q Q

21 / 30
Rechnerarchitektur

Einführung eines Takts

Taktgeber („Uhr“/„Clock“) zur Erzeugung von Impulsen:

Taktimpuls
1 2 3
1

0 …

Zeit Arbeitsphase

22 / 30
Rechnerarchitektur
Sequentielle Schaltwerke
Getaktetes R-S-Flip-Flop

R Takt T S

• •

Q Q

23 / 30
Rechnerarchitektur
Sequentielle Schaltwerke
Getaktetes D-Flip-Flop Vermeidung R = S = 1:
Takt T D

• •

Q Q

T = 0 stabiler Zustand Q = 0 oder Q = 1


T=1 D=1→Q=1
D=0→Q=0
24 / 30
Rechnerarchitektur
Sequentielle Schaltwerke
Delay-Baustein

xi V S yi

Takt

Vorspeicher V, Speicher S
Arbeitsphase i: S steht als Signal yi zur Verfügung; V erhält den
Wert des Inputs xi
Setzphase: V → S bei Taktimpuls
Arbeitsphase i + 1: yi+1 = xi
..
.
25 / 30
Rechnerarchitektur
Sequentielle Schaltwerke
Definition Ein (sequentielles) Schaltwerk ist ein gerichteter (nicht
notwendigerweise zyklenfreier) Graph. Jeder Kreis enthält
mindestens einen Delaybaustein.

x x

Takt

• •

y y

Flimmerschaltung (kein Schaltkreis) x=1:y=1 x = 0 : y = 1, y = 0, y = 1, . . .

26 / 30
Rechnerarchitektur
Sequentielle Schaltwerke
n-stelliges Register

Rn−1 Rn−2 R1 R0

xn−1 xn−2 x1 x0

Rn−1 Rn−2 … R1 R0

yn−1 yn−2 y1 y0

27 / 30
Rechnerarchitektur
Sequentielle Schaltwerke
Beispiel
3-Bit Ringzähler, Schaltnetz für R : B3 → B3 ,
R(i) = (i + 1) mod 8, y = R(x)

x2 x1 x0 y2 y1 y0
0 0 0 0 0 1
0 0 1 0 1 0
0 1 0 0 1 1
0 1 1 1 0 0
1 0 0 1 0 1
1 0 1 1 1 0
1 1 0 1 1 1
1 1 1 0 0 0

28 / 30
Rechnerarchitektur
Sequentielle Schaltwerke
Vielen Dank an den Studenten, der nach der Vorlesung auf
Folgendes hinwies: Die Funktion für y2 lässt sich als x2 ⊕ (x1 ∧ x0 )
darstellen, was zu folgendem recht kleinen Schaltnetz führt:

Das Schaltnetz auf der linken Seite der nächsten Folie stellt eine
Alternative ohne XOR-Bausteine dar.
29 / 30
Rechnerarchitektur
Sequentielle Schaltwerke

R
x2 y2
x2 x1 x0
x1 R y1
x0 y0
• •

• • y2

x2 y2
• •

• x1 y1
• R
y1 •
x0 y0

y0 •
Takt

30 / 30
Informatik II
Wintersemester 2019/2020

Melanie Schmidt
Abteilung Informatik
Department Mathematik/Informatik

20. November 2019

1 / 39
Rechnerarchitektur
Von Neumann Rechner
I Die aus den 1940er Jahren stammende Von Neumann
Architektur hat bis heute ihre konzeptionelle Bedeutung nicht
verloren.
I Demgemäß besteht ein Rechner aus
I einer Zentraleinheit (Central Processing Unit): CPU
I einem Speicher
I einer Ein-/Ausgabe (input/output) Einheit: I/O
I sowie Verbindungen zwischen diesen Einheiten:
Adressbus und Datenbus.
Datenbus

CPU
I/O
Central Speicher
Input
Processing (ROM, RAM) Output
Unit

Adressbus

2 / 39
Rechnerarchitektur

Von Neumann Rechner


I Aufgaben
I CPU: Ablaufsteuerung, Ausführung von Befehlen
I Speicher: Programme und Daten als Bitfolgen
I I/O: Verbindung zur Außenwelt
I Die Struktur des Rechners ist unabhängig von einem
speziellen zu lösenden Problem. Sein Verhalten wird allein von
dem via I/O in den Speicher geschriebenen Programm und
den dort ebenfalls befindlichen Daten bestimmt.
I Der Speicher nimmt Programme und Daten in Speicherzellen
fester Länge auf, die einzeln adressiert werden können.

3 / 39
Rechnerarchitektur
Von Neumann Rechner
Struktur einer CPU
CPU

Datenprozessor Befehlsprozessor

MR L A Dekodierer
Steuerwerk

ALU
IR

MBR MAR PC

Adressbus

Datenbus
4 / 39
Rechnerarchitektur

Von Neumann Rechner


Struktur einer CPU
I mit Datenprozessor
ALU (Arithmetic Logical Unit): Rechenwerk
A: Akkumulator-Register (Akku)
L: 1-Bit Register (z.B. für Additions-Überträge)
MR: Multiplikationsregister (Erweiterung von A)
MBR: (Memory Buffer Register): Puffer für Speicherinhalte
I und Befehlsprozessor
IR: Instruktionsregister: aktuell zu bearbeitender Befehl
MAR: (Memory Address Register): Speicheradresse
PC: (Program Counter): Adresse des nächsten Befehls

5 / 39
Rechnerarchitektur

Von Neumann Rechner


I Zu jedem Zeitpunkt führt die CPU genau einen Befehl aus
und dieser kann höchstens einen Datenwert bearbeiten „Single
Instruction - Single Data (SISD)“.
I Speicherworte können Daten, Befehle oder Adressen sein.
I Aufgaben der ALU
Durchführung von arithmetischen oder logischen Operationen,
die
I 0-Adress (z.B. Komplementieren des Akkus) oder
I 1-Adress (z.B. A ← A + MBR)
Befehlen entsprechen. (In realen Computern gibt es auch 2-
oder 3-Adress-Befehle.)

6 / 39
Rechnerarchitektur

Von Neumann Rechner


Eine (sehr) einfache ALU

Funktionsselektor S = (S2 , S1 , S0 , M)
• •

Bn−1 An−1 Bi Ai B0 A0

Stufe n − 1 … Stufe i … Stufe 0


Cn Cn−1 Ci+1 Ci C1 C0
Fn−1 Fi F0

7 / 39
Rechnerarchitektur
Von Neumann Rechner
Eine (sehr) einfache ALU
Stufe i:
Ai x

S2
Ci+1

Bi •

S1 •
y • w • Fi

S0

Ci z

M 8 / 39
Rechnerarchitektur

Von Neumann Rechner


I Effekt der Selektoren
S2 x S1 S0 y
0 0 0
M z }
0 0
0 0 logische
1 Ai 0 1 Bi Operationen
1 Ci arithmetische
1 0 Bi
1 1 1
I Outputs (wie Volladdierer für x, y, z)

Fi = x⊕y⊕z
Ci+1 = (x ∧ y) ∨ ((x ⊕ y) ∧ z) = (x ∧ y) ∨ (x ∧ z) ∨ (y ∧ z)

9 / 39
Rechnerarchitektur

Von Neumann Rechner Boolesche Funktionen


Fi
S2 S1 S0 x y w M=0 M=1 Ci+1 für M = 1
0 0 0 0 0 0 0 Ci 0
0 0 1 0 Bi Bi Bi Bi ⊕ Ci Bi ∧ Ci
0 1 0 0 Bi Bi Bi Bi ⊕ Ci Bi ∧ Ci
0 1 1 0 1 1 1 Ci Ci
1 0 0 Ai 0 Ai Ai Ai ⊕ Ci Ai ∧ Ci
1 0 1 Ai Bi Ai ⊕ Bi Ai ⊕ Bi Ai ⊕ B i ⊕ Ci (Ai ∧ Bi ) ∨ (Ai ∧ Ci ) ∨ (Bi ∧ Ci )
1 1 0 Ai Bi Ai ⊕ Bi Ai ⊕ Bi Ai ⊕ Bi ⊕ Ci (Ai ∧ Bi ) ∨ (Ai ∧ Ci ) ∨ (Bi ∧ Ci )
1 1 1 Ai 1 Ai Ai Ai ⊕ Ci Ai ∨ Ci

10 / 39
Rechnerarchitektur

Von Neumann Rechner


I Zusammensetzen der Stufen

A = (An−1 , An−2 , . . . , A0 )
B = (Bn−1 , Bn−2 , . . . , B0 )
C = (Cn−1 , Cn−2 , . . . , C0 )
F = (Fn−1 , Fn−2 , . . . , F0 )

11 / 39
Rechnerarchitektur

Von Neumann Rechner


I Logische Mikro-Operationen der ALU (bitweise!)

M S2 S1 S0 F Beschreibung
0 0 0 0 0 Setze alle Bits Null
0 0 0 1 B Übertrage B
0 0 1 0 B Komplementiere B (1-Kpl)
0 0 1 1 1 Setze alle Bits Eins
0 1 0 0 A Übertrage A
0 1 0 1 A⊕B Exklusives Oder
0 1 1 0 A⊕B Äquivalenz
0 1 1 1 A Komplementiere A (1-Kpl)

12 / 39
Rechnerarchitektur

Von Neumann Rechner


I Brauchbare arithmetische Mikro-Operationen der ALU

M S2 S1 S0 C0 F Beschreibung
1 0 0 1 1 B+1 Inkrementiere B
1 0 1 0 1 B+1 2-Kpl von B
1 1 0 0 1 A+1 Inkrementiere A
1 1 0 1 0 A+B Addition
1 1 1 0 0 A+B Subtraktion A − B (1-Kpl)
1 1 1 0 1 A+B+1 Subtraktion A − B (2-Kpl)
1 1 1 1 0 A−1 Dekrementiere A (2-Kpl)

13 / 39
Rechnerarchitektur
Von Neumann Rechner
Erläuterung zu:

M S2 S1 S0 C0 F
1 1 1 1 0 A − 1 Dekrementiere A (2-Kpl)

Aus dem Schaltplan für Stufe i entnehmen wir:


M=0 M=1
S2 S1 S0 x y w Fi Fi Ci+1
1 1 1 Ai 1 Ai Ai Ai ⊕ Ci Ai ∨ Ci

Die Subtraktion entspricht der Addition des 2-Komplements, also


A − 1 → A + 2-Kpl von 1 = A + 11 · · · 1.
Z. B. 0110 0110
−0001 → +1111
(1)0101
14 / 39
Rechnerarchitektur

Von Neumann Rechner


Es gilt
C0 = 0
F0 = A0 ⊕ 0 C1 = A0 ∨ C 0
= A0 = A0
F1 = A1 ⊕ C1 C2 = A1 ∨ C 1
= A1 ⊕ A0 = A1 ∨ A0
F2 = A2 ⊕ C2 C3 = A2 ∨ C 2
= A2 ⊕ (A1 ∨ A0 ) = A2 ∨ A1 ∨ A0
..
.
Fi = Ai ⊕ C i Ci = Ai−1 ∨ Ci−1
= Ai ⊕ (Ai−1 ∨ Ai−2 ∨ · · · ∨ A0 ) = Ai−1 ∨ Ai−2 ∨ · · · ∨ A0
Ci+1 = Ai ∨ Ci
= Ai ∨ Ai−1 ∨ · · · ∨ A0

15 / 39
Rechnerarchitektur
Von Neumann Rechner
Befehlsablauf im von Neumann Rechner
I „Fetch“-Phase
MAR ← PC
MBR ← ⟨MAR⟩ (Inhalt des durch MAR adressierten Speicherworts)
IR ← MBR
Dekodiere IR
falls kein Sprungbefehl
dann {stelle Operanden bereit; PC ← PC+1}
sonst PC ← Sprungzieladresse
I „Execution“-Phase
Befehlsausführung
I (In der Realität ist es oft komplizierter: z.B. müssen
Adressberechnungen aufgrund indirekter Adressierung
durchgeführt werden.)
I Die Kommunikation zwischen CPU und Speicher kann
wesentlichen Einfluss auf die Geschwindigkeit haben
(von-Neumannscher Flaschenhals).
16 / 39
Rechnerarchitektur

Von-Neumann Rechner
Befehlsablauf
I Die Dekodierung erfolgt im Steuerwerk, das die
entsprechenden Signale setzt.
I Daten müssen ggfs über mehrere Register transportiert
werden.
I Dekodierwerk steuert ALU an, um ggfs Rechnung
durchzuführen.
I Das Steuerwerk generiert die Signale für die Mikrooperationen
nach einem Mikroprogramm.

17 / 39
Rechnerarchitektur
Von-Neumann Rechner
I Für jeden Befehl ist ein Mikroprogramm in einem ROM
gespeichert, i.d.R. mit Unterprogrammtechniken (spezielle
Register für Rücksprungadressen)
I Prinzip

IR Instruktionscode Adressteil

DEKODIERER Auswahl des ersten Mikrobefehls

MIKROPROGRAMM-
SPEICHER

18 / 39
Rechnerarchitektur
Von-Neumann Rechner
Speicher
Zur Speicherung werden zwei verschiedene Konzepte verwendet:
I ROM (read only memory): Festwertspeicher „nur lesen“
I RAM (random access memory): wahlfreier Zugriff auf jede
Speicherzelle zum Lesen und Schreiben

ROMs werden häufig eingesetzt, um System-Funktionen


aufzunehmen (Mikroprogramme). Weiterentwicklungen sind z.B.:
I PROM (programmable ROM) Sie können durch Anlegen von
externen Spannungen programmiert („gebrannt“) werden.
I EPROM (erasable PROMS): Durch UV-Belichtung ist die
Programmierung wieder löschbar.
I EEPROM (electrically erasable PROMS)

19 / 39
Rechnerarchitektur

Von-Neumann Rechner
Speicher
RAM wird in verschiedenen Techniken hergestellt:
I DRAM (dynamic RAM): Jede Speicherstelle besteht nur aus
einem Transistor und einem Kondensator. DRAM verliert seine
Ladung, insbesondere beim Auslesen, und muss daher
regelmäßig aufgefrischt werden.
I SRAM (static RAM): Jede Speicherstelle besteht aus einem
Flip-Flop, es hält seine Ladung und ist schneller und teurer als
DRAM, es findet Verwendung in Caches und Registern.
I SDRAM (synchronous DRAM): Wie DRAM, mit
Speicherpartitionierung, die es ermöglicht, aus einem Block zu
lesen und einen anderen gleichzeitig aufzufrischen.

20 / 39
Rechnerarchitektur

Von-Neumann Rechner
Speicher
I RAM-Bausteine werden üblicherweise als Hierarchie
implementiert – nach zunehmender Zugriffszeit und
abnehmenden Kosten:
I Register (SRAM)
I Cache: Enthält eine „Umgebung“ der gerade benötigten Daten
im MB-Bereich (SRAM), es gibt eventuell mehrere
Cache-Ebenen.
I Hauptspeicher im GB-Bereich (DRAM)
I Auf der letzten Hierarchiestufe folgen dann
Hintergrundspeicher, deren Kapazitäten im GB- bis
TB-Bereich liegen (Festplatten, Flashspeicher, externe
Laufwerke, DVDs).

21 / 39
Rechnerarchitektur
Speicherhierarchie

CPU
Register (SRAM)

Cache (SRAM)
Geschwindigkeit
& Kapazität
Produktionskosten
Hauptspeicher (DRAM)

Hintergrundspeicher
Festplatten, Flashspeicher, etc.

22 / 39
Rechnerarchitektur

Von-Neumann Rechner
I Busse stellen die Datenverbindungen zwischen einzelnen
Teilen des Rechners her:
I Wir unterscheiden Datenbus, Adressbus, Speicherbus,
Kontrollbusse zur Synchronisation, I/0-Busse, . . .
I Eventuell können mehrere Bewegungen gleichzeitig ablaufen.
I Busse sind seriell (jeweils nur 1 Bit) oder parallel (mehrere Bits
in parallelen Leitungen)

23 / 39
Rechnerarchitektur

Von-Neumann Rechner
Ein/Ausgabeeinheiten
I In unserem Konzept kontrolliert die CPU den Speicherzugriff.
Daraus ergibt sich unter Umständen:
I Die CPU ist beschäftigt, während ein I/O-Gerät Daten
übertragen möchte.
I Langsame I/O-Geräte blockieren die schnelle CPU.
I Ausweg: Wir statten daher Endgeräte mit zusätzlicher
„Intelligenz“ aus.
I Ein Controller bedient eines oder mehrere Endgeräte. Er
verfügt über einen Zwischenspeicher und über Datenleitungen
zu den Endgeräten, der CPU und dem Speicher.

24 / 39
Rechnerarchitektur
Von-Neumann Rechner
Ein/Ausgabeeinheiten
Controller

CPU

E/A

Speicher

Puffer
Schematischer Aufbau eines I/0-Controllers
25 / 39
Rechnerarchitektur

Von-Neumann Rechner
Ein/Ausgabeeinheiten
I Ablauf (zum Datenempfang)
1. Der Controller sendet ein „Interrupt“-Signal an die CPU, um
zu signalisieren, dass er bereit zum Empfangen von Daten ist.
2. Die CPU überprüft den Controller-Status und sendet ggf. ein
Start-Signal.
3. Der Controller empfängt Daten, die in seinem Puffer
abgespeichert werden. Ist der Puffer voll oder die Übertragung
beendet, sendet er einen weiteren Interrupt an die CPU.
4. Die CPU unterbricht das laufende Programm und initiiert die
Übertragung Puffer → Speicher. Die CPU setzt danach ihr
Programm fort.
I Die Controller übernehmen häufig als I/O-Prozessoren
Konvertierungen (intern/extern) und Paritychecks.

26 / 39
Rechnerarchitektur

Rechnerorganisation
Zu der einfachen SISD (Single Instruction - Single Data) Struktur,

Daten CPU Instruktion

mit der wir uns hier beschäftigt haben, kommen parallele Versionen
hinzu, die wichtigsten sind:
I MIMD (Multiple Instruction - Multiple Data)
I SIMD (Single Instruction - Multiple Data)
I MISD (Multiple Instruction - Single Data)

27 / 39
Rechnerarchitektur

Rechnerorganisation
MIMD (Multiple Instruction - Multiple Data)

Instruktionen Instruktionen … Instruktionen

CPU 1 CPU 2 … CPU n

Daten Daten … Daten

I n Prozessoren führen unterschiedliche Instruktionen auf


unterschiedlichen Daten aus.

28 / 39
Rechnerarchitektur

Rechnerorganisation
MIMD (Multiple Instruction - Multiple Data)
I Heutzutage am weitesten verbreitet.
I CPUs können auch unterschiedliche Instruktionen auf den
gleichen Daten ausführen (aber i.d.R. nicht gleichzeitig),
I oder die gleichen Instruktionen auf unterschiedlichen Daten.
Beispiele:
I Mehrkernprozessorsysteme (z.B. in handelsüblichen
PC-Systemen)
I Multiprozessorsysteme, u.U. mit Mehrkernprozessoren
I Threads in Java: Verschiedene Funktionen werden parallel
ausgeführt (z.B. GUI-Events und Netzwerkkommunikation)

29 / 39
Rechnerarchitektur

Rechnerorganisation
SIMD (Single Instruction - Multiple Data)

Instruktion

PU 1 PU 2 … PU n

Datum 1 Datum 2 … Datum n

I Eine Instruktion wird auf n Prozessoren mit unterschiedlichen


Daten ausgeführt (→ Datenparallelität).

30 / 39
Rechnerarchitektur
Rechnerorganisation
MISD (Multiple Instruction - Single Data)

Instruktionen Instruktionen … Instruktionen

CPU 1 CPU 2 … CPU n

Datum

I z.B.: Redundante Computersysteme, mehrere Prozessoren


rechnen auf den selben Daten um die Zuverlässigkeit zu
erhöhen (relativ selten)

31 / 39
Rechnerarchitektur

Assembler
Höhere Programmiersprache Maschinensprache
(Fortran, Pascal, C, C++, Java, . . .) Compiler oder
−−−−−→
maschinenunabhängig Assembler(sprache)
Assembler(sprache) Assembler
−−−−−−→ Maschinensprache
maschinenabhängig

Vorteile der Assemblerprogrammierung


I im Vergleich zu Maschinenprogrammierung:
I symbolische Namen für Befehle (ADD, SUB, …)
I symbolische Namen für Speicherplätze
I im Vergleich zu Programmieren in einer Hochsprache:
I Zugriff auf alle Einzelheiten der Maschine (z.B. Testen eines
Overflowbits), d.h. im Prinzip sind effizientere Programme
möglich.

32 / 39
Rechnerarchitektur

Assembler
I Assemblerprogrammierung erlaubt im Prinzip den Entwurf
hocheffizienter Programme
I Die Programmierung in Assembler ist jedoch auch sehr
zeitaufwendig
I Lohnt sich nur für sehr zeitkritische (Teil)programme
Häufig wird die meiste Rechenzeit von wenigen Prozent des
Programms verbraucht. Diese zu optimieren kann sich also lohnen.
I Programmieren in einer Hochsprache erlaubt einen besseren
Überblick über das Programm
I Dadurch ist es leichter, einen Laufzeitgewinn durch Wahl
geeigneter Algorithmen und Datenstrukturen zu erzielen

33 / 39
Rechnerarchitektur

Assembler
Im wesentlichen entspricht jeder Assemblerbefehl einem
Maschinenbefehl oder einer Pseudoinstruktion, d.h. einer
Anweisung an den Assembler.
Felder eines Assemblerbefehls:
I Label
I Operation
I Operanden
I Kommentar
Operanden können Register, Konstanten oder Speicherplätze sein.

34 / 39
Rechnerarchitektur
Assembler
Beispiel x86-Code-Fragment für n = i + j + k
(Microsoft MASM Assembly Language)
Label Operation Operanden Kommentar
FORMUL: MOV EAX, I ; Lade I nach EAX
ADD EAX, J ; Addiere J zu EAX
ADD EAX, K ; Addiere K zu EAX
MOV N, EAX ; Speichere I+J+K in N
.
.
.
I DD 2 ; Reserv. 4 Bytes initial. mit 2
J DD 3 ; Reserv. 4 Bytes initial. mit 3
K DD 4 ; Reserv. 4 Bytes initial. mit 4
N DD 0 ; Reserv. 4 Bytes initial. mit 0

Die oberen vier Zeilen entsprechen Maschinenbefehlen, die unteren


vier Zeilen sind Pseudoinstruktionen: „DD“ steht für „define
double“, das hat den historischen Grund, dass der Intel 8088
16-Bit-Wörter hatte.
35 / 39
Rechnerarchitektur

Assembler
Ein wichtiges Beispiel für Pseudoinstruktionen sind Makros, auf die
wir jetzt genauer eingehen.

36 / 39
Rechnerarchitektur
Makros
Makros erlauben eine kompakte Definition sich wiederholender
Instruktionssequenzen, z.B.:
(a) (b)
MOV EAX, P SWAP MACRO
MOV EBX, Q MOV EAX, P
MOV Q, EAX MOV EBX, Q
MOV P, EBX MOV Q, EAX
: MOV P, EBX
: ENDM
MOV EAX, P SWAP
MOV EBX, Q :
MOV Q, EAX :
MOV P, EBX SWAP

37 / 39
Rechnerarchitektur

Makros
I Die Definition eines Makros bewirkt die Abspeicherung des
Textes in Makrotabelle.
I Bei Benutzung eines Makros (macro call) erfolgt die
Expandierung (macro expansion) aus der Makro-Tabelle.
I Das geschieht alles während der Assemblierung, d.h. z.B. (a)
und (b) produzieren exakt den gleichen Code!

38 / 39
Rechnerarchitektur

Makros
Makros können auch Parameter haben, z.B.:
MOV EAX, P CHANGE MACRO P1, P2
MOV EBX, Q MOV EAX, P1
MOV Q, EAX MOV EBX, P2
MOV P, EBX MOV P2, EAX
: MOV P1, EBX
: ENDM
MOV EAX, R CHANGE P, Q
MOV EBX, S :
MOV S, EAX :
MOV R, EBX CHANGE R, S

39 / 39
Informatik II
Wintersemester 2019/2020

Melanie Schmidt
Abteilung Informatik
Department Mathematik/Informatik

25. November 2019

1 / 32
Überblick und Literaturhinweise

Themen der Vorlesung


I Wie werden Informationen im Rechner dargestellt? (Kapitel 1)
I Wie funktioniert ein Rechner? (Kapitel 2 & Betriebssysteme )
I Was kann mit einem Rechner (nicht) ausgerechnet werden?
Was kann mit einem Rechner (nicht) effizient berechnet
werden? (Kapitel 3)

2 / 32
Überblick und Literaturhinweise
Literatur
I Kapitel 1: Kapitel1.pdf
I Kapitel 2: Auszüge aus dem Skript ‘Rechnerstrukturen’
(Skript-RS-TJ.pdf) von Thomas Jansen (Aberystwyth
University), gekürzte Version: Kapitel2.pdf
I Kapitel 3: Auszüge aus den Skripten
I ‘Logik und diskrete Strukturen’,
http://www.roeglin.org/teaching/Skripte/LuDS.pdf
I ‘Algorithmen und Berechnungskomplexität I’,
http://www.roeglin.org/teaching/Skripte/AlgoI.pdf
I ‘Algorithmen und Berechnungskomplexität II’,
http://www.roeglin.org/teaching/Skripte/AlgoII.pdf
von Heiko Röglin (Uni Bonn), Kapitel3.pdf
Kapitel2.pdf erscheint nächsten Montag, Kapitel3.pdf zu einem
späteren Zeitpunkt.

3 / 32
Überblick und Literaturhinweise

Umgang mit kleineren Inkonsistenzen zwischen Folien und Skripten


I Im Zweifel sind die Folien ausschlaggebend.
I → Verwenden Sie bitte die Schaltsymbole aus den Folien.
I Eine Ausnahme stellt die Normierung der Mantisse bei
Gleitkommazahlen dar. Hier bitte nach kapitel1.pdf richten.
I Bei der Schreibweise boolescher Ausdrücke sind wir flexibel,
solange es sich um eine uns bekannte verständliche
Schreibweise handelt. Sie dürfen also auch die verkürzte
Schreibweise (xy ∨ z oder xy + z statt ¬(x ∧ y) ∨ z) verwenden.
I Wenn sie vollkommen ratlos sind, schreiben Sie mir eine Email.

Verständnis ist uns sehr viel wichtiger als Auswendiglernen.

4 / 32
Kapitel 3: Komplexitätstheorie

Was kann mit einem Rechner (nicht) ausgerechnet werden


bzw. (nicht) effizient berechnet werden?
Beobachtung
Für die Beantwortung einer solchen Frage benötigen wir ein
präzises Modell eines Rechners.
I von Neumann Rechner?
I sehr nah an der tatsächlichen Architektur
I Für eine Analyse müssten wir genau spezifizieren, welche
Operationen es gibt.
I Beschreibt einen aktuellen Rechner trotzdem nicht vollständig.
I Wir würden gern von den tatsächlichen Registern und
Datenleitungen abstrahieren.

5 / 32
Registermaschine / Random Access Machine (RAM)
Algo II Skript, Kapitel 1.2.2
Dieses Rechnermodell ist Ihnen aus Info I bekannt. Wir
wiederholen es anhand von Kapitel 1.2.2 aus dem Algo II Skript.
Eine Registermaschine erinnert an eine Assemblersprache, die nur
die wesentlichen Befehle enthält.
Registermaschine
Eine Registermaschine besteht aus
I einem speziellen Akkumulatorregister c(0)
I einer unbegrenzten Anzahl von weiteren Registern
c(1), c(2), c(3) . . . (Jedes Register enthält eine natürliche Zahl)
I und einem Befehlszähler b.
Eine Registermaschine führt ein Programm aus. Zu Beginn steht in
Register c(0) die Eingabe und alle anderen Register sind mit einer
0 initialisiert. Der Befehlszähler steht auf b = 1. Am Ende des
Programms steht die Ausgabe in c(0).
6 / 32
Registermaschine / Random Access Machine (RAM)

Syntax Zustandsänderung Änderung von b


LOAD i c(0) := c(i) b := b + 1
CLOAD i c(0) := i b := b + 1
INDLOAD i c(0) := c(c(i)) b := b + 1
STORE i c(i) := c(0) b := b + 1
INDSTORE i c(c(i)) := c(0) b := b + 1
ADD i c(0) := c(0) + c(i) b := b + 1
CADD i c(0) := c(0) + i b := b + 1
INDADD i c(0) := c(0) + c(c(i)) b := b + 1
SUB i c(0) := c(0) − c(i) b := b + 1
CSUB i c(0) := c(0) − i b := b + 1
INDSUB i c(0) := c(0) − c(c(i)) b := b + 1

7 / 32
Registermaschine / Random Access Machine (RAM)

Syntax Zustandsänderung Änderung von b


MULT i c(0) := c(0) · c(i) b := b + 1
CMULT i c(0) := c(0) · i b := b + 1
INDMULT i c(0) := c(0) · c(c(i)) b := b + 1
DIV i c(0) := ⌊c(0)/c(i)⌋ b := b + 1
CDIV i c(0) := ⌊c(0)/i⌋ b := b + 1
INDDIV i c(0) := ⌊c(0)/c(c(i))⌋ b := b + 1

8 / 32
Registermaschine / Random Access Machine (RAM)

GOTO j - b := j
j falls c(0) = x
IF c(0) = x GOTO j - b :=
 b + 1 sonst
j falls c(0) < x
IF c(0) < x GOTO j - b :=
 b + 1 sonst
j falls c(0) ≤ x
IF c(0) ≤ x GOTO j - b :=
b + 1 sonst
END Ende der Rechnung -

9 / 32
Registermaschine / Random Access Machine (RAM)

Kostenmaße
I Uniformes Kostenmaß: Jeder Befehl hat konstante Laufzeit.
I Unrealistisch: Register können beliebig große Zahlen speichern
und mit diesen in konstanter Laufzeit arithmetische
Operationen durchführen.
I Logarithmisches Kostenmaß: Die Laufzeit eines Befehls ist
proportional zu der Länge der Zahlen in den angesprochenen
Registern (in Binärdarstellung).
ADD i hat also im uniformen Kostenmaß Laufzeit O(1) und im
logarithmischen Kostenmaß Laufzeit

O(log2 (c(0)) + log2 (c(i)) + log2 (b)).

10 / 32
Registermaschine / Random Access Machine (RAM)

Eingabegröße
Die Eingabegröße messen wir im logarithmischen Kostenmaß durch
die Länge der Binärdarstellung der Eingabe in Register c(0).

Laufzeit
Wir nennen eine Registermaschine im logarithmischen Kostenmaß
t(n)-zeitbeschränkt, wenn die Laufzeit im logarithmischen
Kostenmaß für jedes n ∈ N und jede Eingabe mit n Bits durch t(n)
beschränkt ist.

11 / 32
Registermaschine / Random Access Machine (RAM)

Beispiel (Kostenmaße)
In Info I wurde im uniformen Kostenmaß gerechnet. Betrachten wir
als Beispiel MergeSort.
I Die Eingabelänge eines Arrays mit n Zahlen, welche mit b Bits
dargestellt werden, ist b · n.
I Die Operationen benötigen im logarithmischen Kostenmaß
Laufzeit O(b).
I Die Laufzeit von MergeSort ist dann O(b · n log n).
I Da die Eingabelänge aber N = n · b ist, ändert sich nichts:
O(bn log n) ⊂ O(N log N).
Anders sieht das aus, wenn der Algorithmus in Zwischenschritten
sehr große Zahlen erzeugt.

12 / 32
Registermaschine / Random Access Machine (RAM)

Beispiel
P
n
Berechne für eine gegebene Zahl n ∈ N≥1 die Summe i.
i=1

Pseudocode
s = 0
for i = 1 to n
s = s + i
return s

13 / 32
Registermaschine / Random Access Machine (RAM)

Eingabezahl n gespeichert in c(1), Ausgabe in c(0).


1. LOAD(1)
2. STORE(2)
3. CSUB(1)
4. STORE(1)
5. ADD(2)
6. STORE(2)
7. LOAD(1)
8. IF x=0 GOTO 10
9. GOTO 3
10. LOAD(2)
11. END

14 / 32
Registermaschine / Random Access Machine (RAM)

Beobachtung
Das obige Programm ist exponentiell in der Eingabelänge!
I Die Eingabe hat nur Länge Θ(log n)
I Selbst im uniformen Kostenmaß hat das obige Programm
Laufzeit Θ(n), im logarithmischen Θ(n log n).

15 / 32
Registermaschine / Random Access Machine (RAM)

Bessere Idee:
X
n
n(n + 1)
i= .
2
i=1

1. LOAD(1)
2. CADD(1)
3. MULT(1)
4. CDIV(2)

16 / 32
Registermaschine / Random Access Machine (RAM)

Entscheidungsprobleme
Nur Antwort ja oder nein.

Beispiel
Entscheide, ob die in c(1) gespeicherte Zahl gerade ist (wenn ja,
soll die Ausgabe 1 sein, wenn nicht, soll die Ausgabe 0 sein.).

17 / 32
Registermaschine / Random Access Machine (RAM)

1. LOAD(1)
2. CDIV(2)
3. CMULT(2)
4. SUB(1)
5. IF x=0 GOTO 8
6. CLOAD(0)
7. END
8. CLOAD(1)
9. END

18 / 32
Registermaschine / Random Access Machine (RAM)

Weiteres Beispiel
Entscheide, ob ein Bitstring aus {0, 1}n ein Palindrom ist, d.h.
vorwärts und rückwärts gelesen identisch ist.

19 / 32
Registermaschine / Random Access Machine (RAM)

Eingabe
I c(1) = 3, c(2) wird auf den Index des letzten belegten
Registers gesetzt
I c(3), . . . , c(c(2)) enthält die Eingabe

1. INDLOAD(1)
2. CADD(1)
3. INDSUB(2)
4. IF c(0) = 1 GOTO 7
5. CLOAD(0)
6. END

20 / 32
Registermaschine / Random Access Machine (RAM)

7. LOAD(1)
8. CADD(1)
9. STORE(1)
10. LOAD(2)
11. CSUB(1)
12. STORE(2)
13. CADD(1)
14. SUB(1)
15. IF c(0) <= 1 GOTO 17
16. GOTO 1
17. CLOAD(1)
18. END

21 / 32
Endliche Automaten

I sehr einfaches Rechenmodell


I wir führen eine Version ohne Ausgabe ein
I geeignet für Entscheidungsprobleme

22 / 32
Endliche Automaten / Formale Sprachen
LuDS Skript, Def. 3.1, 3.2, 3.3
Vokabeln
I Alphabet Σ.
Zum Beispiel: Σ = {a, b, c, . . . , z}. Bei uns eher: Σ = {0, 1}.
I Wort: endliche Folge von Zeichen aus Σ,
also z.B. informatik oder bkld oder 010101011.
I Σ∗ ist die Menge aller Wörter
I ϵ: das leere Wort, die Zeichenkette der Länge 0
I ϵ gehört auch zu Σ∗ , und Σ∗ ohne ϵ heißt Σ+ .
I Sprache: Eine Teilmenge der möglichen Wörter.

Definition
Eine Menge L ⊆ Σ∗ heißt (formale) Sprache über Σ.

23 / 32
Endliche Automaten / Formale Sprachen

Noch mehr Schreibweisen


Sei a ∈ Σ und n ∈ N0 . Sei w = w1 . . . wn ∈ Σ∗ .
I an = aa · · · a, n Wiederholungen des Zeichens a
| {z }
n
I a0 =ϵ
I |w| ist die Anzahl der Zeichen in w
I |w|a ist die Anzahl der Vorkommen von a in w
I wR = wn . . . w1

24 / 32
Endliche Automaten / Formale Sprachen
Beispielsprachen
I L1 = {w ∈ Σ∗ | w = wR }
Die Sprache aller Palindrome.
Beobachtung: Unser Beispielproblem von vorhin entspricht der
Frage, ob ein gegebenes w ∈ {0, 1}n ein Wort in L ist oder nicht.
I L2 = {0m 1n | m, n ∈ N0 }
I L3 = {0n 1n | n ∈ N0 }
I L4 = {w ∈ Σ∗ | |w|0 = |w|1 }
Sprache aller Wörter, die genausoviele Nullen wie Einsen
enthalten.
I L5 = {w ∈ Σ∗ | |w|0 ist gerade und |w|1 ist gerade}.
I L6 = {01, 1111, 010, ϵ}
Eine Sprache mit vier willkürlich gewählten Wörtern.

25 / 32
Endliche Automaten
LuDS Skript, Kapitel 3.2
Das ist ein endlicher Automat:
1
start q0 q1
1
0 0 0 0
1
q2 q3
1
I Q: endliche Zustandsmenge, hier Q = {q0 , q1 , q2 , q3 }
I Σ ist das Eingabealphabet, hier Σ = {0, 1}
I δ : Q × Σ → Q ist die Zustandsüberführungsfunktion,
ausgedrückt durch Pfeile.
I q0 ∈ Q ist der Startzustand (Pfeil aus dem nichts)
I F ⊂ Q ist die Menge der akzeptierenden Zustände, hier
F = {q0 }, doppelter Kreis 26 / 32
Endliche Automaten
I Ein DFA M erhält als Eingabe ein Wort w = w1 . . . wn über
dem Alphabet Σ.
I Er arbeitet die Buchstaben von links nach rechts ab.
I Er startet im Startzustand q0 und wechselt nach dem Lesen
des ersten Buchstabens in den Zustand q1 = δ(q0 , w1 ).
I Nach dem Lesen des zweiten Buchstabens wechselt der DFA
in den Zustand q2 = δ(q1 , w2 ) und so weiter.
I Nach dem Lesen des letzten Buchstabens stoppt der DFA im
Zustand qn = δ(qn−1 , wn ).

Beobachtung (bzgl. obigem Automaten)

w ∈ L5 ⇔ Automat endet nach Abarbeiten von w in q0

L5 = {w ∈ Σ∗ | |w|0 ist gerade und |w|1 ist gerade}.


Wir sagen, dass der Automat die Sprache L5 akzeptiert.
27 / 32
Endliche Automaten

Induktive Erweiterung von δ


Uns interessiert, in welchem Zustand der Automat nach
Abarbeitung des gesamten Worts w = w1 . . . wn ist. Wir definieren:
I δ ∗ (q, ϵ) = q
I δ ∗ (q, a) = δ(q, a) für alle q ∈ Q und alle a ∈ Σ
I für w = w1 w2 definieren wir δ ∗ (q, w1 w2 ) = δ ∗ (δ(q, w1 ), w2 )
I für jeden Zustand q ∈ Q und für jedes Wort
w = w1 . . . wn ∈ Σ∗ der Länge n ≥ 2:

δ ∗ (q, w) = δ ∗ (δ(q, w1 ), w2 . . . wn ),

I der letzte Zustand ist also qn = δ ∗ (q0 , w).

28 / 32
Endliche Automaten

Die Sprache
L(M) = {w ∈ Σ∗ | δ ∗ (q0 , w) ∈ F}
ist die von M akzeptierte Sprache.
I Die Wörter in L(M) akzeptiert M, alle anderen verwirft er.
I M ist ein endlicher Automat für die Sprache L(M).

29 / 32
Endliche Automaten

q0 1 q1
start 0, 1

q2

0, 1

Dieser Automat akzeptiert die Sprache aller Wörter, die mit einer 1
beginnen, also
L7 = {1w | w ∈ Σ∗ }.
Wir sehen, dass δ auch auf den aktuellen Zustand zeigen kann.

30 / 32
Endliche Automaten

Beispielproblem
Bestimme, ob gegebene Zahl n gerade ist.
I endliches Eingabealphabet Eingabe kann nicht eine
beliebige Zahl sein
I Nehmen an, dass Zahl in Binärdarstellung vorliegt
I niedrigwertigste oder höchstwertigste Bits zuerst?
Beides lösbar, verschiedene Automaten notwendig.
I niedrigwertigste Bits zuerst: Sprache aller Wörter, die mit
einer 0 beginnen. Ähnlich zu Beispielsprache L7 .

31 / 32
Endliche Automaten

Lösung, wenn Sortierung höchstwertigste Bit zuerst enthält:

q0 1 q1
start 1

0
0
1

q2

32 / 32

Anmerkung

Übungsblatt wurde

aktualisiert bitte

kontrollieren Sie dass Sie die

aktuelle Version haben

LUDS Skript Kapitel 3.2 27.11.19

Vorlesung 14 Endliche Automaten

DFA

Ein BFA besteht aus start

Q go.fi
t s

9ziFs

endlichefüge
off O

go Startzustand

akzeptierende

Zustände 5 2

F go FE Q

Zustandsüberführungs

0,1

funktion

endliches Eingabealphabet

Erhält ein Wort w We Wu


we arbeitet w Zeichenweise
von li nach re ab Curit

9o

Beispiel Ö eeolc doibqo qz qz.FI


Cfr F D Automat dez 01101
nicht

01101 L M

0000 Cfo fz Go
v
o
s
tz
0000 C UM
1
0001 Cfo 92 79 3
Was ist KM hier

Wto gerade oben Zeile

1Wh Linken fpalte


gerade
akt Zustand go Wb gerade
und 1Wh gerade
Un wtdo.is lwb gerade
und 1Wh gerade
EEL cm

Formaledefinition
Wo endet die
Berechnung
Q
5
4 E
q
8 4 a a Hat 2

4cg a a
Caffeine

q an am 8 dqae az an
q Go D
Eingabe
ALSO fu EF D M akze ptivtw

fu EF M verwirft
FD w

244J WE 2 1 go.DE g

Beispiele L wefa.be it A 7
Wein syntaktisch
korrektes Java Roger
ist

we da 4A cz
englisches Wort

Palindrome we w WR
0m14 min c No
00000111 Elz
01111 C Lz 10 Lz
11111 ELZ
O
000110 L2
Elz
C Lz

044 neu
01 C

E E 0 01 1
0011 EL
011ft
0

we 2 1 lwl l

1010 C
Ly
101
4
4 we lwb und lud
beide gerade
Leer
01,1111 010 E
Pf Ist ne No gerade
Wo ist kein endliches
Eingabe alphabet

mp Automat erhält Binärdarstellung


Von u

no erlaubt beliebig
große Zahlen als Eingabe

aber 8 20,13
h Xu Xo

wann ist n
gerade Xo 0

tat niederwertigste Bits zuerst

W Xo Xi Xp f

Lz Ow wie

Do.e
1L
Das
höchstwertigste Bits zuerst
Vani
W Xu 1 Xo

w
01 WEST
Da 1
2
l

Ändre
WEG hol 3
000 010 111 101

0001000
Turingmaschinen Abgott
1 2.1
TM DFA t unendlicher Speicher

Zeichen unendliches Speicherband


aus

Lese Isareibkop

The kann Zeichen lesen


Zeichen schreiben

Kopf bewegen
tut Eingabe es Eingabe
alph.EE
T E

steht auf Band

Kopf zeigt auf das erste Zeichen


Band ist außerhalb der
Eingabe mit Sonderzeichen

A initialisiert
A E M I E
q
010111010111A III
Start zustand Go

Rechenschritt kann 1 Zeichen lesen


1 schreiben

Kopf um f bewegen
Zustand wechseln

Endzustand
8 Q1 E QXAEL.HR
27.11.19
6 QR g xp Qxfxk.N.RS

Ao

7101011ft
dato e 1 R
q
9

III
i

da 9 4,1 R
of

Ä
dgl 01 470 N
E
t
Ausgabein Zeichen ab Kopfposition
nach rechts
bis zum ersten
Zeichen das nicht ist

oben 01
Insgesamt besteht eine TU aus

endliche
Zustandsmenge
go Startzustand
g Endzustand
Ein Ausgabealphabet endlich
Band alphabet endlich
1 E MI Leerzeichen

8 Qing 1 QxpxfhN.RS
Zustandsüberführungs
funktion
Kapitel 3 2.12.19
3 h Rechner modelle
3 h 1 Registermaschinen
3 h 2 Endliche Automaten
3 e 3 Tunningmaschinen

Bspf Entscheidungsproblem Ausgabe 011


µ Q Er MO Go Ei d
mit L go.q.iq T Erlös
20,1
2
paar
Ä

111 R

Eingabe
91
Gz

Chu
Ä

14
Ab Kopfposition bis I
Ausgabe
no 1 0 Ja

Nochmal
01in
Anfang identisch
q

i
E.IE

Ausgabe O o Nein

TM akzeptiert f Wort wie


alle Wörter die 01 enden
auf
Def Einem M
akzeptiert
eine
Eingabe WEG
wenn sie terminiert und

ein Wort ausgibt das mit


1 beginnt O verwirft

Terminiert
010 N
Endlosschleife
TM erreicht
111,12 010 N
nie
E
terminiert nicht

M entscheidet LEE wenn sie

jedes we Lahpeptiert und jedes WEIL verwirft


Die Rechenzeit
DEI t.nl von te auf
Eingabe
w ist die Anzahl
der Zustandsübergänge
die 14 bei
Eingabe
w

bis zur
Terminierung durchläuft
Terminiert nicht
no Rechenzeit unendlich
Außerdem

t.ua max teilw


WEST
Iwkn

Maximale Rechenzeit für


Eingaben der Länge u
Platzbedarf s Anzahl
der verschiedenen Zellen auf denen
der
Kopf mind 1 stand
5µW WE
max 9µW
Wkn

Wenn t µ IN dann
ist 5µW es möglich
aber nicht
erzwungen

3.2 Vergleich der drei Modelle

TM
3 DFA
RAM

Bisher TM wirkt sehr unhandlich


3 2.1
TM Entwurf vereinfachen Techniken Überblick

1 Spüren statt x al

hätten wir
gerne
i

Its An jeder Position des Bands


stehen k Zeichen die alle
gleichzeitig gelesen und
werden
geschrieben
Dabei ist KEIN eine Konstante

Realisierung Bandalphabet T ersetzen


durch P Tk
k Tupel

D statt endlichem Alphabet


nun endliches Alphabet der

Größe 11 4 51
ein mit Spuren entworfenes
TM Programm kann in eine
TM ohne Spuren transformiert
werden

2 Variablen a Variablen mit endlichem Wertebereich


0 k

ersetze durch
Q xd 0 k
dh Wert der Variablen
wird im Zustand gespeichert
b Variablen mit beliebig vielen möglichenWerten

verwende eine
Spur pro Variable
oderlege Variablen nebeneinander
mit Trennzeichen einer
auf
ab
Spur
5 möge
n maxtt

3
y
IIIIIIF.mn
Unterprogrammeundschleif
aufwendiger aber
möglich
Bem 1 3 erhöhen die
asymp Rechenzeit nicht

4 Mehrere Bänder

Ihm

mehrere Lese Schreib Köpfe

Eine k Band Turingmaschine te


Def
besteht aus
Q Er MD go wie bisher
einer Zustandsübergangsfunktion
8 der Form

8 El sq x

Q 424N R
alle k Köpfe lesen 1 Zeichen schreiben
1 Zeichen und können bewegt werden
Ein und Ausgabe Band 1
auf
Wie bei 1 Band TM
Rechenzeit
Platzbedarf sind analog
zur 1 Band IM definiert

Ist eine k Band TM mächtiger


als eine 1 Band Tee

Nein

Satz Eine k Band TM mit Rechenzeit


In und Platzbedarf sein
kann durch eine 1 Band Tee
mit Rechenzeit 0kt du
und Platzbedarf Olsen
simuliert werden
Beweis lassen wir Idee
weg
2k Spuren

ungerade Spuren 1,3 2hr1 enthalten


den Inhalt der K Bänder

markieren mit die


gerade Spuren
Zellen die die Köpfe gerade zeigen
auf
d
E
tt

1 Band TM läuft von li na ne

sammelt alle Informationen

speichert diese im Zustand


läuft zurück nach li und
aktualisiert dabei alle Spuren
up Bvb linkester und rechtester
2 tk
Kopf max

voneinander entfernt

0 Simulation eines Rechenschritt

benötigt Olten Zeit


no OC Hu insgesamt

3.2 LT 4euvsRAMs

Satz Jede im
logarithmischen
Kostenmaß tut Zeitbeschränkte

Registermaschine kann durch eine

Turingmaschine simuliert werden


deren Rechenzeit für ein Polynom of

0 glatt beträgt
Beweisidee RAM mit Programm aus
p Befehlen

pt2 Unterprogramme

Mo
Initialisierung
Ms Mp Befehle
Mpte Ausgabe

2 Band TM

Band 2 Speicher der RAM

I o Ibinldo hI binl

0 is iz beschriebene Register

Bands für Ausführung der Unterprogramme

Init Eingabe auf Band 2 Kopieren


Befehle Unterprogramme überlegen

Ausgabe auf Band I kopieren


Obiger Satz sagt insbesondere
dass jedes Problem das von einer

RAM in polynomieller Zeit gelöst


werden kann auch von einer TU
in polynomieller Zeit gelöst werden kann

Sagt Jede TM deren Laufzeit durch


Hut beschränkt ist kann durch
eine im log Kostenmaß durch
Ol Hust logt Hutter Zeitbeschränkte
RAM simuliert werden

Beweisideen TM umbauen dass Kopf


so
wie weiter nach links geht ab
zur Startposition
alles durchnummerieren
Zustände Q dato oft
Bandalphabet F an as

Zellen auf dem Band


Startposition ist 0

Register 1 Kopfposition

Register 2 Zustand Index

Register 3 Zeichen an

Kopfposition Index

Unterprogramme mit goto


für Zustandsübergänge

Fazit LEE von TM berechenbar

L von RAM berechenbar

und Lin pol Zeit von TM berechenbar


F
in pol Zeit von RAM berechenbar
AI I Kap 12.3 4 12
go
3 2.3 TM RAM
Church
Turing These
Def Für TM M sei f µ Stufe
die Fkt die
für jede Eingabe we

angibt welche Ausgabe 14 Produziert

Wenn M für w nicht terminiert


ist
fmlwt
t.DE f
Eine Funktion

heißt ber chenbar wenn es eine TUM


mit
gibt
fan f
M muss immer terminieren

f berechenbar mit TM

5 berechenbar mit RAM


Es ist kein Rechner modell
bekannt das mehr berechnen
kann als eine T.tl

siehe unconventional computing

Physikalisch Church The


Turing
Die Gesetze der Physik erlauben es
nicht eine Maschine Zu konstruieren
die eine Fat berechnet die nicht
auch von einer Ttl berechnet werden
kann

Spezialfall Entscheidungsprobleme
TM 14 akt M
WE wenn
auf
w terminiert und 1 ausgibt
3 2.4 Mächtigkeit endlicher Automaten

0M nen
E 01 0011 000111 E

001

DFA kann sich die Anzahl der


Nullen nicht merken

Setz Es keinen DFA der


gibt
entscheidet
Beweis Annahme Es gibt einen DFA µ
für
Sei Q die Zustandsmenge von M

Q ist endlich

Betrachte die Wörter

E 0,0 05,04 QQ
latte
w 9
q
0 der von
q aus durch Lesen von
W erreichte Zustand g
O
Da wir late
E 002
0 Wörter betrachten
gibt es einen
03 Zustand
so dass

j ECq.io d Cao.oD
für Hj
für

0 1
13 Ö1 3

Da 14 entscheidet

Ö1 EF
f
Menge der akt Zustände

8
9
051 8 5 4,05
E

Iii
8 8 4,0 e

go ö EF

ND M akzeptiert Ossi
obwohl Öli a

aufpumpen
01 011 00 WO 01 011 011 011 00

9
4 01 00

Daspumping rma

Aussage der Form


Wenn L von DFA entscheidbar

dann gilt X
Wenn A dann X
Wenn nicht X dann auch nicht A
Lehman Seil eine
Sprache
die von einem DFA M
entschieden werden kann
Dann
n 71

tz EL mit IH 7h

ä c
ZEIGT
so dass i30 gilt
0100 EL
01 011011 EL UV w E L
Sei 14 DEA für L
Beweis ein

Zustandsmenge Q n IQI
Sei 2 nun ein beliebiges Wort
der Länge 7h
Beim Lesen von
i Zeichen sehe
1 it 1 Zustände
ich

wenn ich z

Lese tz tz n

dann sehe ich nett


Zustände

mind einen Zustand sehen


wir mind Zweimal

Sei Ä der erste Zustand


den ich zum 2 Mal erreiche

70J

u
Präfix von Z bis zum 1 Erreichen
von E
Zeichen die bis zum 2 Erreichen
von
F
w Rest

nun

EL

Beobachtung go
u

Ein D
8
4 u

0 4 nrw EF u

7 DIA für LE 2

D 3 n 1
H 2 EL 12 17 n

Zerlegung E aww

lauten hi

Hi 0 nuiw EL
Wirbenutzendees Hn 71
2 EL IH 7h

zerleg c
3 i 70 ni w L

Es keinen DFA für


gibt
Le

Beispiele 044 i o

Sei n gegeben
Betrachte 2 Öl
sei nrw eine mit
Zerlegung
laut Eu tut 1

Ö n und er bestehen
nur aus Nullen

IN l WEM
l n
Ol OM on
m
2 q

e
Wähle i 2 Oeomomon n.sn
0mm 1 El L
e
klähle i O Ol on nun
on wie

weh 0,1 I w wie

Sei m gegeben

2 0 1 0

Sei 2 nrw gegeben

NU En tut 1

u und v enthalten nur Oen

Wähle i O

nur 0 10 El le

D Es keinen DFA
gibt für Le

Erinnerung Le kann von TM RAM


entschieden werden
DFA
4
II Täter
naheffaten binäresder 7
TMS
Ja

Veranstaltungshinweis

Weinachts

von

vorlesung

apl Prof Dirk Horstmann

Fr 13.12 16 Uhr

Hörsaal des math Instituts

3 SC ky Hi varchieluDS 3.1 9.12

Ein kleiner Ausflug Grammatik


Im Bereich der formalen
Erlang
Sprachen viele Begriffe analog
zu natürlichen Sprachen doch

die Vergleiche hinken

Wirstelle
fi
Tabellenkalkulation Benutzer
gibt eine Zeichenkette ein
1 Ist das eine Zahl
2 Ist das eine Formel
Wie drückt man die Regeln aus nach denen
Zahlen und Formeln gebildet werden

D Grammatiken
Zahl 70 mit führenden
Beispiel ganze
kannersetzt oder Nullen
Startsymbol S werdendurch
E 05415,25 35,45
5s Gs 75 85 95

Dies ist eine Grammatik G Zu 2cg


gehören alle Wörter die man durch ableiten

erzeugen kann S 15 195 19


s 95 S

Os ES s OS
Oos
S E
00

Komma zahlen S Z Z

Z OZ LZ 27,37 47
5762,72 82,97 E

Was kann man so


erzeugen

S Z Z OZ 2 0 Z 0.82 30.8
2 OZ Z E Z 787 2

Z 2
2
OZ z
Oz
ES 2
01 z 2
it ZH
01.2 301
2

Wichtig Ableiten muss zu einem Wort in E


führen Variablen müssen eleminiert werden
Eine Grammatik besteht
Def G aus

10 9 einem endlichen Alphabets


Terminal
2 6 9 Symbole

S 2 einer endlichen Menge von


Nichtterminalen Variablen V

Start symbol Sev und

einerendlichen Menge von

Ableitungsregeln P
Paare e r mit
nur Variablen
LE Wt mind eine

RE u 2 beliebigeFolge
von Terminalen

und Nicht terminalen


auch E erlaubt

Wir schreiben l r

als l r
und Ihn Kr Hrt
als l h rt

ArithmetischeAusdrücheltt
yt 2

0,1 9 r
C X y

S Z A

Ableitungsregeln
S A Sts Srs

tz
ganzen
S A Z 42

S Sts St s s

Ä AHA AD

x x 8 y
Wichtiges Anwendungsfeld
Syntax von Programmiersprachen

Die Chomsky Hierarchie


Einteilung von Sprachen Grammatiken in Klassen

Eingeschränkt wird die Form der


Ableitungsregeln

Alle Ableitungsregeln haben die Form


Typ
reguläre A v mit
Grammatiken
AeV genau eine
rechtslineare Variable
Grammatiken und v E
oder
AB AEG
BEV

5 E 05 15 95 reguläre
Grammatik
Form A mit
Typj v

kontextfreie A EV genau
eine

Grammatiken Variable
Elw 2 beliebigeFolge
von Variablen
und Terminal
Zeichen

5 Z 2 in regulärer

Grammatik
verboten

als Abtregeln sind erlaubt


typ
kontextsensitive S e

Grammatiken
Regeln der Form v

mit Intent und

n E mind eine
Variable
Folge von Variablen
aber nichts und VE Vu 5
Terminalzeichen

AB A Xy aber BB BXY gibt's


nicht
Tel keine Einschränkungen

Z Z A 0.0113

Beispiele
a
LIG 0m14 m neu Lz
s S Os 51,051 E

0,1
S 051 00511 000511
s 7051 s OS

0000511 000011
Sos s

Typ 0

Achtung Eine Sprache


Typs kann von vielen
2
Typ verschiedenen Grammatiken
3 einengt werden Nicht
Typ
DieseGrammatik ist nicht regulär Typ eindeutig

Aber
Haris
ää
B E 1B Typ 3
s

ES 0A 00A 00

S 1B 1dB 111 B 111

S 0A 00A 00013 7 000dB

0001

b F s S E 051
kontextfreie
Grammatik
S 051 00511 oo ey

497 20 1 1 NEIN

Gibt es für diese Sprache


eine reguläre Grammatik

c V Es S e
0,1 050 151
g wedo.is lw w
kontextfreie
La
Grammatik
Def Wir nennen eine Sprache die es eine
für
reguläre kontextfreie Ihontextsensitive Grammatik
Typ3 Typ Typ 1
gibt eine
reg.lk.fr h.s Sprache

IPO kontextsensitiv L förilmo

ü üü

11.12.19

Ankündigung

Eine ProbeKlausur wird in der

letzten oder vorletzten Vorlesung woche

veröffentlicht

Grammatiken Why

Terminale E bla ba butiiblus

bla ba buh bleib

Variablen LS A

Ableitungs P

regeln S blas bat

Kr s buhlt

l tut A blub

re Vu 2

S blas blablas

bla bla Sbuh A

blablabatt buhlt
Elly

blablabablubbuhblub

LIG E IT alle Wörter die mit den Regeln in P

abgeleitet werden können

E E 1

Typ
Sprachen
Typ
sprachen
Typ
Sprachen
E
Typo
Sprachen

regulär kontextfrei kontextsensitiv allgemein

A E A u

p p gleich
EV

EV Vu l

1 AB
uf
darf

in mehrere

EU EI EV Variablen
enthalten

Beispiel Lg ähneln o

Grammatik für Lg

S e noch nicht

s abc

kontextsensitiv
Ist

S as Be

141

CB Bc nach unserer

BB bb

Definition

Wörter ableiten

3 3 2

S a SBC das Bc Bc aaabcBc.BA

4 4 4

aaabB.cc Bc aaabBCB.cc aaa.to 3Bcc

5 5

aaabbB.cc
aaabbbccatbn.cn

Lg C

D S c

S E'abc

u 1

3 3 3

n 2 S a S Bc a a as Bc Bc

mit n 1

2 4 4

a abcbc.r.lk a ab B Bc i c

m 1 U n

übe

Beweisskizze dass abgeleitete Wörter in Lg sein müssen

Invarianten a Anzahl a Anzahl B t Anzahl b

Anzahl c

b Das Wort beginnt mit einem

Präfix uns ab und weitere

a's kommen nicht vor

c bis zur ersten und

einzigen
ab

Anwendung von S c

das Wort keine b's

enthält

s E verhindertTerminierung

Zu diesem Zeitpunkthaben wir

also a abc

Wort aus

B's und c's

Das Wort

Ab jetzt gilt

beginnt mit a ab b

enthält keine weiteren

und

a's und b's

Der Prozess kann nur enden

wenn alle Bb eleminiert

werden so dass das Wort die

Form a ab be c haben muss


Grammatik kontextfreie
Grammatiken

S als Abtregeln sind erlaubt


E

µ S abc S E

Ist S as Be
Regeln der Form tv

141 CB Bc mit IN EIN und

15 BB bb neu ve Kvv E 5

Das können wir korrigieren

s Er X
Das

ist nun eine

X AB'C aXBC

B Bc kontextfreie

B'B B'B
Grammatik

B b

reguläre Sprachen 4 204 1min70

kontextfreie Sprachen 044m70

c kontextsensitive Sprachen 0424 0

Haben gesehen regulär kontextfrei

Lg kontextsensitiv

Ist auch regulär bzw kontextfrei


fast ohne Beweis

Einordnung

Satz sei L

eine Sprache

1 Es gibt eine Typ 0 Grammatik

mit L

dann

semi LIG genau

entscheidbar
eine TU M

wenn es
gibt

langes die alle weh akzeptiert

Band

WEIL nicht terminieren

aber
für

muss

2 Es gibt eine Type Grammatik für L

0cm mit LCS L dann wenn


genau

Speicher

eine nicht def TM M gibt die L entscheidet

und deren Platzbedarf linear ist

3 Es gibt L
eine
Typ2

Grammatik für

Keller genau dann wenn es

nicht def Keller automaten

Stapel gibt

Stade der L entscheidet

aut.EE

ons

die

kann

man

nicht
0 wir

zugreifen Für jede 1 nehmen eine

u 0 wieder runter

Wenn am Ende Stapel gleichzeitig

leer wie Wort zu Ende dann

Worte öd In 703

0h1 2

4 Es gibt eine Typ 3 Grammatik

L genau dann
für wenn

es einen DFA der


gibt

L entscheidet

Beweis 4 eine
nur
Richtung

Sei 2 eine Sprache für die

wir einen DFA M kennen

Beispiel

21

o o

go 91192 10,1 S

F go ge

0m14 m

KM NEIN

Grammatik für UND konstruieren

Q go.ge 3 9 9

Z übernehmen 2 20,1

5 90

für def a nehmen s 05,19K

wir die Regel Qi 194002

in P I

q aq auf I Q 719,002

und EF die
Hq

Q2 ist in dieser

Regel q E I
Grammatik nicht

sehr sinnvoll

aber auch nicht

Schädlich

Falls war wer EL dann durchläuft

µ irgendwelche Zustände go ze An

mit zu EF

In unserer Grammatik gibt es also

folgenden Ableitungsweg

Elze W2 Zz wo 2 WzZz

Wie we Witz

Wz w

Zu E

Andererseits liefertjede Folge von

Ableitungen einen Pfad im DFA

semi entscheidbar

Typ
entscheidbar

Dumping Lemma für kontextfreie Sprachen

Für jede kontextfreie Sprache


Saft L

n 71

F 2 EL mit Izt zu

zur wxy mit

Zerlegung

ludst und IvwXI En

i 0 uviwx.ly E L

Wir verwenden das wie das andere Pumping Lemma

Wenn An 1

7 2 EL mit IH 7h

A Zerlegungen Z uuwxymitlvltlxlzt.lv wxten

3 i 0 uviwxiy L

Dann ist 2 nicht kontextfrei

Lg dörizilizo

Sei n
gegeben

Wir wählen z 0 1 2 C Lg

Sei uvwxyie.me Zerlegung mit htt 1 171 Wurden

Wir wählen i 2

Wie sieht nu wily aus

Ivw En

D kann Oen den und Zen enthalten

Vw
nicht

0 01 12 2

Da MHH 71 wird in nu wie etwas

vervielfacht was nicht alle Ziffern enthält

wx2y enthält nicht alle Ziffern

m.tw

gleich oft

D Lg ist nicht kontextfrei

Fazit Chomsky Hierarchie

semi entscheidbar
Typ entscheidbar 9

iii

Kellerautomat
TM 0cm immer
stoppt
TM mit Band
langlater
TM darf bei pl

Bisher Im Wesentlichen Betrachtung


der Berechenbarkeit
3 3 Komplexitätstheorie
e

Wie viel Zeit Platz wird benötigt

um ein Problem zu Lösen

eE positive Ergebnisse
ftp
Koskumaß obere Schranken
Heapsort benötigt Oculus Zeit
ND Sortieren in an Ign möglich
0C
Das Rucksackproblem kann in
Zeit an t gelöst werden
i
Ruchsachgröße
Komplexitätstheorie negative Ergebnisse
untere Schranken

1C Vergleichsbasierte Sortierverfahren
benötigen RCnlogn Schritte

Unser Hauptinteresse

Rechenzeit
polynomieke vs exponentielle
n
log n 2 1 000001
L 42 Ä 3
Für jede Wahl zweier konstanten und d
wächst c asymptotisch schneller als nd

1.01

10 In
10
0
1,10 natürlich möchte man

n 100 10 2,70 in der Regel auch keinen


h 1.000 10 20959 Algorithmus mit Laufzeiten
ne 10.000 1040 1,6 1043
n 100.000 1050 1,4 10432

Für cand ist c sehr viel


besser als d

2,5 ni zu
3
n 10 9537 1,0210
9 15
n 300 241.101 21 20.10

Wir betrachten grundsätzlich


Achtung
worst Case Laufzeiten

Laufzeit einer Teeei tun III teilw


w ist die Anzahl
µ

an
Zustandsübergängen
bei von w
Abarbeitung
bis zur
Terminierung

Definition Eine Sprache L liegt in der

Komplexitäts klasse P wenn es

eine M und
Turingmaschine eine
Konstante WEN M
gibt so dass

L entscheidet und tun e Olm

gilt
und Klasse aller in polynomieker Zeit entscheidbaren
Sprachen

Sprachen algorithmische
Probleme
Beispiel Cliquenproblem

Def In einem ungerichteten Graphen G IV E

a o ob

d
e

ist eineClique eine


Teilmenge VEU
so dass Hu EU Luv E E ist
Ä
off
c
in_

Clique Clique Clique keine


Clique

Dreivarianten
Optimierungsvariantelgegeben
G CUE
gesucht eine
Clique mit so vielen
Knoten wie möglich

b
Wertuariantelgegeben
G CU E
Gesucht das größte so dass es in G eine
Clique mit htt Knoten gibt 4
c
Entscheidungsvariante
Gegeben G CU E und ein Wert KEIN

Entscheide ob in eine
Aufgabe es
G Clique
mit mindestens k Knoten gibt

5 nein

4 ja
3 ja

Entweder für alle drei


Satz gibt es

Varianten des Cliquenproblems


polynomieke Algorithmen oder für keine

a D b c sind einfach
Bestimmen des Werts mit Entscheidungs
Variante

es gibt nur mögliche Cliquengrößen


n

wo alle ausprobieren benötigt n Aufrufe


des Algorithmus für die Entscheidungsvariante
no Wenn jeder Aufruf psynonielle Laufzeit
hat dann ist auch die Gesamtlaufzeit

polynomial
up c D b
Bestimmen einer größtmöglichen Clique
mit Hilfe eines Algorithmus A
für
die Wertuariante

Optimist
1 k A G Wertuaria te
Lösen

2 V dus vn

3 für alle i E 1 n

4 Sei der induzierte


g
Teilgraph mit KnotenmengeVIdv
5 Wenn Al G Hi
dann VIVI Lui löschen

6 Return V

von NEU induzierter Teilgraph G V E


a b
o_0 E dar EEIu.net
1 b
V a die
die
Wert sinkt von 4 auf
c bleibt in v
Der Algorithmus benötigt htt

Aufrufe von A so dass sich auch


hier die pol Laufzeit überträgt
Detailliertere Überlegungen im Skript

Wir ziehen also


uns
auf Entscheidungsprobleme
Zurück Diese können wir durch Sprachen
modellieren

Entscheidungsproblem Sprache
Berechne f 20,1J Kh we I fort

Probleme in der KomplexitätsKlasse P

Ist BFS DFS


G zusammenhängend

einen Spannbaun in mit Kosten k


Gibt es 5
6 min Spannbauen berechnen

ProblemeidienichtinPsind wir
Probleme denen
von
vermuten dass sie nicht
in P sind

Entscheidungs variante des Cliquenproblems


Exp Zeit algorithmus Für gegebenes G und k
alle Teilmengen der Größe k

darauf testen ob sie eine Cliquesind


2 7 Teilmengen

Cliquentest polynomial

Langzeit RILEY no das


ist
nicht polynomid
in der EingabeLänge

Graph in IT Hog

Adj darstellung
Niemand weiß ob es einen pol Algorithmus

für das Cliquenproblem gibt


Rucksackproblem Rucksack mit Kapazität t
Nuhenwerten pa Pn
Gewichten we Wu
Wert z

Gibt es eine Auswahl I E 21 in


so dass Wi E t und Pi 2

Algorithmus mit dyn Programmierung

benötigt im uniformen kostenmaß Ol n.tl


Sieht doch polynomied aus


Eingabe Ps Pn wa um t

Annahme alle Zahlen mit n Bits kodiert

EingabeLänge 2121 1 u n

Problem Laufzeit hängt t ab


von

und t kann bis zu 2 1


groß sein
0 In t ist dann nicht
polynomied in it
ähnlih zu RAM Beispielprogramm
was
Eni ineffizient ausrechnet

NP
p
NP
äProblem
18 12.19
Probleme von denen wir vermuten dass
sie nicht in P sind

Cliquenproblem
Rucksackproblem Rucksack mit Kapazität t
Nuhenwerten pa Pn
Gewichten we Wu
Wert z

Gibt es eine Auswahl I E 21 in


dass E t und Pi 2
so
EE Wi

Algorithmus mit dyn Programmierung

benötigt im uniformen kostenmaß Ol n.tl

Sieht doch polynomiell aus


Eingabe Ps Pn wa um t

Annahme alle Zahlen mit n Bits kodiert

EingabeLänge 2121 1 an n
Problem Laufzeit hängt t ab
von

und t kann bis zu 2 1


groß sein
no 0 In t ist dann nicht
polynomied in it
ähnlih zu RAM Beispielprogramm
was
Efi ineffizient ausrechnet

iiii
Dieklasse NP

N nichtdeterministisch

NP nichtdeterministisch polynomial

Nichtdeterministisch Ratende Maschinen

Eine nichtdeterministische Turingmaschine


Def
besteht aus Q end Zustandsmenge
2 Ein Ausgabe alphabet
f Bandalphabet EM
Leerzeichen DEM WEIT
go Startzustand
Endzustand
d Zustandsüberführungsrelation

SEHQlfg.IM xlQxTxE4N.R
Def Ein nichtdeterministischer Automat besteht
Q 2,9 0 Flanz Zustände und
NFA aus
es Zustandsüberführungsrelation

SE Qx E Q

Idee Maschine rät den Rechenweg und


akzeptiert g du es einen chez Weg gibt
Beispiel Ln w
0w.tw 4i3IwEEo.B
alle Wörter mit an Buchstaben
deren n letzter Buchstabe
eine Null ist

n 3 0100011 E 23
000 E
23
Oh
23
Endlicher Automat für n 2
1
War Übungsaufgabe mit Statt 0
Blatt 9 1b
Nichtdeterministischer Automat für Ln
an für fixes a

0
start

aus zwei Kanten heraus


go gehen
die mit 0 beschriftet sind
Übung Jeder DFA für hat 32 Zustände

Wenn es einen NFA gibt der


Benjy L entscheidet dann auch einen DFA

Bemerkungen Eine reguläre Grammatik lässt


sich leicht in einer NIA umbauen
zu Beweis
von Satz A 0A OB 0C IBO

Den NFA kann man dann in

einen Größeren DFA umwandeln

Turingmaschinen

SEK Qldfdxtyxlqxrxdl.N.RS
Für
q und
ein ein a kann es in einer
NTM also verschiedene Tupel q a D
geben jedes Tupel kann einen anderen
Folgezustand angeben einen
Buchstaben
anderen das
auf
Band schreiben und den Kopf
anders bewegen
Auch möglich Es kein Tupel
gibt gar
für g a so wie im

obigen Beispiel
NFA.DE
Eine nichtdet TM akzeptiert ein w e Es
wenn es mindestens einen Rechen
weg
von M gibt der w akzeptiert für den also
am Ende an der Kopfposition eine 1 steht

M alle WEG einen


für die es
akt Rechenweg gibt

wenn ein Rechen in eine Konfiguration


weg läuft
in der der Zustand q ist und a gelesen wird
es aber kein passendes Tupel gibt dann endet
der Rechenweg und ist nicht akzeptierend

einer nichtdet
Def Die Laufzeit teilw Tun

auf einer Eingabe well ist die Länge

des künesten akzeptierenden Redienwegs

Für WE Ll definieren wir teilw 0

Wie bisher tun ugynte.lu


Veranschaulichung für ein akreptiertes Wort

CENTER qin
Ha

9h7 Rechenwege
kürzester alez Rechen
weg
Ein Entscheidungsprobleml gehört
Def dannNP wenn es eine
zu
genau
nichtdet TM M und eine Konstante KEIN
gibt so dass UM L und tun Oli
gilt
p

Satz Die Entscheidungs variante des


g
Cliquenproblems liegt in NP HH
3
Beweis Eingabe 9 14 E KEIN
2 phaseu.FM

1 Phase Auswahl einer beliebigen


Teilmenge der Knoten

FFt ttt.tt z.B indem zunächst n mal


das Band geschrieben
auf
A a
wird und dann mit
I 0 L und
Iq Iq
af 91,4 nichtdet

alle durch 011


ersetzt werden
to TM rät ELO 13
2 Phase Testen ob 7h Knoten
ausgewählt wurden

eine
Eat EE
Teils ein Graph der Clique C mit Kkk
Knoten enthält wenn µ
G verarbeitet
kann in Phase 1 C geraten werden und
in Phase 2 wird dann festgestellt dass
Ich h und C eine Clique ist

Wird Phase A eine


andererseits in
Knotenmenge K geraten die in Phase 2
die Tests besteht so ist keine
Clique mit In h

µ akt also genau die G die


eine
Clique mit 7h Knoten enthalten

Laufzeit Phase 1 benötigt nur

Zeit 04
Phase 2 ist polynomial
Laufzeit ist polynomial
no
Clique END D

Benjy Obige NTM hat eine

Rate und eine Verifiziere


Phase

Die Angabe der Clique ist ein Beweis'fzertifikt

dass die Antwort ist


ja
Diesen Beweis können wir in polynomieker
Zeit überprüfen

Idee Zertifikat polynomial lange


Zeichenkette
kann in pol Zeit
überprüft werden

es existiert ein Zertifikat


genand ann wenn

die Antwort ja ist


fat Eine
NP
Sprache ist genau
enthalten wenn es
dann in

eine def.TN gibt genannt Verifizieren


und eine Konstante KEN
so dass tv n O Cnn
ein Polynom p gibt
und für alle XE
gilt
el D Es gibt ein Artificial
Y E do 1
mit
lyltp.CIxD
und V akzeptiert
X Y
1
Äeweis
Eingabe

beliebiges Zeichen
dass im Eingasealph von

ist aber nicht in

Beweis Übung

Fröhliche Weihnachten 53
Informatik II
Wintersemester 2019/2020

Melanie Schmidt
Abteilung Informatik
Department Mathematik/Informatik

18. Dezember 2019

1/8
Millennium-Probleme
I ausgerufen vom Clay Mathematics Institute (CMI) in
Cambridge (Massachusetts)
I Lösung wird jeweils mit einer Million US-Dollar belohnt

1. P vs. NP Problem
2. Riemann Hypothesis
3. Yang–Mills and Mass Gap
4. Navier–Stokes Equation
5. Hodge Conjecture
6. Poincaré Conjecture
7. Birch and Swinnerton-Dyer Conjecture

2/8
Trivia
Die Poincaré Vermutung wurde 2002 von Grigori Perelman
überraschend bewiesen. Dieser
I veröffentlichte den Beweis in drei Teilen im Internetportal
https://arxiv.org/
I lehnte 2006 die ihm für seinen Beweis verliehene
Fields-Medaille ab
I lehnte 2010 den Empfang des Preisgeldes des Clay
Mathematics Institute ab

3/8
https://arxiv.org/abs/math/0307245

4/8
https://www.claymath.org/millennium-problems/p-vs-np-problem

5/8
https://www.win.tue.nl/~gwoegi/P-versus-NP.htm

6/8
https://www.uni-bonn.de/neues/da-waren2019s-nur-noch-fuenf

7/8
The Simpsons, Staffel 7, Episode 6, „Treehouse of Horror VI”

Elementary, Episode 202, „Solve for x”

8/8
Wiederhol
Definition Eine Sprache L liegt in
der KomplexitätsKlasse P wenn es
eine DTM M und kein gibt
sodass L von M entschieden wird und

tun c 0 n

Eine L liegt in
Definition Sprache
NP wenn es eine NTM M und
eine Konstante KEIN gibt sodass M

akzeptiert und tun c


Oki

PE NP
Erinnerung Eine NTM akzeptiert
ein Wort we
genau dann wenn

es einen endlichen Rechenweg gibt


der in einer akzeptierenden Konfiguration
endet
wechsle zu
9 o.O
Iii
schreibe 0
gehe nach links

h
1

akzeptierende
µ
Rechenwege
kürzester alot Weg
Die Rechenzeit einer NEU ist
gegeben durch die Länge eines
kürzesten akzeptierenden Pfades

Alternative Charakterisierung von NP

Zertifikaten polynoniell lange


Zeichenkette
kann in polynomieller Zeit
überprüft werden

es existiert ein Zertifikat für


einWort genau dann wenn
es zur Sprache gehört
Satz Eine Sprache L ist genau dann
in NP folgendes gilt
wenn

es existiert eine DTM Verifiziere


und eine Konstante KEIN sodass
tv n c
Oh
es existiert ein
Polynom p sodass
für jedes c
gilt
es existiert ein Zertifikat
c L c a mit H span
y
und akzeptiert die Eingabe

1 Y
Eingabe Ratifikat
instant Beweis
V kann in polynomielle Zeit
verifizieren ob tatsächlich ein
y
Beweis für die Zugehörigkeit von

Zu List

Beispiel SAF satisfiability


Gegeben boolesche Formel in KNT
Xavier n a NI
der
Frog gibt es eine
Belegung
Variablen drei die Formel erfüllt
im Beispiel 1 XE 0 beliebig
die
erfüllt Formel

als Zertifikat verwenden


SATENT
wir eine Belegung die die Formel

afrillt n bits benötigt kann


in polynonieller Zeit überprüft
f
werden

Beispiel k Center
gegeben Graph G KE mit
metrischen Kantenkosten d E SIR o

Gesucht eine Menge von

Zentren mit Ict EK sodass


rar c
yjzdlx.cl
i

minimal ist

Entgegen Gibt es ein


CSV mit Ictsk sodass ruc SR

Beobachtung k Center c NP
als Zertifikat dient die Kodierung
einer Teilmenge Knotenvon

in polynomieller Zeit kann


überprüft
werden ob höchstens k
Knoten enthalten sind und ob
ra.DE 2 dn
Können NTMs mehr als DTMs
Nein

Satz Für jede Sprache e NP


gibt es ein Polynom r und eine

DTM M die L in Zeit 2


entscheidet
Sei LENP
Beweis
Nach Definition DTM und
sodass konstante
tun c Okt und ein

Polynom p sodass für alle c E

Xe L YEEO.BY y sp4xD
und V akzeptiert
y
Wir konstruieren M wie folgt
sei c E unsere Eingabe Wir
zählen zunächst alle yet 0,13 mit
MI SPIND auf und führen dann
der Gingabe Die
auf y
aus

Ausgabe von V wird übernommen


wenn c L dann existiert ein
Zertifikat y mit Länge höchstens
PCIN Dies wird auf jeden Fall
aufgezählt also akzeptiert µ
Wenn 4L dann existiert kein Zertifikat
und M verwirft
Mentscheidet L
Laufzeit V hat polynomielle Laufzeit
und hat
polyn Länge bezogen
y
auf IN
Bearbeitung von
y
in Zeit 9am
kein für jedes y
durchgeführt werden wobei 0 ein
Polynom ist
Es gibt 2 Bitstrings der Länge i
also gibt es
zi 2 1

Bitstrings der Länge höchstens PAN


Gesamtlaufzeit vom M ist in
r 1 1 2Pa
is Bitstrings
Für r HD PUNKT gilt
4 1
r UN 2 so 2
Zu jeder polynomiellen NEM

gibteseiweexponentielleDTM.SI
Ttip
Vollständigkeit
Redskin Mit einem Algorithmus für
Problem B des Problems A
lösen
die Eingabe für 1
polynomial
kann in polynomielle Zeit in eine Eingabe
für B umgewandelt werden auf die
direkt der Algorithmus für B angewendet
und die Ausgabe übernommen werden
kann

Beispiel
ProblemA Gegeben ist ein
ungerichteter
Graph G KE zwei Knoten
nie ev Sind u und v verbunden
ProblemB Gegeben ist ein gewichteter
V EEN
Graph G KE wir c

Gibt einen nach


es
Weg von u

t
in G mit Gewicht höchstens
Annahme wir haben bereits einen
Algorithmus ALG für Problem B
ME der
Reduktion Sei G
Wir
un

gerichtete Eingabegraph erzeugen


einen gewichteten Graphen G ME
vollständigen
d h E enthält eine Kante für jedes
Paar von Knoten aus V mit
Kantengewichten
w e
0 Gallsee E
1 falls e E
für alle e E
transformierte
Urspr Eingabe Eingabe 1
v
er
Ja
F
ab

nach
Beobachtung Der kürzeste
Weg
in G hat genau
dann Länge 0 wenn n und v im
ursprünglichen Graphen G verbunden
G
sind Andernfalls hat der kürzeste
Weg hänge 1

wir
rufen ALG auf G mit
0 und übernehmen die
auf
Ausgabe
Die Konstruktion kann in
von G
polynomieller Zeit durchgeführt werden
es müssen lediglich Kanten hinzugefügt
und Kosten gesetzt werden

Polynomielle Reduktion
T orm
efinit.is
Eine polynomielle Reduktion einer
Sprache 1 SEI auf eine Sprache
B SEI ist eine
Abbildung
Es Ei die
polynomiellerbeitberechnetwerden
und die die
kg Eigenschaft
hat dass für alle X c EF

c A 54 c B
Wir schreiben dann 1 Sp B
es existiert eine DTM Mund KEIN sodass
µ für jedes c Ei die Ausgabe
c
Ei in O HK berechnen
kann
wenn wir B lösen können können
wir auch A lösen also ist A

höchstens so schwer wie B


08.01.2020
Wiederholung

Definition Eine Sprache L liegt in der

Komplexitäts klasse P wenn es

eine M und
Turingmaschine eine
Konstante WEN M
gibt so dass

L entscheidet und tun e 0cm

gilt
D Klasse aller in polynomieder Zeit entscheidbaren
Sprachen

Ein Entscheidungsproblem L gehört


Def dann zu eine
NP wenn es
genau
nicht det TM M und eine Konstante KEIN
UM und
gibt so dass L tun Oli
gilt

P NP
Erinnerung NTM akzeptiert ein WEST
dann wenn es einen
genau
endlich
langen Rechenweg für
w
gibt der akzeptierend ist
Rechenzeit kürzester akzeptierender
Rechen 0 wenn
weg

LÄDEN Coin
Iii o oo 1A
o o o

Akt Rechenwege
kürzester akt Rechen
weg
Idee Zertifikat polynomial lange
Zeichenkette
kann in pol Zeit
überprüft werden

es existiert ein Zertifikat


genand ann wenn

die Antwort ja ist

t Eine Sprache ist genau dann in


NP enthalten wenn es

eine def.TN gibt genannt Verifizieren


und eine Konstante KEN
so dass tv n O Cnn
ein Polynom p gibt
und für alle XE
gilt
Es gibt ein Zertifikat y ELOß
el D mit lyle xD
pll und U akzeptiert

Yr
Sonder
Eingabe
Zeichen
Beweis
Beispiele SAT Satisfiability Krfüllbarkeit

Gegeben Eine boolesche Formel in DNF

lxsrxivxdnlx.vn n Fa

es eine Belegung der Variablen


Frage Gibt
für die die Formel
erfüllt ist
hier X 0 1 1 beliebig

erfüllt die Formel


SAT END Als Zertifikat verwenden wir
die Belegung die die
Formel erfüllt Diese ist nur n
lang
und
pol Zeit getestet
kann
es in

werden ob die Formel wirklich


erfüllt ist
Beispiel k center
In einem Graphen G tv E mit metrischen

Kanten kosten d also insbesondere

d y Edlx z t
Alzey ftp.ZEV
wird eine Menge CEV von Zentren gesucht
so dass 1 Cl Eh und so dass

Pic max mind Ix c


X P e

minimal ist
C
Entscheidungs variante Gibt es ein

mit Kkk so dass rlp c ER


Beob Auch dies ist in NP denn

wir können C raten und dann in

Zeit 0 n k überprüfen ob

Ich Eh und rlp c ER ist


Können NT Ms mehr als DTMs

Nein Aber was wir eigentlich wissen

wollen Können sie es schneller

Das wissen wir nicht

Satz Für jede Sprache LENP gibt


es ein Polynom rund eine DTM
xD
M die L in Zeitz
akzeptiert
Zum Beispiel können wir CLIQUE
lösen indem wir alle Teilmengen TEU
2 viele testen Ob
ITI Ehe
alle ET
für u µ

u v E E
Beweis Sei LE NP
L
up Verifizieren V für
mit dass
Polynom p so

alle C
für
X EL

3y ELO if
41 E
PC 1 1

und V akt
y
Für EI
µ Eingabe probieren wir

alle möglichen mit Länge paxD


y
als Beweis aus

Die def The M zählt also alle Wörter y Edo e

mit lyle PUK auf und führt dann V


auf y aus
Wird mind ein
y akzeptiert so akzeptiert er
das Wort w und sonst nicht

Wie lange dauert das

hat polynomielle Laufzeit und


V y hat
polynomielle Länge bezogen auf 1 1 also kann
in Zeit r'll xD für ein Polynom r
y
abarbeiten

Es gibt 2 der Länge i und


Bitstrings
PKK

pdxhtlf.ro
2 2 1 Bitstrings der

Länge 1 bis pllxD


0 Gesamtlaufzeit von M ist durch
Oli 4 1 JP beschränkt

Für r HI pHDte gilt

dicht 2K E Off D

Wir können also aus


polynomieden NTMs
exponentielle TMS machen aber wir wissen

nicht ob es auch besser ginge


3 3.4 Reduktionen und NP Vollständigkeit

Reduktion Mit Algorithmus


für
Problem B das Problem A
lösen

pol Reduktion lösen bedeutet dass wir

die in
Eingabe für poly
Zeit in eine
Eingabe für B
umwandeln diese Eingabe
in den Algorithmus stechen und
die Ausgabe direkt übernehmen

leisples Beispiel Problem A Ist die Länge des


kürzesten Wegs von u nach v

in gewichteten Graphen 9
höchstens C lang

D Wir stellen uns vor dass wir


einenAlgorithmus ALS für dieses
Problem haben
Problem B Sind und y im

ungerichteten Graphen G verbunden


Polynomielle Reduktion
Wir nehmen den ungerichteten

Eingabegraphen IV E und einengen


G
einen gewichteten vollständigen
Graphen GIN E also E Vdr
und Gewichten w E do 1 mit
wenn e E E dann wie 1 0
s
im
X und
y
in
G verbunden sind

hat der kürzeste von nach


Weg y
Länge 0
Also Rufe ALG auf G auf
und übernehme die Antwort

G in
G umzurechnen ist
in
polynomieker Zeit möglich

D A Ep B
Bemerkung In obigem Beispiel
B p A Sehen Sie
gilt auch
wieso

Um die formale Definition


Eine polynomielle Reduktion einer Sprache
BE 2
A E
EI auf eine Sprache ist

eine
Abbildung f IT II die in
polynomieker Zeit berechnet werden kann
und die die Eigenschafthat dass
AXE EI EA F D f E B

Wir schreiben dann A Ep B


In pol Zeit berechenbar 7 TM M und KEIN
dass 14 die Ausgabe fix
so
für jedes
Zeit tell xD c OCH
XE

berechnet
in
A in P ist und wir
Beobachtern
mind ein WEB und ein v B
kennen AE B
gilt Wir lösen

einfach A für die Eingabe

und wenn c A setzen wir

G sonst Das
f w
f v

erfülltobige Voraussetzungen
für pol Reduktionen
0 Insofern war obiges Beispiel etwas wittlos
da beide Probleme in P liegen und
Eingaben leicht angegeben
werden können
Jaße in
13.01.20
NA Vollständigkeitstheorie 1

Pol Reduktion A p B
Idee A ist höchstens so schwer wie B

bzgl pol Lösbarkeit


D Wenn B polynomial lösbar ist dann auch A
Wenn A nichtpolynoniell lösbar ist dann
auch B nicht

Anformales Beispiel Sei Mein mit Zahlen


Array
Ist te aufsteigend sortiert
Ep
Ist M absteigend sortiert
und andersherum
gilt es auch

Wie funktioniert die Reduktion


M andrehen dasbenötigt polynomielle Zeit

Spannender ist es Probleme zu betrachten

bei denen wir nicht wissen ob sie in P sind


A B bedeutet CAEET BEZ
Eig p
Es gibt eine Funktion
f Ef Ef
EA LED f x C B

und f ist pol berechenbar


Ziemlich strikt Antwort für fix EB muss direkt
als Antwort
für XEA übernehmbar sein

TI Seien A EST BEEF A Ep B


Ist B EP dann auch AE P
Wenn AFP dann auch B EP
Beweis Sei
f It 2 die

pol Reduktion und


Mt eine pol TM für f
BETE 3 TM Mis B die in

pol Zeit entscheidet


c
ET 0 oder 1
IM Mz Berechne mit FCH
Mf
simuliere dann Mig auf fb
XE A FO f E BF Ergebnis von Mg 1

Laufseit Polynome pq tja E plus

tiefen Egk
Laufzeit von
MAE OCqlnltplqa.tn
polynomial it

Beispielen Beschränktes kürzeste Wege Problem BKW


E
Eingabe GAU
StartKnoten set ZielKnoten TEV
O
kautenLängen w E IN
Kantenkosten c E 31N o

Obergrenzen für Länge und kosten


W und C

Frage Gibt es einen macht


von s
Weg
der höchstens W
lang ist und
höchstens C kostet
Rucksackproblem KP
Erin
Eingabe Gewichte we um EIN
Nutten µ pu E IN
Obergrenze für GewichtZ
Untergrenzefür Nutzer N

Gibt es eine Auswahl


Ty I E 21 n so dass
witz und 3N

Rodierung lfürbeideProbten Zahlen


in
fester Reihenfolge

in Binärdarstellung mit Trennzeichen


hintereinanderschreiben

Sprachen über 0,1

Theorie KP Ep BKW P

Beweis Was müssen wir tun

BMWP
Eingabe für KP in Eingabe
für
umrechnen und zwar so dass
wir das richtige Ergebnis erhielten wenn
wir Also für BKW P
aufrufen würden
Wir erhalten also eine Eingabe E für KP bestehend aus
Wei Pu Z N EIN
wa Ps
Wir konstruieren einen Graphen
G mit 4nA Knoten
0 70 0K o
so
140 70 ii 0 01
Start
know top T QP QP ziehenden
IT unbeschriftete Kanten
LängeKosten haben 0,0

P max Pi größter vorkommener


ich in Nutzen in KP Eingabe

Ä P pi wie viel weniger Objekt i


wert ist im Vergleich zum
wertvollsten Objekt
IN Z Obergrenze für
Weglänge
Rucksack Kapazität des Rucksacks
Kapazität
KP N Obergrenze für Wegkosten
P Abstand zwischen theoretischem
geforderter
Maximalnutzen und geforderten
Mindest
nutzen Mindest nutzen
Eingabe für BKWP wir nennen sie E
Gibt es einen Weg von s nacht mit

Gesamtlänge E W Z und

Gesamtkosten n.P.lu
I
E E KP D E E BKWP

1 Sei Ee KP D Es gibt eine


Auswahl IE h _in
mit wie Z
i EI

und Epi N
i EI

konstruiere einen Weg Tuars nacht


Wenn i EI ist wähle oberen

Weg also Kante w


Pi wenn i I
ist wähle unteren Weg
Kosten symbolisieren wie viel weniger Nutzen
als P wir aus dieser Wahl ziehen

Dazwischen passend die 10,0 Kanten


in den Weg einfügen

o
µ
0 0 1
0P OP OP

Beispiel für n 3 und dt 33

T hat eine Gesamtlänge von


E Z W
wi t 2 0
i EI if I

und kostet

E
E t.EE
KP
Pit
Effi
weil 7N
n P N
Also ist E C BK WP
2 Sei E E BKW P

Es gibt also einen Weg Tums nacht


mit Länge E W Z und
mit Kosten E C n P N

ÖKO o

40 70 0 1
10 P 0P OP

Beobachtung Jeder Weg von s nacht


verwendet für jedes ich in

entweder die Kante mit lwi.PT


oder die Kante direkt darunter
Wir können also eine Lösung aus dem Weg
ablesen I i I Kante mit lwi.PT
ist in Tentheiten

Diese Objektauswahl hat ein Gesamtgewicht von

EW Z
III
und einen Gesamtnutzen von

pi Ip pitzo E Ppi
IEI 5 ET
Ei E FT
w
pi P pi
etwasschlampigeNotation

T kostet
pi IP t P Epi
WilÄIET Kipi ein
Ki E EE

NP piEC n.RU
i EI T
das wissen
wir Weil
E c DKWD

Also n.TT fiEnP NFDiEEi7N


D E E KP

Es ist also mindestens so schwierig BKWP


Zu lösen wie es ist KP zu lösen

Aber ist KP denn nun schwer


zu lösen oder nicht

Das wissen wir nicht

nehmen es aber an

Wieso glauben wir dass KPschwierig ist

1 SAT Ep KP und 2 Folgender Satz

Sa

tzvonlookllevinf
a.li Ei f
Beweis siehe Skript nicht Klausur
relevant

Was
m
bedeutet dieser Satz
1 Wenn es einen polynomiellen Algorithmus
für SATgibt dann gibt es polynonielle
Algorithmen für alle Probleme in NP
2 Aus SAT Ep KP folgt
H LE NP L Ep KP

Warum p ist transitiv siehe Übung


dh aus Ep Lz und
Ep
folgt auch Ep

Also KLENP L Ep SATE KP

Def Ein Problem L heißt NP schwierig

wenn HUEND gilt L'Ept


Ein Problem L heißt NP vollständig
wenn LEND und L NP schwierig ist
Aus dem was wir oben behauptet haben folgt

SAT ist NP vollständig


SAT EN P haben wir in der
letzten Vorlesung geneigt

KP ist NP vollständig

Bk WP ist NP vollständig da
SAT Ep KP Ep BKW P

15.1.20
A

Polin p B

Idee A ist höchstens so schwer wie B

bzgl pol Lösbarkeit

D Wenn B polynomial lösbar ist dann auch A

Wenn A

nichtpolynomial lösbar ist dann

auch B nicht

tea ist transitiv d h

Ep

Wenn A Ep B und B Ef

dann ist auch A Ep C

Beweis

Übung

Satz www.c

Lerinf

aeYEiE

Beweis siehe Skript nicht Klausur

relevant

Def Ein Problem L heißt NP schwierig

wenn Alle NP gilt L'Eph

Ein Problem L heißt NP vollständig

wenn LE NP und L NP schwierig ist

Satz von Cook Kevin

SAT ist NP vollständig

Erinnerung SAT Satisfiability Krfüllbarkeit

Eine boolesche Formel KNF


GeV

in

lxsrxivxdnlx.vn n 5

es eine Belegung der Variablen

Fray Gibt
für die die Formel

erfüllt ist

hier X 0 Xs 1 beliebig

erfüllt die Formel

Was bedeutet dieser Satz

1 Wenn es einen polynomiellen Algorithmus

SAT dann
für gibt gibt es polynonielle

Algorithmen für alle Probleme in NP

2 Wenn man SAT Ep L zeigt z.B

SAT Ep KP dann folgt direkt

dass auch L Np vollständig ist

Denn Bsp SATEPUP

KLENP L Ep SAT Ep KP

also L Ep KP

Chic Keenlef

mit pol Also


für A kann

B in

pol Zeit gelöst werden

A und B sind gleich

schwer

HeuteBeispiete

Sudden

Ist es
schwierig mit einem PC

Sudokus dieser Art zu lösen

Ne Solange die Größe fest ist hat

selbst stupides Durchprobieren Laufzeit ou

Generakten

Ein Gitter der Größe nix ne

Eingaben

aufgeteilt in n Gitter

der Größe man

81

Vorgegebene Zahlen aus n

der Zellen

für einige

Fragen

können die leeren Zellen

so mit Zahlen aus 21 in

gefüllt werden dass in keiner

Zeile keiner Spalte und keinem

nein Block eine Zahl doppelt

vorkommt

Sudden
Falt ist

Generalized

NP vollständig

Iat Eine Sprache ist genau dann in

NP enthalten wenn es

gibt genannt Verifizieren

eine def.TN

und eine Konstante KEN


tv O Cnn

so dass n

ein Polynom
p gibt

alle

und für XE
gilt

Es gibt ein Zertifikat yELO.is

mit lyle xD und U akzeptiert


el D
pll

Sonder

Eingabe
Zeichen
Beweis

Ein Problem ist


Erinnerung

in NP
für jede

wenn es

Ja kurzen Beweis

Eingabe einen

Zeit verifiziert

gibt der in pol

werden kann oft Beweis Lösung

aber nicht notwendigerweise

AmBeispielsudohn

gen Man kann Leicht überprüfen ob

jemand ein Sudoku korrekt

ausgefüllt hat aber eine Lösung

zu finden erscheint deutlich

schwieriger

NP Beweis für Antwort


in

ja pol Zeit

verifizierbar

Generalizedcheno
Schach

geeignete Verallgemeinerung
von

die sicherstellt dass Spiele polynomial

sind 50 Züge Regel

lang Wiederholungen von

Stellungen

Frage Gibt es eine Gewinnstrategie für

Weiß losgehend von aktueller

Spielsituation D h kann Weiß

jeden Fall gewinnen

auf

Wie sollte ein Beweis hier aussehen

Wir müssen für jede Möglichkeit wie

sich der andere Spieler verhält nachweisen

Weiß auf jeden Fall gewinnt

dass

Situation

das macht Weiß laut unserem

Beweis
Schwarz kann

agiere
Weisen dann soll weiß
ff

dies tun

reagieren

al Hi

Das ist nicht polynomial

Wir können nicht beweisen dass Generalized

chess nicht in NP liegt

genauso wenig

wie wir bisher beweisen können

dass Pt NP ist

Wir vermuten aber dass generalizedchess

nicht in NP liegt Cabo insbesondere


noch schwerer ist als SAT usw

Polynomied oder NP

vollständig

2 Förbbarkeit

Eingabe Ein ungerichteter Graph

9 4 E

kann jedem Knoten

Frage man

entweder rot oder blau

zuweisen So dass nie

zwei Knoten

gleichfarbige
sind

verbunden

kann nicht und


werden

2 se

Dozia.I

Erfolgreich

2 Färbbarkeit kann man

tatsächlich mit einem

gierigen Algorithmus lösen

der BFS anwendet und

level weise die Knoten

rot blau einfärbt

und Zulässigkeit überprüft

3 Förbbarkeit

Wie 2 Färbt arbeit

aber mit drei Farben

iii

Ü
i

Fahrt 3 Färbbarkeit ist

NP vollständig

Letzte VL
Erinnerung

KP Ep BKWD

Fakt KP ist NP vollständig

ND BKWP ist NP
vollständig

KWP ist aber in P Dijkstra


Hamilton
Eingabe Ungerichteter Graph G N E

Gibt einen Kreis in


Frage es
G
der jeden Knoten exakt
einmal besucht Hamilton Kreis

in

mit erschöpfender

Fallunterscheidung kann man


zeigen dass diese
Graph
keinen HamiltonKreis enthält
Fakt Das HamiltonKreis problem ist
NP vollständig

Enterten
Eingabe Ungerichteter Graph G N E

Gibt einen Kreis in


Frage es
G
der jede Kante exact
einmal besucht

Haus vom Nikolaus

ab
b

muss einen Knoten

genauso oft betreten


wie er ihn verlässt
Man kann zeigen

es
gibt einen Euler kreis
o
alle Knoten haben

und
Geraden Grad
gibt nur eine 2 Hh mit faulen
es

Das können wir schnell insb


polynoniell ermitteln

VD Enterkreisproblem EP

20.01.20

NP u
tade.ge beme

SAT Satz von Cook Kevin

3 SAT SAT Ep 3 SAT

3 SAT Ep Dominating Set

Dominating SetCDs

K unter Tact.DSEph c.eu er

Knapsack
KP Ep BKWP

BKWP

98 VertexCover VD Faet 3 SAT Ep Vertex Cover

GJ

Clique Fetivertexcovertpaique

GJ HamiltonKreis itonkrei
tat.vn

Generalized Sudoku T acfi.Hamitonkaeise

pfen.sudohukas.gs

3 Färbbarkeit Fact 3 SAT Ep 3 Färbberheit

SAT

3 SAT

Hausaufgaben

DS von Sunset Sun Subset

KP

Ämter liquettamittonkreis 5

KP
Partition

Gederalized Sudoku

3 SAT EpSubset Sum Ep KP


Subset Sum
Ep Partition
Pazzte kann man aus diesen Zahlen
durch Addition einiger Zahlen
17 bilden

Ut 2
Ja 11T
81 51 21 2

Und aus diesen Zahlen 13

2 2 2 4 4 6 8 10

Nein gibt ja keine


es

ungerade Zahl
Und aus diesen Zahlen 26
3 3 37 8 8 11 11 13 14

Hm
Puzzled Subset Sum
Eingabe an an EIN Zahlen
b EIN gewünschte Summe
eine Auswahl IE dt
Fragen Gibt es in

dass b
so
Efai
Pazzi Partition
EN
Eingabe an can jj f

Gibt es eine Auswahl


Fry
I E 21 n so dass

ai

Sabsetsum
ENPHertifil.at I

ebenso Partition E NP
Facht 3 SAT Ep Subsetsum

Satz Subsetsum Ep Partition


Bene an 3
az 3

Sei also 3
ans
7
94
an an EIN und be µ 8
g
96 8
eine Eingabe für SubsetSum az 11

ag 11

ag 13
So 14

b 26
Wir rechnen alle Zahlen

zunächst zusammen 9
7
n
16
A ai 22
Er zz

Wir konstruieren eine

Partition
Eingabe für
siehe oben
af ai für i f.e.in
anti 2A b 162 26 136

ante Atb 811 26 107


Das kann man
in
Zeit ausrechnen
pol

Zu
zeigen
91 ran b Ja für Subsettem

da aka Ja für Partition

i di air Ja an an
Ja
Wir stellen uns vor

3,3 3,7 8,8 11,11 13,14 107 136

Partition Gibt es eine exakt


Zauberbox
IIIIIIII
da ü
f
136 t 13 7 3
Antwort SubsetSum
für 107
14
136
13
11 7
11 3
136 t 13 7 3 3 8 33
3
162
u
162
13
73
3
26

Also Wir haben af ai und an


2A b

und air Atb gesetzt

Summe all dieser Zahlen


2A bt Atb
ai
E ait

At 3A

4A

Partitionalgo muss also zwei Summen


mit Wert 2A bilden
Ja Edt
Menge
J htt

mit Sai Sad


ie
IED

Beobachtung auf taitz 2A b t Atb


3A 2A

Also ist eins davon in


genau
und das nicht
andere in
J
Wir nehmen an dass 9in E

ist ansonsten führe die folgende

Betrachtung mit 24 m2 durch

Setze I Laien
J
In 21 in
Wir wissen also

E a 2A Und Ea Iai tante


ie i EI
IE
und
täte di t
ZA b
Efi
F 0

Zai b
i EI

ii Sei an an b eine
Ja Eingabe
Unbset Sum d h 3 I mit Tai b
für IEI

sehe
Dann f Iv darin
was dazu führt dass
Zai b t 2A b 2A
ie

und Jai 4A 2A 2A gilt D


ICH
Betriebssystemen
Benutzer

III
Anwendungssoftware

TH
4
Computer hardware

Scheduling
Verwaltung
von Ressourcen an Programme
Prozess Programm im Studium der Ausführung

Scheduler entscheidet welcher Prozess wenn

und wie lange welche Ressourcen erhält

betrachten wir niet Synchronisation von

Prozessen
Deadlocks

Multitasking sinking
Prozess Scheduling

Ziele
Fairness niedrige Ausführungszeit
Wartezeit

g
Ankunfts Ausgabe Ende
Zeit Antwortzeit

Ausführungszeit in dieser
winzigen
Wie viele Prozessoren habe ich Mini
Sind diese alle gleich schnell Ja Einführung

preentive no preemptive

Einprozessorbetrieb

Uster F IFO
First come first serve Jobs werden bei

Entstehung an eine Warteschlange angehängt


shortest job first 5 F Prozesse mit Geschützen
kürzester Ausführungszeit werden zuerst bedient
highest response ratio next CH RN

als nächstes den Job mit maximaler Ratio

Wartezeit
Ausführungszeit

bedienen

priority scheduling Jobs kommen mit


Prioritäten und werden
anhand dieser gereiht
Informatik II
Betriebssysteme

Melanie Schmidt
Abteilung für Informatik
Math.-Nat. Fakultät Universität zu Köln

20. Januar 2020

1 / 12
Betriebssysteme

Betriebssysteme sind ein Standardthema in jedem


Informatikstudium, das wir hier nur kurz anreißen können.
Als weiterführende Literatur sei
A. S. Tanenbaum und H. Bos
Moderne Betriebssysteme
Pearson, 2016
empfohlen.

2 / 12
Beispiele für Betriebssysteme

Einige Betriebssysteme für PCs


I DOS
I Windows
I Linux-Distributionen / Unix
I macOS

Einige Betriebssysteme für Smartphones


I Android
I iOS
I Windows Mobile
I Symbian-OS
I Blackberry OS

3 / 12
Betriebssysteme

Was ist ein Betriebssystem?


Das Betriebssystem (BS) eines Rechners ist ein Programm, das die
Verbindung zwischen Nutzer und Hardware herstellt.
Das Betriebssystem schafft dem Nutzer eine Umgebung, in der
seine Programme einfach und schnell ausgeführt werden können.
→ Ein Betriebssystem muss vorhandene Hardware-Ressourcen
(CPU-Zeit, Speicher, Ein-/Ausgabe (E/A), . . . ) den
Anwendungsprogrammen zur Verfügung stellen unter
Berücksichtigung der Kriterien Fairness und Effizienz.

4 / 12
Betriebssysteme
Aufbau eines Computersystems aus dieser Sicht (Schichtenmodell)

User 1 User 2 User n


...

Compiler, Editor, . . . , Spiele, DB-Systeme, . . .


Anwendungsprogramme

Betriebssystem

Computerhardware

5 / 12
Betriebssysteme

Ein Betriebssystem
I verschleiert die Komplexität der Maschine dem Anwender
gegenüber (Abstraktion),
I stellt Benutzerschnittstellen bereit (Shell, Kommando-
interpreter, Desktop, . . . ),
I verwaltet Maschinen-Ressourcen wie
I Prozessor(en),
I Hauptspeicher (Cache),
I Hintergrundspeicher (Platte, Band, . . . ),
I Geräte (Terminal, Scanner, Drucker, Platten, . . . ),
I Rechenzeit,
I koordiniert den Ablauf von Prozessen.

6 / 12
Betriebssysteme
Was ist ein Prozess?
Beim Multitasking-/Multiuser-Betrieb ist die Verteilung der
Betriebsmittel auf die Programme von großer Bedeutung. Dabei
muss zu jedem Programm vermerkt werden, welche Betriebsmittel
wie Speicherplatz, CPU-Zeit, . . . von ihm benötigt werden. Diese
Informationen über benötigte Betriebsmittel für Programme
werden zusammen mit dem Programm selbst auch Prozess (task)
genannt.

Prozess = Programm im Stadium der Ausführung

Beim Scheduling (Belegungsplan) von Prozessen in


Multiprozessorsystemen tauchen selbst in Spezialfällen
(Nonpreemptive Scheduling) aus algorithmischer Sicht hartnäckige
Probleme auf, wie wir später sehen werden.

7 / 12
Betriebssysteme

Bei Prozessen ist das Betriebssystem primär zuständig für die


Prozessverwaltung:
I Aufteilung von Speicherplatz und CPU-Zeit
I Bereitstellung von Mechanismen zur Synchronisation und
Kommunikation unter Prozessen
I Behandlung von Verklemmungs-Situationen ( Deadlock“)

8 / 12
Betriebssysteme
Beim Singletasking (der Hauptspeicher enthält den
Betriebssystemkern und darauf aufsetzend den Command
Interpreter (CI)) wird ein aufgerufener Prozess exklusiv in den
Speicher geladen.
Bei Multiprogramming und Multitasking können neben
Betriebssystemkern und CI mehrere Prozesse gleichzeitig im
Speicher sein:
Pj
..
.
P2

P1

CI

BS-Kern

Das Betriebssystem regelt den Zugriff der Prozesse auf die CPU
→ Scheduling. 9 / 12
Betriebssysteme

Die Ziele beim Prozess-Scheduling umfassen


I Fairness (Kein Job sollte anderen gegenüber bevorzugt
werden, es sei denn, dies ist erwünscht.)
I niedrige Ausführungszeit (turnaround time) (Zeitspanne
zwischen Auftreten des Jobs und Ende der Abarbeitung;
enthält die Summe der Zeiten in Warteschlangen, der
Ausführung selbst (Bedienzeit) und der Zeit für Ein- und
Ausgabe)
I niedrige Wartezeit (waiting time) (Zeitspanne zwischen
Auftreten des Jobs und Beginn der Abarbeitung)
I niedrige Antwortzeit (response time) (Zeit zwischen
interaktiver Eingabe und Anfang der Ausgabe der Antworten
auf ein Ausgabegerät)

10 / 12
Betriebssysteme

Scheduling ist ein sehr umfangreiches Gebiet. Die auftretenden


Fragestellungen richten sich nach der Situation:
I Wie viele Prozessoren stehen zur Verfügung?
I Sind diese alle gleich schnell?
I Dürfen laufende Prozesse unterbrochen werden (preemtive
scheduling)?
I Hängen die Prozesse voneinander ab?
I ..
Wir betrachten hier nur den einfacheren Fall des non-preemtive
Scheduling, d.h. Prozesse dürfen nicht unterbrochen werden, wenn
die Bearbeitung einmal begonnen hat. Außerdem sind alle
Prozessoren gleich schnell und es gibt keine Abhängigkeiten
zwischen den Jobs.

11 / 12
Betriebssysteme

Scheduling-Strategien für 1-Prozessorbetrieb


I first-come-first-served (FCFS oder FIFO): Jobs werden bei
ihrem Entstehen in die Warteschlange eingefügt.
I shortest-job-first (SJF): Prozesse mit (geschätzt) kürzester
Ausführungszeit werden zuerst bedient.
I highest-response-ratio-next (HRN): Jobs mit maximalem
Wartezeit
(geschätzten) Verhältnis Ausführungszeit werden zuerst bedient.
I priority-scheduling (PS): Ein Job wird in die Warteschlange
gemäß seiner Prioritäten einsortiert.
Wie bewerten wir die Strategien? Zum Beispiel anhand der
mittleren Ausführungszeit: Summe der Ausführungszeiten geteilt
durch Anzahl der Jobs.

12 / 12
22.01.20
Scheduling
Als Einstieg ganz einfach
1 Prozessor
n Jobs In Du deren Bearbeitung t tn
dauern wird

Wir sollen die Reihenfolge festlegen

Was ändert sich dadurch überhaupt

Der bleibt
takes gleich
l Bsg t 9 tz 3 1
Zeitpunkt zu
dem alle Jobs
fertig sind fe f f
1 1
Sei 1 fettztsttztt
f der Zeitpunkt
Zu dem Job i fertig I Mahespan

1 1 1
f1
n ts tut tsttztts
T max
fi Er n
ich f
f

Der 2 Schedule minimiert die durchschnittliche


Ausführungszeit 11
zzung 494413
At 4th 3 6
Die Strategie shortest
Beobachtung job first
minimiert die durchschnittlich Ausführungszeit

De
LEIF
I j
F.fi Summe von ti
ti und der Bearbeitungszeit
aller Jobs die vor i

in der Reihenfolge sind

In Jin Ji Jin Jin werden


Ji Jin
dann bearbeitet

fin 2 4
ja

E Enfin LIEFEEig L Ein k e Ein

1 al
c
i

L ht n 1
tut tt

Annahme ti ti obwohl a b

tin tin

Dann sinnt die Summe durch


Tauschen von Jia und Ii
D ist optimal
SIF Ausgabe in

Online man erhält Jobs nacheinander


muss aber sofort entscheiden
Dann hat Nachteil
SIE den dass lange
Jobs verhungern können

A
T T T P
1 3,10 5 4 4

ARN Highest response ratio next ist eine

Alternative als nächsten Job einen auswählen


Wi
für den maximal ist

bisherige
Wartezeit

NETT
5 hat 15 5 hat
5
10 hat 4
10
Nun mehrere Prozessoren
mm

m Prozessoren alle gleich


Pm
u Jobs Ja In zu Beginn
Bearbeitungszeilente tn bekannt

4 legt für jeden Job einen Prozessor und


ein Zeitintervall für die Bearbeitung fest

DurchnittlicheAusführungszeit l mean finish time


n
MFT 5 EI fils fis Zeitpunkt
zu den
Ji fertig ist
in Schedules
Wenn man Jobs prioritisieren will
kann man auch die mean weightedfinish time
u

MWFTCD In 2Es wi fils


wobei wi Gewichte für die Jobs sind

Makespan Sei In der Zeitpunkt zu


Finish time
dein Prozessor Pj alle ihm

Zugewiesenen Jobs bearbeitet hat


Dann ist

FT s max
1 Ei
Tj
Ej
Ts
1
2

FT s
idle time

MFG FTCS

Flat Es ist NP schwierig einen Schedule zu

finden der optimal bzgl F TCS ist


Das gilt auch für MFTCS

Mahespan Problem MP Gegeben Jobs und einen Werth


gibt es ein Schedus mit FT Eb

Übung Partition Ep MP
Und nun Schnelle Exponentialzeitagorithmen
l
Approximations
algorithmen

1dg Finde eine Lösung die höchstens


doppelt Idreifach x mal
so teuer ist wie eine
optimale Lösung

Approxfaktor Größte Wert den

Werten
wert Opt

Beispiel Ja Jz mit E 1,4 3


ts 2
1 8 1
G to 10 4
6
tg tu 12

für irgendeine Eingabe annimmt


i
In 4 tz f
Ps 1
5
tz to
R 1
j l
10

Ps t
ts
I.li
Eq
Algorithmus Ordne den nächsten Job
dem Prozessor Pn an dessen bisherige

Jobs am frühesten beendet sind

Diesen Algorithmus nennen wir


Greedy Job Scheduling

Wir betrachten
Ju bzw den Zeitpunkt zu dem

Ju beginnt Zu diesem Zeitpunkt


arbeiten alle Prozessoren hoch

Ja
I
I
t
i i
I

E OPT TIS
OPT

D FT S E 2 OPT
1
finishing time eines optimimalen
Schedules

Satz Für einen mit Greedy JobScheduling erstellten


Schedules
gilt E PT
FSCT 2 O
Neumann Architektur
Paying von

Speicherhierarchie mit verschieden


schnellen Speichermedien

Wir betrachten zwei nebeneinanderliegende Ebenen

Cache 8 D
Hauptspeicher
schnell langsam
wenig viel

Seite 77A DA IHR


t.FI aan

Hauptspeicher besteht
aus Seilen
Cache enthält einige davon

Anfragen laufen über den Cache

Cache Miss
Wenn Seite
im lache Seitenfehler
dann dann wird Seite
im Cache kopiert
eine Seite muss
überschrieben werden

Online Anfragen kommen nacheinander

für jed Anfrage muss sofort entschieden


werden

Office alle Jobs vorher bekannt

Beka t 1 2 3 4 5 2 5 2 5

HE

11115 14
Tür

Offline 1 2 34 2 12 1 213 4
g
longest Forward Distance CFD

Ersetze immer die Seite die zum


erneut wird
spätesten Zeitpunkt angefragt

Fact LID erreicht kleinstmögliche Anzahl an

Cache Misses

12 34 5 123 5
4
1 2 35 4 5234 4

12 34 5 5234 5
12 35 4 5234 4
l
1 lache
in jedem miss
Schritt ein
Cache mist
Informatik II
Betriebssysteme

Melanie Schmidt
Abteilung für Informatik
Math.-Nat. Fakultät Universität zu Köln

22. Januar 2019

1 / 25
Betriebssysteme
Beispiel
Angenommen, es kommen während der Abarbeitung eines Jobs
drei danach zu bearbeitende Jobs mit geschätzter Ausführungszeit
9, 3 und 1 Zeiteinheiten an.

2 / 25
Betriebssysteme
Beispiel
Angenommen, es kommen während der Abarbeitung eines Jobs
drei danach zu bearbeitende Jobs mit geschätzter Ausführungszeit
9, 3 und 1 Zeiteinheiten an.
Bei der first-come-first-served Startegie wird zuerst der Job mit
Laufzeit 9, danach der mit Laufzeit 3 und schließlich der mit
Laufzeit 1 abgearbeitet. Für diese Reihenfolge beträgt die mittlere
Ausführungszeit (dieser drei Jobs)
1 34
3 (9 + 12 + 13) = 3 = 11 31 Zeiteinheiten.

2 / 25
Betriebssysteme
Beispiel
Angenommen, es kommen während der Abarbeitung eines Jobs
drei danach zu bearbeitende Jobs mit geschätzter Ausführungszeit
9, 3 und 1 Zeiteinheiten an.
Bei der first-come-first-served Startegie wird zuerst der Job mit
Laufzeit 9, danach der mit Laufzeit 3 und schließlich der mit
Laufzeit 1 abgearbeitet. Für diese Reihenfolge beträgt die mittlere
Ausführungszeit (dieser drei Jobs)
1 34
3 (9 + 12 + 13) = 3 = 11 31 Zeiteinheiten.

Die shortest-job-first Strategie wählt die umgekehrte Reihenfolge


und die mittlere Ausführungszeit ist
1
3 (1 + 4 + 13) = 6 Zeiteinheiten.

2 / 25
Betriebssysteme
Beispiel
Angenommen, es kommen während der Abarbeitung eines Jobs
drei danach zu bearbeitende Jobs mit geschätzter Ausführungszeit
9, 3 und 1 Zeiteinheiten an.
Bei der first-come-first-served Startegie wird zuerst der Job mit
Laufzeit 9, danach der mit Laufzeit 3 und schließlich der mit
Laufzeit 1 abgearbeitet. Für diese Reihenfolge beträgt die mittlere
Ausführungszeit (dieser drei Jobs)
1 34
3 (9 + 12 + 13) = 3 = 11 31 Zeiteinheiten.

Die shortest-job-first Strategie wählt die umgekehrte Reihenfolge


und die mittlere Ausführungszeit ist
1
3 (1 + 4 + 13) = 6 Zeiteinheiten.

Berechnet SJF stets eine Reihenfolge der Jobabarbeitung mit


kleinster mittlerer Ausführungszeit?
2 / 25
Betriebssysteme
Ja! Satz: SJF berechnet zu einer Folge von n Jobs mit
Ausführungszeiten t1 , t2 , . . . , tn eine Abarbeitungsreihenfolge mit
minimaler mittlerer Ausführungszeit.

3 / 25
Betriebssysteme
Ja! Satz: SJF berechnet zu einer Folge von n Jobs mit
Ausführungszeiten t1 , t2 , . . . , tn eine Abarbeitungsreihenfolge mit
minimaler mittlerer Ausführungszeit.
Beweis: Die mittlere Ausführungszeit bei Abarbeitung der Jobs in
Reihenfolge Ji1 , Ji2 , . . . , Jin beträgt:
n k n
1 XX 1X
tij = (n + 1 − k)tik
n n
k=1 j=1 k=1

3 / 25
Betriebssysteme
Ja! Satz: SJF berechnet zu einer Folge von n Jobs mit
Ausführungszeiten t1 , t2 , . . . , tn eine Abarbeitungsreihenfolge mit
minimaler mittlerer Ausführungszeit.
Beweis: Die mittlere Ausführungszeit bei Abarbeitung der Jobs in
Reihenfolge Ji1 , Ji2 , . . . , Jin beträgt:
n k n
1 XX 1X
tij = (n + 1 − k)tik
n n
k=1 j=1 k=1

Dieser Ausdruck wird minimiert, wenn


nti1 + (n − 1)ti2 + · · · + 2tin−1 + tin
minimiert wird.

3 / 25
Betriebssysteme
Ja! Satz: SJF berechnet zu einer Folge von n Jobs mit
Ausführungszeiten t1 , t2 , . . . , tn eine Abarbeitungsreihenfolge mit
minimaler mittlerer Ausführungszeit.
Beweis: Die mittlere Ausführungszeit bei Abarbeitung der Jobs in
Reihenfolge Ji1 , Ji2 , . . . , Jin beträgt:
n k n
1 XX 1X
tij = (n + 1 − k)tik
n n
k=1 j=1 k=1

Dieser Ausdruck wird minimiert, wenn


nti1 + (n − 1)ti2 + · · · + 2tin−1 + tin
minimiert wird.
Letzterer Ausdruck wird aber offensichtlich für
ti1 ≤ ti2 ≤ · · · ≤ tin−1 ≤ tin
minimiert, d.h. bei jeder von der SJF-Strategie gewählten
Reihenfolge. 3 / 25
Betriebssysteme

Die SJF-Strategie hat aber den Nachteil, dass sie das


Fairnessgebot nicht beachtet. Bei kontinuierlich entstehenden
neuen Jobs kann es zum Verhungern (starvation) eines Jobs mit
hoher benötigter Ausführungszeit kommen.

4 / 25
Betriebssysteme

Die SJF-Strategie hat aber den Nachteil, dass sie das


Fairnessgebot nicht beachtet. Bei kontinuierlich entstehenden
neuen Jobs kann es zum Verhungern (starvation) eines Jobs mit
hoher benötigter Ausführungszeit kommen.

Bemerkungen zu HRN und PS

4 / 25
Betriebssysteme

Die SJF-Strategie hat aber den Nachteil, dass sie das


Fairnessgebot nicht beachtet. Bei kontinuierlich entstehenden
neuen Jobs kann es zum Verhungern (starvation) eines Jobs mit
hoher benötigter Ausführungszeit kommen.

Bemerkungen zu HRN und PS


I highest-response-ratio-next (HRN)
HRN bevorzugt Jobs mit kurzer Ausführungszeit. Mit
zunehmender Wartezeit steigt aber auch die Präferenz für
Jobs mit langen Ausführungszeiten.

4 / 25
Betriebssysteme

Die SJF-Strategie hat aber den Nachteil, dass sie das


Fairnessgebot nicht beachtet. Bei kontinuierlich entstehenden
neuen Jobs kann es zum Verhungern (starvation) eines Jobs mit
hoher benötigter Ausführungszeit kommen.

Bemerkungen zu HRN und PS


I highest-response-ratio-next (HRN)
HRN bevorzugt Jobs mit kurzer Ausführungszeit. Mit
zunehmender Wartezeit steigt aber auch die Präferenz für
Jobs mit langen Ausführungszeiten.
I priority-scheduling (PS)
Bei statischen Prioritäten können Prozesse wie bei SJF
verhungern. Das kann mittels dynamischer Prioritäten-
zuweisung verhindert werden.

4 / 25
Betriebssysteme
Wir betrachten nun non-preemptive Scheduling in
Multiprozessorsystemen.

5 / 25
Betriebssysteme
Wir betrachten nun non-preemptive Scheduling in
Multiprozessorsystemen.
Szenario: Wir haben m gleichartige Prozessoren P1 , . . . , Pm , auf
denen n Jobs J1 , . . . , Jn mit Ausführungzeiten t1 , . . . , tn
abgearbeitet werden sollen.

5 / 25
Betriebssysteme
Wir betrachten nun non-preemptive Scheduling in
Multiprozessorsystemen.
Szenario: Wir haben m gleichartige Prozessoren P1 , . . . , Pm , auf
denen n Jobs J1 , . . . , Jn mit Ausführungzeiten t1 , . . . , tn
abgearbeitet werden sollen.
Ein Belegungsplan (Schedule) S legt für jeden Job Ji den
Prozessor und das Zeitintervall zur Abarbeitung fest.

5 / 25
Betriebssysteme
Wir betrachten nun non-preemptive Scheduling in
Multiprozessorsystemen.
Szenario: Wir haben m gleichartige Prozessoren P1 , . . . , Pm , auf
denen n Jobs J1 , . . . , Jn mit Ausführungzeiten t1 , . . . , tn
abgearbeitet werden sollen.
Ein Belegungsplan (Schedule) S legt für jeden Job Ji den
Prozessor und das Zeitintervall zur Abarbeitung fest.
Sei fi der Zeitpunkt, zu dem die Abarbeitung von Ji unter S
beendet ist. Dann beträgt die mittlere Ausführungszeit (mean
finish time (MFT)) der Jobs unter S:
n
1X
MFT(S) = fi
n
i=1

5 / 25
Betriebssysteme

Sei wi > 0 ein zu Ji gehöriges Gewicht, 1 ≤ i ≤ n. Die mean


weighted finish time (MWFT) unter S ist
n
1X
MWFT(S) = w i fi .
n
i=1

6 / 25
Betriebssysteme

Sei wi > 0 ein zu Ji gehöriges Gewicht, 1 ≤ i ≤ n. Die mean


weighted finish time (MWFT) unter S ist
n
1X
MWFT(S) = w i fi .
n
i=1

Sei Tj der Zeitpunkt, zu dem Prozessor Pj alle durch S


zugewiesenen Jobs abgearbeitet hat. Dann ist die
Gesamtausführungszeit (makespan, finish time (FT)) von S

FT(S) = max {Tj }.


1≤j≤m

6 / 25
Betriebssysteme

Sei wi > 0 ein zu Ji gehöriges Gewicht, 1 ≤ i ≤ n. Die mean


weighted finish time (MWFT) unter S ist
n
1X
MWFT(S) = w i fi .
n
i=1

Sei Tj der Zeitpunkt, zu dem Prozessor Pj alle durch S


zugewiesenen Jobs abgearbeitet hat. Dann ist die
Gesamtausführungszeit (makespan, finish time (FT)) von S

FT(S) = max {Tj }.


1≤j≤m

Ziel: Bestimme einen Schedule S, der die jeweils gewünschte


Zielfunktion MFT(S), MWFT(S) bzw. FT(S) minimiert.

6 / 25
Betriebssysteme

Alle drei Probleme sind NP-schwierig. Wir zeigen nun, dass man
das Minimum von FT(S) aber bis auf den Faktor 2 effizient
approximieren kann.

7 / 25
Betriebssysteme

Alle drei Probleme sind NP-schwierig. Wir zeigen nun, dass man
das Minimum von FT(S) aber bis auf den Faktor 2 effizient
approximieren kann.

Wir nehmen an, dass die Jobs so schnell entstehen, dass keiner der
Prozessoren arbeitslos ( idle“) wird bevor alle Jobs entstanden

sind.

7 / 25
Betriebssysteme

Alle drei Probleme sind NP-schwierig. Wir zeigen nun, dass man
das Minimum von FT(S) aber bis auf den Faktor 2 effizient
approximieren kann.

Wir nehmen an, dass die Jobs so schnell entstehen, dass keiner der
Prozessoren arbeitslos ( idle“) wird bevor alle Jobs entstanden

sind.

Strategie: Ordne den nächsten ankommenden Job Ji dem


Prozessor Pk zu, dessen bisherige Belegung ihn am wenigsten lange
auslastet.

7 / 25
Betriebssysteme

Alle drei Probleme sind NP-schwierig. Wir zeigen nun, dass man
das Minimum von FT(S) aber bis auf den Faktor 2 effizient
approximieren kann.

Wir nehmen an, dass die Jobs so schnell entstehen, dass keiner der
Prozessoren arbeitslos ( idle“) wird bevor alle Jobs entstanden

sind.

Strategie: Ordne den nächsten ankommenden Job Ji dem


Prozessor Pk zu, dessen bisherige Belegung ihn am wenigsten lange
auslastet.

Sei FTopt die Beendigungszeit eines optimalen Belegungsplans für


die n Jobs und FTapprox die Beendigungszeit eines Belegungsplans,
der durch die obige Strategie erzielt wird.

7 / 25
Betriebssysteme
Hier ist ein so entstandener Belegungsplan für 10 Jobs
J1 , J2 , . . . , J10 mit Bearbeitungszeiten t1 , t2 , . . . , t10 für m = 3
Prozessoren:

P1 t1 t4 t7 t9

P2 t2 t6 t10

P3 t3 t5 t8

Bis hier sind alle Prozessoren beschäftigt.

1 Pn
≤ m i=1 ti
≤ max1≤i≤n {ti }

8 / 25
Betriebssysteme
Hier ist ein so entstandener Belegungsplan für 10 Jobs
J1 , J2 , . . . , J10 mit Bearbeitungszeiten t1 , t2 , . . . , t10 für m = 3
Prozessoren:

P1 t1 t4 t7 t9

P2 t2 t6 t10

P3 t3 t5 t8

Bis hier sind alle Prozessoren beschäftigt.

1 Pn
≤ m i=1 ti
≤ max1≤i≤n {ti }

Pn
Offensichtlich gilt: FTopt ≥ max{ m1 i=1 ti , max1≤i≤n {ti }}

8 / 25
Betriebssysteme
Hier ist ein so entstandener Belegungsplan für 10 Jobs
J1 , J2 , . . . , J10 mit Bearbeitungszeiten t1 , t2 , . . . , t10 für m = 3
Prozessoren:

P1 t1 t4 t7 t9

P2 t2 t6 t10

P3 t3 t5 t8

Bis hier sind alle Prozessoren beschäftigt.

1 Pn
≤ m i=1 ti
≤ max1≤i≤n {ti }

Offensichtlich gilt: FTopt ≥ max{ m1 ni=1 ti , max1≤i≤n {ti }}


P

Daraus folgt FTapprox ≤ m1 ni=1 ti + max1≤i≤n {ti } ≤ 2 · FTopt .


P

8 / 25
Betriebssysteme

Mit diesem (winzigen) Einblick in die Scheduling-Problematik


wollen wir uns hier begnügen. Bereits der Einprozessor
non-preemptive“ Fall wird NP-schwierig, wenn Abhängigkeiten

(Präzedenzen der Art, dass ein Job A beendet sein muss, bevor ein
Job B beginnen kann) berücksichtigt werden müssen und
Prioritäten vergeben sind. Nebenläufige Prozesse (auf Multi-
prozessorsystemen oder im Time-Sharing auf Einprozessor-
systemen) können zu korrupten Daten führen, wenn nicht gewisse
kritische Bereiche“ nur exklusiv betreten werden können.

Verklemmungen ( Deadlocks“), d.h. permanente Blockaden für

gewisse Prozesse, von denen jeder auf ein Ereignis wartet, das nur
von einem anderen dieser Prozesse ausgelöst werden kann, müssen
vermieden werden.

9 / 25
Betriebssysteme
Der Speicher eines von-Neumann-Rechners ist typischerweise
hierarchisch aufgebaut:

CPU

Register

Cache

Hauptspeicher

Hintergrundspeicher

10 / 25
Betriebssysteme

Wichtig

11 / 25
Betriebssysteme

Wichtig Speicherzugriffe auf den Cache sind wesentlich schneller


als auf den Hauptspeicher, und diese wiederum wesentlich schneller
als die auf einen Hintergrundspeicher. (Eine Festplatte ist ungefähr
100 000-mal langsamer als der Hauptspeicher.)

11 / 25
Betriebssysteme
Wir betrachten zwei benachbarte Stufen in der Speicherhierarchie,
z.B. Hauptspeicher/Hintergrundspeicher. Der Speicher wird in
Seiten (pages) gleicher Größe partitioniert. Wenn eine im
Hauptspeicher nicht vorhandene Seite benötigt wird
( Seitenfehler“), so wird diese aus dem erheblich langsameren

Hintergrundspeicher in einen freien Seitenrahmen geladen. Falls
der Hauptspeicher schon vollständig belegt war, muss dafür eine
Seite ausgelagert werden.
Speicher Hintergrundspeicher

S07 S01 S02 S03 S04

S15 S05 S06 S07 S08

S04 S09 S10 S11 S12

S10 S13 S14 S15 S16

S13
Seiten
S03
12 / 25
Betriebssysteme

Gegeben eine Folge σ = (σ1 , σ2 , . . . , σm ) von Seitenreferenzen, so


besteht das Paging-Problem in der Aufgabe, die Ein- und
Auslagerungen von Seiten so zu gestalten, dass die Anzahl der
Seitenfehler minimal wird.

13 / 25
Betriebssysteme

Gegeben eine Folge σ = (σ1 , σ2 , . . . , σm ) von Seitenreferenzen, so


besteht das Paging-Problem in der Aufgabe, die Ein- und
Auslagerungen von Seiten so zu gestalten, dass die Anzahl der
Seitenfehler minimal wird.
Strategie: LFD (longest forward distance): Lagere bei einem
Seitenfehler eine solche Seite aus, die am weitesten in der Zukunft
nachgefragt wird.

13 / 25
Betriebssysteme

Gegeben eine Folge σ = (σ1 , σ2 , . . . , σm ) von Seitenreferenzen, so


besteht das Paging-Problem in der Aufgabe, die Ein- und
Auslagerungen von Seiten so zu gestalten, dass die Anzahl der
Seitenfehler minimal wird.
Strategie: LFD (longest forward distance): Lagere bei einem
Seitenfehler eine solche Seite aus, die am weitesten in der Zukunft
nachgefragt wird.
Satz (Belady [1966]) Ein auf LFD basierender Algorithmus ist
ein optimaler (Offline-)Algorithmus für das Paging-Problem.

13 / 25
Betriebssysteme

Online-Algorithmen sind Verfahren für Probleme, über die nicht


alle Informationen a priori vorliegen. Ein Online-Algorithmus A
muss eine Folge von Anfragen ( requests“) σ = (σ1 , σ2 , . . . , σm )

bedienen, wobei Anfrage σi sofort beantwortet werden muss,
sobald σi eingelesen worden ist, ohne Kenntnis der weiteren
Anfragen σi+1 , . . . , σm . Auch m ist im allgemeinen nicht bekannt.

14 / 25
Betriebssysteme

Online-Algorithmen sind Verfahren für Probleme, über die nicht


alle Informationen a priori vorliegen. Ein Online-Algorithmus A
muss eine Folge von Anfragen ( requests“) σ = (σ1 , σ2 , . . . , σm )

bedienen, wobei Anfrage σi sofort beantwortet werden muss,
sobald σi eingelesen worden ist, ohne Kenntnis der weiteren
Anfragen σi+1 , . . . , σm . Auch m ist im allgemeinen nicht bekannt.
Online-Algorithmen sind i.a. nicht kostenoptimal. In der Regel
versucht man, die Lösung des besten Offline-Algorithmus zu
approximieren.

14 / 25
Betriebssysteme

Online-Algorithmen sind Verfahren für Probleme, über die nicht


alle Informationen a priori vorliegen. Ein Online-Algorithmus A
muss eine Folge von Anfragen ( requests“) σ = (σ1 , σ2 , . . . , σm )

bedienen, wobei Anfrage σi sofort beantwortet werden muss,
sobald σi eingelesen worden ist, ohne Kenntnis der weiteren
Anfragen σi+1 , . . . , σm . Auch m ist im allgemeinen nicht bekannt.
Online-Algorithmen sind i.a. nicht kostenoptimal. In der Regel
versucht man, die Lösung des besten Offline-Algorithmus zu
approximieren.
Die Bewertung der Güte von Online-Algorithmen erfolgt im
Vergleich mit den Kosten eines besten Offline-Algorithmus für
beliebige Anfragefolgen (bei vollständiger Information).

14 / 25
Betriebssysteme

Mit den Bezeichnungen CA (σ) für die Kosten der Lösung eines
Online-Algorithmus A zur Verarbeitung der Eingabefolge σ sowie
COPT (σ) für die Kosten der Lösung eines optimalen
Offline-Algorithmus OPT auf σ geben wir die
Definition Ein Online-Algorithmus A ist c-kompetitiv, falls für
alle Eingabefolgen σ gilt

CA (σ) ≤ c · COPT (σ) + a für eine Konstante a.

15 / 25
Betriebssysteme

Mit den Bezeichnungen CA (σ) für die Kosten der Lösung eines
Online-Algorithmus A zur Verarbeitung der Eingabefolge σ sowie
COPT (σ) für die Kosten der Lösung eines optimalen
Offline-Algorithmus OPT auf σ geben wir die
Definition Ein Online-Algorithmus A ist c-kompetitiv, falls für
alle Eingabefolgen σ gilt

CA (σ) ≤ c · COPT (σ) + a für eine Konstante a.

(Beim Multiprozessor-Scheduling haben wir vorhin bereits einen


2-kompetitiven Online-Algorithmus kennen gelernt!)

15 / 25
Betriebssysteme

Online-Algorithmen für das Paging-Problem entscheiden bei einem


Seitenfehler zum Zeitpunkt t allein aufgrund von σ1 , σ2 , . . . , σt ,
welche Seite entfernt werden soll.

16 / 25
Betriebssysteme

Online-Algorithmen für das Paging-Problem entscheiden bei einem


Seitenfehler zum Zeitpunkt t allein aufgrund von σ1 , σ2 , . . . , σt ,
welche Seite entfernt werden soll.
I LIFO: Entferne bei einem Seitenfehler die zuletzt geladene
Seite.

16 / 25
Betriebssysteme

Online-Algorithmen für das Paging-Problem entscheiden bei einem


Seitenfehler zum Zeitpunkt t allein aufgrund von σ1 , σ2 , . . . , σt ,
welche Seite entfernt werden soll.
I LIFO: Entferne bei einem Seitenfehler die zuletzt geladene
Seite.
I FIFO: Entferne bei einem Seitenfehler die zuerst geladene
Seite.

16 / 25
Betriebssysteme

Online-Algorithmen für das Paging-Problem entscheiden bei einem


Seitenfehler zum Zeitpunkt t allein aufgrund von σ1 , σ2 , . . . , σt ,
welche Seite entfernt werden soll.
I LIFO: Entferne bei einem Seitenfehler die zuletzt geladene
Seite.
I FIFO: Entferne bei einem Seitenfehler die zuerst geladene
Seite.
I LRU (least recently used): Entferne bei einem Seitenfehler die
Seite, auf die am längsten nicht mehr zugegriffen worden ist.

16 / 25
Betriebssysteme

Online-Algorithmen für das Paging-Problem entscheiden bei einem


Seitenfehler zum Zeitpunkt t allein aufgrund von σ1 , σ2 , . . . , σt ,
welche Seite entfernt werden soll.
I LIFO: Entferne bei einem Seitenfehler die zuletzt geladene
Seite.
I FIFO: Entferne bei einem Seitenfehler die zuerst geladene
Seite.
I LRU (least recently used): Entferne bei einem Seitenfehler die
Seite, auf die am längsten nicht mehr zugegriffen worden ist.
I LFU (least frequently used): Entferne bei einem Seitenfehler
die Seite, auf die am seltensten zugegriffen wurde.

16 / 25
Betriebssysteme

Online-Algorithmen für das Paging-Problem entscheiden bei einem


Seitenfehler zum Zeitpunkt t allein aufgrund von σ1 , σ2 , . . . , σt ,
welche Seite entfernt werden soll.
I LIFO: Entferne bei einem Seitenfehler die zuletzt geladene
Seite.
I FIFO: Entferne bei einem Seitenfehler die zuerst geladene
Seite.
I LRU (least recently used): Entferne bei einem Seitenfehler die
Seite, auf die am längsten nicht mehr zugegriffen worden ist.
I LFU (least frequently used): Entferne bei einem Seitenfehler
die Seite, auf die am seltensten zugegriffen wurde.
I FWF (flush when full): siehe Skizze auf der nächsten Folie

16 / 25
Betriebssysteme

1 S06 1 1 S06 1 1 S06 0 1 S01 1

2 S11 1 2 S11 1 2 S11 0 2 S11 0

3 0 3 S02 1 3 S02 0 3 S02 0


Flush
4 0 4 S09 1 4 S09 0 4 S09 0 When
Full
5 0 5 S07 1 5 S07 0 5 S07 0

6 0 6 S10 1 6 S10 0 6 S10 0

7 0 7 S03 1 7 S03 0 7 S03 0

17 / 25
Betriebssysteme

Analyseergebnisse

18 / 25
Betriebssysteme

Analyseergebnisse
Sei k die Anzahl der Seitenrahmen im Hauptspeicher.

18 / 25
Betriebssysteme

Analyseergebnisse
Sei k die Anzahl der Seitenrahmen im Hauptspeicher.
Satz LFU ist nicht kompetitiv.

18 / 25
Betriebssysteme

Analyseergebnisse
Sei k die Anzahl der Seitenrahmen im Hauptspeicher.
Satz LFU ist nicht kompetitiv.
Beweis Wir betrachten die Anfragefolge

σ = p1 , p1 , p2 , p2 , . . . , pk−1 , pk−1 , pk , pk+1 , pk , pk+1 , pk , pk+1 , . . .

18 / 25
Betriebssysteme

Analyseergebnisse
Sei k die Anzahl der Seitenrahmen im Hauptspeicher.
Satz LFU ist nicht kompetitiv.
Beweis Wir betrachten die Anfragefolge

σ = p1 , p1 , p2 , p2 , . . . , pk−1 , pk−1 , pk , pk+1 , pk , pk+1 , pk , pk+1 , . . .

LFU tauscht pk und pk+1 ad infinitum aus, OPT hält pk und pk+1
stets im Hauptspeicher.

18 / 25
Betriebssysteme

Satz LIFO ist nicht kompetitiv.

19 / 25
Betriebssysteme

Satz LIFO ist nicht kompetitiv.


Beweis Wir betrachten die Anfragefolge

σ = p1 , p2 , p3 , . . . , pk−1 , pk , pk+1 , pk , pk+1 , pk , pk+1 , . . .

19 / 25
Betriebssysteme

Satz LIFO ist nicht kompetitiv.


Beweis Wir betrachten die Anfragefolge

σ = p1 , p2 , p3 , . . . , pk−1 , pk , pk+1 , pk , pk+1 , pk , pk+1 , . . .

LIFO tauscht pk und pk+1 ad infinitum aus, OPT hält pk und pk+1
stets im Hauptspeicher.

19 / 25
Betriebssysteme

Satz LRU ist k-kompetitiv.

20 / 25
Betriebssysteme

Satz LRU ist k-kompetitiv.


Beweis Sei σ(1), σ(2), . . . , σ(m) eine beliebige Anfragefolge.

20 / 25
Betriebssysteme

Satz LRU ist k-kompetitiv.


Beweis Sei σ(1), σ(2), . . . , σ(m) eine beliebige Anfragefolge.
Wir zeigen CLRU (σ) ≤ k · COPT (σ).

20 / 25
Betriebssysteme

Satz LRU ist k-kompetitiv.


Beweis Sei σ(1), σ(2), . . . , σ(m) eine beliebige Anfragefolge.
Wir zeigen CLRU (σ) ≤ k · COPT (σ).
Beide Algorithmen beginnen mit der gleichen Initialbelegung der k
Seitenrahmen.

20 / 25
Betriebssysteme

Satz LRU ist k-kompetitiv.


Beweis Sei σ(1), σ(2), . . . , σ(m) eine beliebige Anfragefolge.
Wir zeigen CLRU (σ) ≤ k · COPT (σ).
Beide Algorithmen beginnen mit der gleichen Initialbelegung der k
Seitenrahmen.
Dazu partionieren wir σ in Phasen P(0), P(1), P(2), . . ., so dass
LRU in P(0) höchstens k und für i ≥ 1 in P(i) genau k
Seitenfehler hat. (Die Partition kann man einfach erhalten, indem
man σ von rechts nach links abläuft.)

20 / 25
Betriebssysteme

Satz LRU ist k-kompetitiv.


Beweis Sei σ(1), σ(2), . . . , σ(m) eine beliebige Anfragefolge.
Wir zeigen CLRU (σ) ≤ k · COPT (σ).
Beide Algorithmen beginnen mit der gleichen Initialbelegung der k
Seitenrahmen.
Dazu partionieren wir σ in Phasen P(0), P(1), P(2), . . ., so dass
LRU in P(0) höchstens k und für i ≥ 1 in P(i) genau k
Seitenfehler hat. (Die Partition kann man einfach erhalten, indem
man σ von rechts nach links abläuft.)
Es reicht nun, zu zeigen, dass OPT in jeder Phase wenigstens
einen Seitenfehler hat.

20 / 25
Betriebssysteme

Beweis . . .
Da LRU und OPT mit der gleichen Initialbelegung beginnen, hat
OPT einen Seitenfehler, sobald LRU den ersten Seitenfehler hat.
Das erledigt P(0).

21 / 25
Betriebssysteme

Beweis . . .
Da LRU und OPT mit der gleichen Initialbelegung beginnen, hat
OPT einen Seitenfehler, sobald LRU den ersten Seitenfehler hat.
Das erledigt P(0).
Wir betrachten nun eine beliebige Phase P(i) mit i ≥ 1.

21 / 25
Betriebssysteme

Beweis . . .
Da LRU und OPT mit der gleichen Initialbelegung beginnen, hat
OPT einen Seitenfehler, sobald LRU den ersten Seitenfehler hat.
Das erledigt P(0).
Wir betrachten nun eine beliebige Phase P(i) mit i ≥ 1.
Sei σ(ti ) die erste und σ(ti+1 − 1) die letzte Anfrage in P(i).

21 / 25
Betriebssysteme

Beweis . . .
Da LRU und OPT mit der gleichen Initialbelegung beginnen, hat
OPT einen Seitenfehler, sobald LRU den ersten Seitenfehler hat.
Das erledigt P(0).
Wir betrachten nun eine beliebige Phase P(i) mit i ≥ 1.
Sei σ(ti ) die erste und σ(ti+1 − 1) die letzte Anfrage in P(i).
Außerdem sei p die letzte Anfrage in P(i − 1).

21 / 25
Betriebssysteme

Beweis . . .
Da LRU und OPT mit der gleichen Initialbelegung beginnen, hat
OPT einen Seitenfehler, sobald LRU den ersten Seitenfehler hat.
Das erledigt P(0).
Wir betrachten nun eine beliebige Phase P(i) mit i ≥ 1.
Sei σ(ti ) die erste und σ(ti+1 − 1) die letzte Anfrage in P(i).
Außerdem sei p die letzte Anfrage in P(i − 1).
Wir zeigen, dass P(i) Anfragen auf k paarweise verschiedene
Seiten enthält, die alle von p verschieden sind. Das impliziert, dass
OPT wenigstens einen Seitenfehler hat.

21 / 25
Betriebssysteme
Beweis . . .
Das ist trivial, wenn die LRU-Seitenfehler auf k paarweise
verschiedene Anfragen erfolgen, die alle von p verschieden sind.

22 / 25
Betriebssysteme
Beweis . . .
Das ist trivial, wenn die LRU-Seitenfehler auf k paarweise
verschiedene Anfragen erfolgen, die alle von p verschieden sind.
Nehmen wir also an, dass LRU zweimal auf der selben Seite q in
P(i) einen Seitenfehler hat, nämlich auf

σ(s1 ) = σ(s2 ) = q mit ti ≤ s1 ≤ s2 ≤ ti+1 − 1.

22 / 25
Betriebssysteme
Beweis . . .
Das ist trivial, wenn die LRU-Seitenfehler auf k paarweise
verschiedene Anfragen erfolgen, die alle von p verschieden sind.
Nehmen wir also an, dass LRU zweimal auf der selben Seite q in
P(i) einen Seitenfehler hat, nämlich auf

σ(s1 ) = σ(s2 ) = q mit ti ≤ s1 ≤ s2 ≤ ti+1 − 1.

Direkt nach Bearbeitung von σ(s1 ) ist q im Hauptspeicher und


wird zu einem Zeitpunkt t mit s1 < t < s2 wieder ausgelagert.

22 / 25
Betriebssysteme
Beweis . . .
Das ist trivial, wenn die LRU-Seitenfehler auf k paarweise
verschiedene Anfragen erfolgen, die alle von p verschieden sind.
Nehmen wir also an, dass LRU zweimal auf der selben Seite q in
P(i) einen Seitenfehler hat, nämlich auf

σ(s1 ) = σ(s2 ) = q mit ti ≤ s1 ≤ s2 ≤ ti+1 − 1.

Direkt nach Bearbeitung von σ(s1 ) ist q im Hauptspeicher und


wird zu einem Zeitpunkt t mit s1 < t < s2 wieder ausgelagert.
Zum Zeitpunkt t ist q die Seite, auf die am längsten nicht mehr
zugegriffen wurde.

22 / 25
Betriebssysteme
Beweis . . .
Das ist trivial, wenn die LRU-Seitenfehler auf k paarweise
verschiedene Anfragen erfolgen, die alle von p verschieden sind.
Nehmen wir also an, dass LRU zweimal auf der selben Seite q in
P(i) einen Seitenfehler hat, nämlich auf

σ(s1 ) = σ(s2 ) = q mit ti ≤ s1 ≤ s2 ≤ ti+1 − 1.

Direkt nach Bearbeitung von σ(s1 ) ist q im Hauptspeicher und


wird zu einem Zeitpunkt t mit s1 < t < s2 wieder ausgelagert.
Zum Zeitpunkt t ist q die Seite, auf die am längsten nicht mehr
zugegriffen wurde.
Also enthält die Folge σ(s1 ), . . . , σ(t) Anfragen auf k + 1
paarweise verschiedene Seiten, von denen wenigstens k verschieden
von p sind.

22 / 25
Betriebssysteme

Beweis . . .
Die letzte Möglichkeit ist, dass LRU nie zweimal auf einer Seite in
P(i) einen Seitenfehler hat, sondern ein Fehler die Seite p betrifft.

23 / 25
Betriebssysteme

Beweis . . .
Die letzte Möglichkeit ist, dass LRU nie zweimal auf einer Seite in
P(i) einen Seitenfehler hat, sondern ein Fehler die Seite p betrifft.
Sei t > ti der erste Zeitpunkt, wenn p ausgelagert wird.

23 / 25
Betriebssysteme

Beweis . . .
Die letzte Möglichkeit ist, dass LRU nie zweimal auf einer Seite in
P(i) einen Seitenfehler hat, sondern ein Fehler die Seite p betrifft.
Sei t > ti der erste Zeitpunkt, wenn p ausgelagert wird.
Mit den selben Argumenten wie vorhin können wir schließen, dass
die Teilfolge
σ(ti − 1), σ(ti ), . . . , σ(t)
insgesamt k + 1 paarweise verschiedene Seiten enthält.

23 / 25
Betriebssysteme

Satz FIFO und FWF sind k-kompetitiv.

24 / 25
Betriebssysteme

Satz FIFO und FWF sind k-kompetitiv.


Beweis ähnlich wie für LRU −→ Übungsaufgabe

24 / 25
Betriebssysteme

Satz FIFO und FWF sind k-kompetitiv.


Beweis ähnlich wie für LRU −→ Übungsaufgabe

Kann man den Faktor k schlagen?

24 / 25
Betriebssysteme

Satz FIFO und FWF sind k-kompetitiv.


Beweis ähnlich wie für LRU −→ Übungsaufgabe

Kann man den Faktor k schlagen?


Nein, denn es gilt:
Satz Sei A ein Online-Algorithmus für das Paging-Problem. Wenn
A c-kompetitiv ist, so gilt c ≥ k.

24 / 25
Betriebssysteme

Satz Sei A ein Online-Algorithmus für das Paging-Problem. Wenn


A c-kompetitiv ist, so gilt c ≥ k.

25 / 25
Betriebssysteme

Satz Sei A ein Online-Algorithmus für das Paging-Problem. Wenn


A c-kompetitiv ist, so gilt c ≥ k.
Beweis Wir betrachten eine Instanz mit k + 1 Seiten. Sei A ein
beliebiger Online-Algorithmus und OPT ein optimaler
Offline-Algorithmus. Betrachte die Anfragefolge, für die jede
Anfrage nach einer Seite gerade diejenige Seite fordert, die nicht
im Hauptspeicher ist, d.h. A macht bei jeder Anfrage einen
Seitenfehler. OPT habe einen Seitenfehler bei Anfrage σt . Beim
Bedienen von σt kann OPT eine Seite auslagern, die während der
nächsten k − 1 Anfragen σt+1 , . . . , σt+k−1 nicht nachgefragt wird,
so dass OPT für je k aufeinanderfolgende Anfragen höchstens
einen Fehler macht.

25 / 25

1 27.01.20

Auf Benennung des Scheduling

algorithmus hinweisen

Greedy Job Scheduling

siehe letzte

Vorlesung

ProbeKlausur

ist heute erschienen

Bitte schreiben Sie mir

heute noch welche Aufgaben

Sie gerne am Mi in der VL

besprechen würden

und Pasing sind Klausur

Scheduling

relevant das Halteproblem erst in der 2 Klausur

Ankündigung

Mini Course

Komplexitätstheorie Chomsky

Hierarchie

Saeed Amiri

Nächste Woche Mo Do Ux

freiwilliges Zusatzangebot

27.01.20
Algorithmen offline
Eingabe trifft nach Eingabe zu Beginn bekannt
und nach ein irreversible
Def Ein Online Algorithmus heißt
Entscheidungen
c kompetenter wenn er
für
häufig selbst
können
alle Eingaben eine Lösung

berechnet

Paying
in
Eine Folge 0 4 Seiten referenzen
Li und eine Zahl KEIN
Gm von
Cachegröße

k 6
1,4 3,2 5,2 15,2
Ag Nach Eintreffen jedes 9 muss wenn sie
nicht im Cache ist entschieden werden

welche Seite im Cache durch E ersetzt wird

k 4 6
11 4,3 2,5 2 5,2
5,2
T P
I Lade die ersten K angefragten Seiten in den Cache
t 5 Eine Seite ersetzt werden
65 muss

Schlechte Idee letzte geladene Seite löschen


1
1413155 Jede weitere Anfrage
9 2
erzeugt einen
im
5 Seitenfeller
beliebig viele Seitenfehler
obwohl ein optimaler Offlinealgorithmus
nur 1 Seiten fehler verursacht

ersetze 1
mail.ms keine
IEFIgener

Vielleicht lieber die bisher am


wenigsten angefragte
Seite löschen
t
KW 6 4 3,2 1,4 3,2 5,1 5 1,5
Il Il Il l
ersetze 1
Auch hier ab da
4131215J
I
fürjede Anfrage ein Seitenfehler
ersette 5
dabei macht OPT nur einen

413122 einzigen Seitenfelder


usw 41312110nF 15333 teeren
T Seitenfehler
Strategien schlecht
0 fast in
first out
ersetze die zuletzt eingefügte Seite

least frequently used

ersetze eine Seite die bisher


am seltensten
auf
zugegriffen wurde

BIG Für UFO gibt es


für jedes NEIN
eine
Eingabesequenz der Länge n

auf der UFO n Seiten fehler macht


während eine
optimale offline Lösung
nur 1 Fehler macht

Dasselbe gilt für LFU beliebig


schlecht

Oder anders Es gibt keine


gesagt
Konstante c
für die UFO oder LFU

c
kompetitiv sind

wiegehtesbe.su
FIFO first in first out

Entferne die Seite deren Laden


am
längsten leer ist

RU least recently used

Entferne die Seite die am längsten


nicht mehr angefragt wurde

Flush When Full das zählt als


FWF kseitenfelder
1
Lösche alle Seiten im Cache

l immer wieder 1 und


Fan
4 3,2 1,4 3,2 5,1 5 1,5 5 abwechselnd
e ni
432J 1 Seiten
fehler
1 FIFO entferne 4 15327 keine weiteren
7
Seitenfehler
entfernen
2 Rh entferne 1 14325 3 5325 7 keine
weiteren
Seitenfelder
4 FWF entferne 4 3,2 1
keine
weiteren
Seitenfelder

Satz FWF ist k kompetitiv


d h FWF macht maximal k mal so
viele Seitenfelder wie ein optimaler
offline Algorithmus

Beweis
Sei bin eine beliebige Anfragereihenfolge
FI F
Igfl
it Dat
34544 Gm in Phasen
µ
12 321 354 Zerlege G
1
P
plo 1 PM Plo Wähle Index so dass

OPT bei 6 der erste Flush


bei G wird
1 321 auftut o
234,544 der Cache gelöscht k Seiten
n
2 Sehfehler fehler
Seitenfehler
nicht vermeidbar ND danach lädt FWF wieder
ersetze 1 durch 5 k verschiedene Seiten in den
11 234 05234
I ersetze 2 Speicher
157 durch 1 P Wähle Index g so dass
l ersetze bei der nächste Flush
durch 2
auftritt KSeitenfelder

Beobachtung Plo enthält Kth verschiedene


Anfragen mb OPT muss
einen Seitenfelder machen

j o wenn B die letzte Phase ist und


kein Flush auftritt einengt FWF
für Pj keine Seiten fehler

Wenn Pb hingegen mit einem Flush


endet dann enthält PS
h verschiedene Anfragen die auch
alle von b verschieden sind

MD OPT muss einen

Seitenfehler machen

OPT macht also für jeden Flush einen

Seitenfehler während FWF k Seitenfelder macht

k Mal soviele Seitenfehler a

Bemerk Auch LR U und


g
FIFO sind k kompetitiv

Beweis Übung für Liu siehe Folien


Geht es auch besser als

k kompetitiv

Nein zumindest nicht


für det
Algorithmen und
böswillig
gewählte Anfrage reihenfolgen

Satz Jeder lebt Online Algorithmus


das Pagingproblem ist
für
bestenfalls k kompetitiv
Beweissteine setze nächste Anfrage immer
auf das Element was gerade
nicht in Jacke ist
k Seiten für h aufeinanderfolgende
fehler
Anfragen
OPT kann vorausschauen und
immer eine Seite entfernen die
nicht zu den nächsten K 1 Anfragen

gehört OPT macht nur 1

Seitenfehle für E aufeinanderfolgende


Anfragen
Berechenbarkeit
Gibt es
Fragen die ein Computer
nicht beantworten kann
D Typ 0

Gibt es eine formale Sprache für


die es kein 4 TM gibt die sie entscheidet

Universelle
für jede Turingmaschine Beschreibung

µ M

Gödelnummer
Von M

liest M und und


führt 14
auf was
w
E do e
Diagonal
kanonische Ordnung durchnummerieren von

allen
Turingmaschinen
entsprechend ihrer Gödelnummern
alle Eingabe wörter aus 20,1
E 0,1 00,01 10,11 000

1 ÄH
Mz 1
s o D wieso.is
M Mi akteptiert
i
I
w nicht
M

Theo rem D ist nicht entscheidbar

Be weis per Widerspruch

17 es eine Turingmaschine M die D entscheidet


gibt
ND M ist irgendwo in der kanonische Ordnung
µ Mi i ist der Index von M

in der kanonischen
Ordnung
Was macht M
auf wi
wenn Mi w
akzeptiert wi EID
denn 14 muss

genau
die Wörter
aus D akzeptieren

wenn Mi w nicht an w ED
Den

Halteproblem
H M w u hält
auf w E
fait
u we H Hält M
auf w

Theory Das Halteproblem ist nicht


entscheidbar
Beweis Annahme Es gibt Ma die A entscheidet
es
1 Berechne index e von w

Berechne i

2 Führe Mit ans mit Eingabe ließ wi


3 Wenn Antwort Ja
dann Führe Mi auf wi aus
und gib Antwort negiert uns
4 Sonst Antwort Ja
Das würde die Diagonalsprache
entscheiden
M kann nicht existieren

Fünf

i
dass es das
gibt kann man beweisen

Aufgabelte

Stables

ungerichteter Graph G U E ungerichteter Graph G U E

KEIN KEIN

Clique V EV tu ver Stable Set V EV tu ver

v.v EE v.v EE

Gibt es eine Clique V trage Gilt es ein Stable Set V

Frage

in G mit NHK in
G mit N I he

Zeige Stable Set Ep Clique no StableSet ist bzgl

pol Lösbarkeit nicht

schwerer als Clique

Was ist zu tun

Kreativer Teil

1 Wie verwandele ich eine Eingabe I für StableSet

in eine Eingabe I für Clique so dass ich

denke dass mir die


richtige Antwort liefert

clique

Verifikation

2 Zeige Die Umrechnung von I in I ist in

polynomieller Zeit möglich

3 Zeige Wenn I eine Ja Eingabe für StableSet ist

dann ist I eine Ja Eingabe für

Clique
Wenn I eine Ja
4 Zeige Eingabe für Clique ist

dann ist t eine Ja Eingabe für Stable Set


Beispiellosen

1 Sei eine Eingabe I für StableSet gegeben

ungerichteter Graph G U E

KEIN

Menge aller Kanten die nicht in E sind

Sei E die

also E Vx VIE oder E du v n.ve V du BAE

I bestehlt aus V E und k

2 Um E zu berechnen müssen 0C IH
Knotenpaare

geprüft werden was in polynomieller Zeit ist

möglich

3 Sei I eine Ja Eingabe für Stable Set

Dann ein stabile Menge V'EV mit N'Kk

gibt es

so dass V u.ir EU du u E

Nach Definition von E


gilt dann tu u EU du u EE

V ist also eine Clique in


G dh I ist eine
Ja Eingabe

für Clique
Sei I
Ja Eingabe für

4 eine Clique

Dann gibt Clique V'EU mit IVY L


es eine

SO dass Hu EV Ln u EE

Nach Definition von E


gilt dann tu EU E

neu

ist also eine stabile Menge in d h I ist


G

eine Ja Eingabe für StableSet


Aufgabe8
IS

ableSetEp Clique

D Wenn StableSet NP vollständig ist dann auch

Clique
Clique in P ist dann auch Stable Set

Wenn

Aufgabelnd

Jede Stufe der ALU verfügt über zwei

Arten von
Eingängen Steuerbits und

Datenbits Die Steuer bits Sz G So und M

steuern gleichzeitig alle Stufen und entscheiden

welche Funktion der Eingabebits to Bo Ann Bn e

berechnet wird

Stufe i erhält als Datenbits Ai und Bi sowie

ein Ci das von


Stufe i 1 berechnet wurde

Co kann auch vom Benutzer gewählt werden

eigentlich also auch ein Steuer bit

Stufe I gibt Fi und Ci aus und

zwar abhängig von den Steuer bits

Dabei wählt 14 0 bzw 14 1 ob eine logische

oder arithmetische Operation durchgeführt wird

und die anderen teuerbits Sz Ss so G

wählen die Funktion aus

Als Beispiel betrachten wir 14 0 9 1 SEO

und So 1 bei 14 0 wird 6 ignoriert

Hellt man sich diese als gesetzt vor

so stellt man
fest dass sich Fi folgendermaßen ergibt

Wir erhalten so das folgende vereinfachte Schallnett

Ai
FD

Fi

Bi

Es handelt sich also um Ai Bi

JedeStufe berechnet also


für diese Steuerbits A Bi

dh die gesamte Alu berechnet ein bitweises XOR

Die ALU kann aber auch andere Funktionen


ganz

realisieren Beispiel das ZweierKomplement von B


zum

5th Dafür setzen wir MH Sz 0 51 1 SEO

und Co 1

Jes

Ai n Bis Ci

Bi I Fi
n
Bi Ci

1 0 0 1 0 1
0102

0 1 1 01

1 Co

Nun könnte noch alle anderen Belegungen erklären

man

Das ist zu viel in Klausur fragen wir spezifischer

Aufgabelt

256 64 16 4 1

Bio 00 33
3

1 3 16 12 3 31

El 7 Er on or

1 0 1 161 1 17

3110 33201
4

31.1731

iii

527

33201 00101

33201.33
49 3 01 13301 2561 192 48

497 527

Wo ist der Fehler

Das b Komplement nutzt die Hälfte der


nur

Zahlen für den positiven negativen Bereich


527 ist außerhalb des Wertebereichs 2 512,5113

Aufgate Xyzflx.ee
O O
MintermMaxterm
O

O
Exuyuz

0 11 1

1 0 0 0 41517 Ivy VZ

1 1 1 1

KNF oder DNF 6 Minterme 2 Maxteme

so starte mit KNF

Kvyvz Fryvz

fnlx.az

zu
Kvg nvv

y vhs

zu

zu

U ufgabe3.2

C.LA für vier Bits

X3 X3 242 Xs Ye Yo Yo

iiniti

ein

am

und du v n rein un

n u n v

Aufgabeln S bB.cc variables B

B BB eh

Nichttern dabei

BB a

air

3,304
ca
2

7 bca

bbb ca

a cbbcabbcbbbch.ca

1 Lest bitte b a

ÄTHER

b a

Wir entwickeln die

Formulierung stückweise

3,302 bia Ii 1

bbbc

be

b with

LIG ey Wm a

9m70

Aufgabeb 3

ab cm I n 71 m 2N

S abtue

T ab Tcc U

U c4 E

Aufgabelt
regulären Sprachen L

NEIN

fzeli.mil zI7n gilt

u
µ mit 2 nun laut Eu Ich 0

two

uviwELAufgale6

GL

ab cm I n 71 m 2N

Sei Ente

neu gegeben Wir betrachten a EL

sei E nrw eine


Zerlegung mit Inden Ich 0

Dann besteht ur nur aus den Buchstaben

an und b

Ist IN ungerade so verletzt

c vier für i 1 das Schema

Ist Kl gerade wo erhalten wir zwar

ein Wort ab c aber

i ist mindestens htt und damit

2nA nicht mehr als doppelt so groß

Minikurskapit

Saeed Amiri

3 2 14.00 15.30 Physik

4 2 10.00 11.30

5.2 14.00 15.30

6.2 16.30 18.00

QuestionS

infovmatik.uni koeln.de

Damiri

Fragestunde

7 2 10 11.30 Weyertal 121 Raum 5.08

10 2 I

11.2

12.2

13.2

14.2