GRUNDKURS INFORMATIK

Transcription

GRUNDKURS INFORMATIK
GRUNDKURS INFORMATIK
3 – DATENVERARBEITUNG - ALGORITHMEN
Marcel Götze
Überblick
1.
2.
Bisher: Daten, Information, Wissen
Heute: Datenverarbeitung
g
1.
2
2.
Was ist ein Algorithmus
Vom Problem zur Lösung
Datenverarbeitung


Bearbeitung von Daten durch Maschinen
Datenverarbeitung beinhaltet:
Umformen (Rechnen, Zählen, Übersetzen, ...)
 Transportieren
 Speichern
 Ein-/Ausgabe
Datenverarbeitung beinhaltet oft Problemlösung nach bestimmtem
Schema → Algorithmus


2
2.
Algorithmus (erste Näherung)
5

Das Wort
D
W Algorithmus
Al i h
ist eine Abwandlung
Ab
dl
oder
d
Verballhornung des Namens von Muhammad ibn Musa
al-Chwarizmi
al
Chwarizmi ((* ca. 783, † ca. 850), dem Autor des
Buchs Hisab al-dschabr wa-l-muqabala (825, Regeln
zur Wiederherstellung und Reduktion), durch das die
Al b im
Algebra
i W
Westen verbreitet
b i wurde.
d Di
Die llateinische
i i h
Fassung beginnt mit „Dixit Algoritmi...“ (Algoritmus
sprach...), womit der Autor gemeint war. Das Wort
Algebra stammt ebenfalls (al-Jabr – „Einrenkung“) aus
dem Titel des Buches.
Quelle: Wikipedia
6



Eindeutige
d
und
d exakte
k Beschreibung
h b
eines
Verarbeitungsvorganges.
Ein Prozessor führt
f h einen Prozeß
ß (Arbeitsvorgang)
(A b
) auff
Basis einer eindeutig interpretierbaren Beschreibung
(des Algorithmus) aus.
aus
Typische algorithmisierbare Prozesse:



Kochrezepte
K
h
Bedienungsanleitungen
Rechnerprogramm (Prozessor:
(Prozessor Computer!)
2
2.
Bestandteile eines Algorithmus

Objekte
7
 darauf
soll eine Wirkung ausgeübt werden
 können abstrakter oder auch konkreter Natur sein.

Handlungen
 Wirken
– in einer bestimmten Reihenfolge ausgeführt –
auf gewünschte Weise auf die Objekte ein.
ein
 Zustandsänderungen an Objekten
8
Beispiel: Auswechseln eines Rades am
Auto
1.
2.
3.
4
4.
5.
6.
7.
Löse die Radmuttern.
Hebe den Wagen an.
Schraube die Radmuttern ab.
Tausche das Rad gegen ein anderes Rad aus.
Schraube die Radmuttern an.
S
Setze
den
d Wagen
W
ab.
b
Ziehe die Radmuttern fest.
21
2.1.
Beobachtungen
9




Anwender
A
d des
d Algorithmus
Al i h
muß
ß jeden
j d einzelnen
i l
Schritt verstehen und ausführen können
Verfahren enthält Folge von Handlungen in fester
Reihenfolge ODER über Reihenfolge wird erst
während der Ausführung des Algorithmus entschieden
(notwendig: entsprechende Sprachkonstrukte)
Abarbeitungsreihenfolge mancher Einzelschritte nicht
von Bedeutung
B d t
Ausführungsorgan / Prozessor muß über gewisse
elementare Fähigkeiten verfügen
Elementaroperationen
3
3.
Algorithmus – Definition
10


Ein Algorithmus ist eine präzise (d.h., in einer
festgelegten Sprache abgefaßte) endliche
Beschreibung eines allgemeinen Verfahrens unter
Verwendung ausführbarer elementarer
(Verarbeitungs-) Schritte.
Algorithmus
g
eine
wohldefinierte* Methode, ein Problem zu lösen.

beschrieben durch eine endliche Folge von Anweisungen
Anweisungen werden nacheinander ausgeführt

Anweisungsfolge kann (in festgelegter Weise) wiederholt werden.

*g
genaue,,
eindeutige,
g , endliche und ausführbare Beschreibung
g
11


Ein Al
Ei
Algorithmus
ih
iist unabhängig
bhä i von d
der U
Umsetzung iim
Rechner !
Beispiele
Eine Algorithmus zum Durchlaufen des Studiums
 Ein Algorithmus
g
zum Erstellen eines Apfelkuchens
p
heißt
Backrezept
 Bedienungsanleitungen
 Gebrauchsanleitungen
G b
h l i
 Bauanleitungen
 Partitur
 Spielanleitung
 Umwandlung von Dezimal- in Dualzahlen

12

Bekannte Algorithmen:
 Addition
zweier positiver Dezimalzahlen (mit
Überträgen)
 Test, ob einen gegebene natürliche Zahl eine Primzahl
ist
 Sortieren einer unsortierten Kartei (etwa
lexikographisch)
 Berechnung
g der Zahl e = 2.7182...
4
4.
Beispiel für einen Algorithmus
13

Suche des Namens „Götze“ im Telefonbuch
(Variante 1)
1.
2.
Schlage die erste Seite des Buches auf
Lese beginnend
g
mit dem ersten Namen einen Namen
nach dem anderen, bis
a)
b)
„Götze“ gelesen wird  Ende (gefunden)
das Ende des Buches erreicht ist  „Götze“ steht nicht
im Telefonbuch
14

SSuche
h des
d Namens
N
„Götze“
Gö “ im
i TTelefonbuch
l f b h
(Variante 2)
1
1.
2.
3.
Telefonbuch in der Mitte des Buches aufschlagen
aufschlagen. Ein
Name x wird gelesen.
Wenn x alphabetisch vor „Götze“ liegt, dann wird der
hi t x liegende
hinter
li
d Teil
T il des
d Telefonbuches
T l f b h iin d
der Mitt
Mitte
aufgeschlagen. Wenn x aber hinter diesem Namen liegt,
dann wird der vordere Teil des Telefonbuchs in der Mitte
aufgeschlagen.
f
hl
Schritt 2 wird solange wiederholt, bis
a)
b)
„Götze gelesen wird  Ende (gefunden)
„Götze“
zwei aufgeschlagene Namen hintereinander liegen  „Götze“
steht nicht im Telefonbuch
5
5.
Eigenschaften von Algorithmen

Ab k i
Abstraktion
15


Finitheit / Endlichkeit


Die Beschreibung wie auch die Anzahl an Zwischenergebnissen ist
b h ä k bzw.
beschränkt
b
endlich
dli h lang.
l
Terminierung


Ein Algorithmus löst im Allgemeinen eine Klasse von Problemen und nicht
ganz spezielles
p
Problem.
nur eine einzelnes g
Algorithmen, die für jede(!) Eingabe nach endlich vielen Schritten ein
Algorithmen
Endekriterium erreichen, heißen terminierend.
Determiniertheit (globale Eindeutigkeit)

Liefern bei gleichen Daten bei wiederholter Ausführung stets gleiche
Ergebnisse.
16

D t
Determinismus
i i
(l(lokale
k l Ei
Eindeutigkeit)
d ti k it)



Effizienz


üblicherweise wird hierunter der Ressourcenverbrauch (CPU, RAM,
Storage) verstanden
Wartbarkeit, Änderbarkeit


Eindeutige Festlegung des nächsten Schrittes im Ablauf
schließt Determiniertheit ein
Wie gut ist ein Algorithmus an geänderte Problemstellungen oder auf
andere
d
Anwendungsumgebungen
A
d
b
anzupassen??
Zuverlässigkeit, Robustheit


Wie g
gutmütig
g reagiert
g
ein Algorithmus
g
auf fehlerhafte Eingaben
g
(s.a.
(
Anwendungstests, ...)?
bei numerischen Algorithmen: Welche Auswirkungen haben
Rundungsfehler ?
51
5.1.
Eigenschaften: Abstraktion
17



Ein Algorithmus löst im Allgemeinen eine Klasse von
Problemen
man abstrahiert von konkreten Eingabedaten und
sucht ein allgemeines Verfahren
Beispiel:

Algorithmen zum Sortieren kann man auf Zahlen,
Buchstaben Namen,
Buchstaben,
Namen ... miteinander vergleichbare Dinge
anwenden
52
5.2.
Eigenschaften: Terminierung
18


Ein Algorithmus heißt terminierend, wenn er (bei
jeder erlaubten Eingabe von Parameterwerten)
nach endlich vielen Schritten abbricht bzw. beendet
ist.
Oft schwer oder überhaupt nicht feststellbar, ob ein
Algorithmus terminiert (eine der Fragestellungen, mit
der sich die Theoretische Informatik beschäftigt)
19

B i i l (Ul
Beispiel
(Ulam-Algorithmus):
Al i h )



Beginne mit einer beliebigen Zahl n. Ist sie ungerade, multipliziere sie mit
3 und addiere 1, ansonsten halbiere sie. Fahre fort, bis 1 erreicht ist.
Bis heute nicht geklärt, ob Ulam-Algorithmus für jedes n
terminiert
einige Folgen:








1  Ende
2, 1  Ende
3, 10, 5, 16, 8, 4, 2, 1  Ende
...
34,, 17,, 52,, 26,, 13,, 40,, 20,, 10,, 5,, 16,, 8,, 4,, 2,, 1  Ende
...
63 geht in 108 Schritten fast bis 10000 und endet dann bei 1
...
53
5.3.
Eigenschaften: Determinismus
20




deterministischer
d
t
i i ti h Abl
Ablauf:
f eindeutige
i d ti V
Vorgabe
b d
der SSchrittfolge
h ittf l
d.h. zu jedem Zeitpunkt der Ausführung gibt es maximal eine
Möglichkeit
g
der Fortsetzung
g
Algorithmen, bei denen die die Fortsetzung über
Wahrscheinlichkeiten bestimmt ist heißen stochastisch oder
randomisiert und sind nicht deterministisch
Beispiele für nicht-deterministischen Ablauf:


Sortieren: Wähle zufällig eine Karte, bilde zwei Stapel (lexikographisch
vor der Karte, lexikographisch nach der Karte), sortiere diese (kleineren)
Stapel, füge die sortierten Stapel wieder zusammen.
Variante 2 von „Suchen des Namen „Götze“ im Telefonbuch“ wegen der
b li bi
beliebigen
A
Auswahl
hl d
des Namens
N
X.
X
54
5.4.
Eigenschaften: Determiniertheit
21


Liefern
Li
f
b
beii gleichen
l i h Daten
D t b
beii wiederholter
i d h lt A
Ausführung
füh
stets
t t
gleiche Ergebnisse
Beispiel
p für einen nicht determinierter Algorithmus
g
1.
2.
3.

Wählen Sie eine beliebige Zahl zwischen 1 und 100
Multiplizieren Sie die Zahl mit der Anzahl der seit dem 1.1.2000
vergangenen Minuten
Schreiben Sie das Ergebnis auf
Nicht determiniert wegen



Beliebigkeit der Auswahl zum Ausführungszeitpunkt und
der Abhängigkeit vom Ausführungszeitpunkt
JJeder
d deterministische
d t
i i ti h Algorithmus
Al ith
ist
i t auchh d
determiniert.
t
i i t Ni
Nicht
ht
jeder determinierte Algorithmus ist jedoch deterministisch.
6
6.
Aufbau von Algorithmen

Größen
22
beschreiben gegebenen Zustand von Objekten
 mit Variablen (Bezeichnern)


Elementare Operationen
p
werden auf betrachtete Größen angewendet;
 unterschiedliche Abstraktionsebenen denkbar (benutzernah
(
 maschinennah)


Kontrollstrukturen/Ablaufbedingungen

beschreiben Reihenfolge und Bedingungen für elementare
Operationen
p
23


Algorithmen
Al
ih
werden
d kkonstruiert,
i
iindem
d kl
kleinere
i
BBausteine
i zu
größeren zusammengesetzt werden.
Bausteine und Kompositionsprinzipien:

Elementare Operation: nicht weiter erläutert


Sequentielle Ausführung: bei kausaler Abhängigkeit oder wenn nur ein
„Prozessor“ zur Verfügung steht



schneide Fleisch in kleine Würfel
bringe
g das Wasser zum Kochen,, dann gib
g Paket Nudeln hinein
schneide das Fleisch, dann das Gemüse
Parallele Ausführung: falls es keine Kausalitätsbeziehungen gibt und
mehrere „Prozessoren
Prozessoren“ zur Verfügung stehen

ich schneide das Fleisch, du das Gemüse
24

B di
Bedingte
Ausführung:
A f h
nur wenn Bedingung
B di
erfüllt
f ll ist
i


Schleife: Wiederholung,
Wiederholung bis Bedingung erfüllt ist


Rühre so lange, bis Soße braun
Unterprogramm:
p g
die Tätigkeit
g
wird anderswo beschrieben
und ist mehrfach benutzbar


wenn Soße zu dünn, dann füge Mehl hinzu
Bereite Soße (siehe S. 42)
RRekursion:
k i Anwendung
A
d
desselben
d
lb Algorithmus
Al i h
auff (kl
(kleineres)
i
)
Teilproblem
 Dies ist der Hund,
Hund der die Katze,
Katze die die Maus,
Maus die den
Käse, der in dem Haus, das Maja gebaut hat, lag, fraß,
tötete, ärgerte.
Sierpinski Dreieck
Sierpinski-Dreieck
7
7.
Darstellung von Algorithmen
26






natürlichsprachlich (detailliert
(
und explizit))
graphisch: Flußdiagramme, Struktogramme, ...
Pseudo-Code
Formale Sprache
p
Programmiersprache
Church‘sche
Church
sche These:
 Alle
„vernünftigen“ Darstellungen eines Algorithmus sind
äquivalent
71
7.1.
Darstellung: natürlichsprachlich
27




Einen Apfel
Ei
A f l waschen,
h in
i Vi
Viertel
t l schneiden,
h id Kerngehäuse
K
hä
entfernen
tf
und
d in
i
dünne Scheiben schneiden. Mit 1 EL Zitronensaft beträufeln. 250 g
Geflügelleber waschen, trocken tupfen und in mundgerechte Stücke
schneiden. In einer Pfanne 10 g Butter heiß werden lassen. Leber darin kurz
braten und mit 1 TL MAGGI Würzmischung würzen. Leber auf
Küchenpapier legen, damit das Fett abtropft, dann zum Apfel geben. Für
die Marinade 1 Beutel MAGGI Salat mit Pfiff „Joghurt-Kräuter“ mit einem
B h (150 g)) Joghurt,
Becher
J h t 3,5%
3 5% Fett
F tt und
d 1 EL Sonnenblumenöl
S
bl
öl verrühren.
üh
Salatzutaten damit mischen und kurz durchziehen lassen. 3 Salatblätter
waschen, abtropfen lassen, auf drei Teller verteilen und den Apfelsalat
darauf anrichten.
für Kochrezepte noch ganz angebracht
Beschreibung sehr umfangreich, enthält unwichtige Details
unstrukturiert, unübersichtlich
72
7.2.
Darstellung: Programmablaufplan
28





auch: Flußdiagramm
graphische
g
p
Darstellung
g eines Algorithmus
g
normiert nach DIN 66001
nutzt
t t Sinnbilder
Si bild fü
für elementare
l
t
Operationen
O
ti
und
d
Ablaufstrukturen
Linien bzw. Pfeile verbinden
29


Start
Anfang / Ende:
Eingabe
g
/ Ausgabe
g
von Daten:
Eingabe: Zeit t

Ausgabe: Ergebnis
(elementare) Operation
E ä
Erwärme
Wasser
W
Ende
t := t + 1
30

Verzweigung / Bedingung
ja
Wasser warm?
nein
t > 128
ja
nein

Unterablauf (in einem anderen PAP spezifiziert)
Nudeln
kochen
31


Ablauf wird durch Pfeile gekennzeichnet, die die
Symbole verbinden
zusätzlich:
 Übergangsstelle
(wenn Platz nicht reicht)
 Kommentare (an andere Symbole anfügen und
Erläuterungen hinter Klammer schreiben)
Das hier ist ein
nicht
i ht sehr
h
sinnvoller
Kommentar!
1
Start
Eier in
Ei
i Topf
T f
geben
Herdplatte
einschalten
5 Min warten
Topf mit Wasser
füllen
Herdplatte
ausschalten
Topf auf
Herdplatte stellen
Eier
e
abschrecken
nein
Kocht Wasser?
ja
1
Ende
32
Wichtig,
nicht
vergessen!
Beispiel

Bei Technikproblemen
anzuwendendes Flußdiagramm 
8
8.
Zusammenfassung
52




Algorithmus
Al
ih
als
l exakte
k BBeschreibung
h ib
eines
i
Verarbeitungsvorganges
kann analysiert,
analysiert auf Korrektheit und andere Eigenschaften
getestet werden
wichtiger
g Schritt auf dem Weg
g vom Problem zu einem
Programm
verschiedene Notationen





natürlichsprachlich
Pseudocode
Struktogramm
Programmablaufplan
...
53

Quellen:
 Gumm/Sommer:
Einführung in die Informatik
 Stucky: Vorlesung Informatik A, Uni Karlsruhe
 Fellner: Vorlesung
g Alg
g & DS 1,, TU Braunschweig
g

Documents pareils