• Keine Ergebnisse gefunden

1 Vom Problem zum Program

N/A
N/A
Protected

Academic year: 2022

Aktie "1 Vom Problem zum Program"

Copied!
21
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

1 Vom Problem zum Program

EinProblembesteht darin, aus einer Menge von Informationen eine weitere (unbekannte) Information zu bestimmen.

mathematisch:

Ein Problem beschreibt eine Funktionf :EA, mit E=zulässige EingabenundA=mögliche Ausgaben.

Beispiele:

ñ Addition:f :Q×Q→Q

ñ Primzahltest:f :N→ {yes,no}

ñ Schach:f :P → Z, wobeiPdie Menge aller

Schachpositionen ist, undf (P ), der beste Zug in PositionP.

(2)

1 Vom Problem zum Program

EinProblembesteht darin, aus einer Menge von Informationen eine weitere (unbekannte) Information zu bestimmen.

mathematisch:

Ein Problem beschreibt eine Funktionf :EA, mit E=zulässige EingabenundA=mögliche Ausgaben.

Beispiele:

ñ Addition:f :Q×Q→Q

ñ Primzahltest:f :N→ {yes,no}

ñ Schach:f :P → Z, wobeiPdie Menge aller

Schachpositionen ist, undf (P ), der beste Zug in PositionP.

1 Vom Problem zum Program

Harald Räcke 3/656

(3)

1 Vom Problem zum Program

EinProblembesteht darin, aus einer Menge von Informationen eine weitere (unbekannte) Information zu bestimmen.

mathematisch:

Ein Problem beschreibt eine Funktionf :EA, mit E=zulässige EingabenundA=mögliche Ausgaben.

Beispiele:

ñ Addition:f :Q×Q→Q

ñ Primzahltest:f :N→ {yes,no}

ñ Schach:f :P → Z, wobeiPdie Menge aller

Schachpositionen ist, undf (P ), der beste Zug in PositionP.

(4)

1 Vom Problem zum Program

EinProblembesteht darin, aus einer Menge von Informationen eine weitere (unbekannte) Information zu bestimmen.

mathematisch:

Ein Problem beschreibt eine Funktionf :EA, mit E=zulässige EingabenundA=mögliche Ausgaben.

Beispiele:

ñ Addition:f :Q×Q→Q

ñ Primzahltest:f :N→ {yes,no}

ñ Schach:f :P → Z, wobeiPdie Menge aller

Schachpositionen ist, undf (P ), der beste Zug in PositionP.

1 Vom Problem zum Program

Harald Räcke 3/656

(5)

1 Vom Problem zum Program

EinProblembesteht darin, aus einer Menge von Informationen eine weitere (unbekannte) Information zu bestimmen.

mathematisch:

Ein Problem beschreibt eine Funktionf :EA, mit E=zulässige EingabenundA=mögliche Ausgaben.

Beispiele:

ñ Addition:f :Q×Q→Q

ñ Primzahltest:f :N→ {yes,no}

ñ Schach:f :P → Z, wobeiPdie Menge aller

Schachpositionen ist, undf (P ), der beste Zug in PositionP.

(6)

Algorithmus

EinAlgorithmusist einexaktes Verfahren zur Lösung eines Problems, d.h. zur Bestimmung der gewünschten Resultate.

Man sagt auch ein Algorithmusberechnet eine Funktionf.

Ausschnitt aus Briefmarke, Soviet Union 1983 Public Domain

Abu Abdallah Muhamed ibn Musa

al-Chwarizmi, ca.

780–835

(7)

Algorithmus

Beobachtung:

Nicht jedes Problem läßt sich durch einen Algorithmus lösen (Berechenbarkeitstheorie).

Beweisidee: (Diskrete Strukturen)

ñ es gibtüberabzählbar unendlichviele Probleme

ñ es gibtabzählbar unendlichviele Algorithmen

(8)

Algorithmus

Beobachtung:

Nicht jedes Problem läßt sich durch einen Algorithmus lösen (Berechenbarkeitstheorie).

Beweisidee: (Diskrete Strukturen)

ñ es gibtüberabzählbar unendlichviele Probleme

ñ es gibtabzählbar unendlichviele Algorithmen

1 Vom Problem zum Program

Harald Räcke 5/656

(9)

Algorithmus

Dasexakte Verfahrenbesteht i.a. darin, eine Abfolge von elementaren Einzelschrittender Verarbeitung festzulegen.

Beispiel:Alltagsalgorithmen

Resultat Algorithmus Einzelschritte

Pullover Strickmuster eine links, eine rechts, eine fallen lassen

Kuchen Rezept nimm 3 Eier . . .

Konzert Partitur Noten

(10)

Beispiel: Euklidischer Algorithmus

Problem:geg.a, b∈N, a, b≠0. BestimmeggT(a, b).

Algorithmus:

1. Fallsa=bbrich Berechnung ab. Es giltggT(a, b)=a.

Ansonsten gehe zu Schritt 2.

2. Fallsa > b, ersetzeadurchabund setze Berechnung in Schritt 1 fort. Ansonsten gehe zu Schritt 3.

3. Es gilta < b. Ersetzebdurchbaund setze Berechnung in Schritt 1 fort.

1 Vom Problem zum Program

Harald Räcke 7/656

(11)

Beispiel: Euklidischer Algorithmus

Warum geht das?

Wir zeigen, füra > b:ggT(a, b)=ggT(a−b, b).

Seieng=ggT(a, b),g0=ggT(a−b, b).

Dann gilt:

a = qa·g

b = qb·g und ab = q0a−b·g0 b = q0b·g0

ab = (qaqb)·g

b = qb·g und a = (q0a−b+q0b)·g0 b = qb0 ·g0 Das heißtgist Teiler vonab, bundg0 ist Teiler vona, b. Daraus folgtgg0undg0g, alsog=g0.

(12)

Beispiel: Euklidischer Algorithmus

Warum geht das?

Wir zeigen, füra > b:ggT(a, b)=ggT(a−b, b).

Seieng=ggT(a, b),g0=ggT(a−b, b).

Dann gilt:

a = qa·g

b = qb·g und ab = q0a−b·g0 b = q0b·g0

ab = (qaqb)·g

b = qb·g und a = (q0a−b+q0b)·g0 b = qb0 ·g0

Das heißtgist Teiler vonab, bundg0 ist Teiler vona, b. Daraus folgtgg0undg0g, alsog=g0.

1 Vom Problem zum Program

Harald Räcke 8/656

(13)

Beispiel: Euklidischer Algorithmus

Warum geht das?

Wir zeigen, füra > b:ggT(a, b)=ggT(a−b, b).

Seieng=ggT(a, b),g0=ggT(a−b, b).

Dann gilt:

a = qa·g

b = qb·g und ab = q0a−b·g0 b = q0b·g0

ab = (qaqb)·g

b = qb·g und a = (q0a−b+q0b)·g0 b = qb0 ·g0

Das heißtgist Teiler vonab, bundg0 ist Teiler vona, b. Daraus folgtgg0undg0g, alsog=g0.

(14)

Beispiel: Euklidischer Algorithmus

Warum geht das?

Wir zeigen, füra > b:ggT(a, b)=ggT(a−b, b).

Seieng=ggT(a, b),g0=ggT(a−b, b).

Dann gilt:

a = qa·g

b = qb·g und ab = q0a−b·g0 b = q0b·g0

ab = (qaqb)·g

b = qb·g und a = (q0a−b+q0b)·g0 b = qb0 ·g0

Das heißtgist Teiler vonab, bundg0 ist Teiler vona, b.

Daraus folgtgg0undg0g, alsog=g0.

1 Vom Problem zum Program

Harald Räcke 8/656

(15)

Eigenschaften

(statische) Finitheit. Die Beschreibung des Algorithmus besitzt endliche Länge. (nichtuniforme Algorithmen)

(dynamische) Finitheit. Die bei Abarbeitung entstehenden Zwischenergebnisse sind endlich.

Terminiertheit. Algorithmen, die nach endlich vielen Schritten ein Resultat liefern, heißenterminierend. (Betriebssysteme,

reaktive Systeme)

Determiniertheit. Bei gleichen Eingabedaten gibt ein Algorithmus das gleiche Ergebnis aus. (randomisierte Algorithmen, nicht-deterministische Algorithmen) Determinismus. Der nächste anzuwendende Schritt im

(16)

Eigenschaften

(statische) Finitheit. Die Beschreibung des Algorithmus besitzt endliche Länge. (nichtuniforme Algorithmen)

(dynamische) Finitheit. Die bei Abarbeitung entstehenden Zwischenergebnisse sind endlich.

Terminiertheit. Algorithmen, die nach endlich vielen Schritten ein Resultat liefern, heißenterminierend. (Betriebssysteme,

reaktive Systeme)

Determiniertheit. Bei gleichen Eingabedaten gibt ein Algorithmus das gleiche Ergebnis aus. (randomisierte Algorithmen, nicht-deterministische Algorithmen)

Determinismus. Der nächste anzuwendende Schritt im Verfahren ist stets eindeutig definiert. (randomisierte Algorithmen, nicht-deterministische Algorithmen)

(17)

Eigenschaften

(statische) Finitheit. Die Beschreibung des Algorithmus besitzt endliche Länge. (nichtuniforme Algorithmen)

(dynamische) Finitheit. Die bei Abarbeitung entstehenden Zwischenergebnisse sind endlich.

Terminiertheit. Algorithmen, die nach endlich vielen Schritten ein Resultat liefern, heißenterminierend. (Betriebssysteme,

reaktive Systeme)

Determiniertheit. Bei gleichen Eingabedaten gibt ein Algorithmus das gleiche Ergebnis aus. (randomisierte Algorithmen, nicht-deterministische Algorithmen) Determinismus. Der nächste anzuwendende Schritt im

(18)

Eigenschaften

(statische) Finitheit. Die Beschreibung des Algorithmus besitzt endliche Länge. (nichtuniforme Algorithmen)

(dynamische) Finitheit. Die bei Abarbeitung entstehenden Zwischenergebnisse sind endlich.

Terminiertheit. Algorithmen, die nach endlich vielen Schritten ein Resultat liefern, heißenterminierend. (Betriebssysteme,

reaktive Systeme)

Determiniertheit. Bei gleichen Eingabedaten gibt ein Algorithmus das gleiche Ergebnis aus. (randomisierte Algorithmen, nicht-deterministische Algorithmen)

Determinismus. Der nächste anzuwendende Schritt im Verfahren ist stets eindeutig definiert. (randomisierte Algorithmen, nicht-deterministische Algorithmen)

(19)

Eigenschaften

(statische) Finitheit. Die Beschreibung des Algorithmus besitzt endliche Länge. (nichtuniforme Algorithmen)

(dynamische) Finitheit. Die bei Abarbeitung entstehenden Zwischenergebnisse sind endlich.

Terminiertheit. Algorithmen, die nach endlich vielen Schritten ein Resultat liefern, heißenterminierend. (Betriebssysteme,

reaktive Systeme)

Determiniertheit. Bei gleichen Eingabedaten gibt ein Algorithmus das gleiche Ergebnis aus. (randomisierte Algorithmen, nicht-deterministische Algorithmen) Determinismus. Der nächste anzuwendende Schritt im

(20)

Programm

EinProgrammist dieFormulierungeines Algorithmus in einer Programmiersprache.

Die Formulierung gestattet (hoffentlich) eine maschinelle Ausführung.

ñ EinProgrammsystemberechnet i.a. nicht nur eine Funktion, sondernimmer wiederFunktionen in Interaktion mit

Benutzerinnen und/oder der Umgebung.

ñ Es gibt viele Programmmiersprachen:Java,C,Prolog, Fortran,TeX,PostScript, . . .

(21)

Programm

Ein Programm istgut, wenn

ñ die Programmiererinin ihr algorithmische Ideennatürlich beschreiben kann, insbesondere später noch versteht was das Programm tut (oder nicht tut);

ñ ein Computerdas Programm leicht verstehen undeffizient ausführen kann.

Referenzen

ÄHNLICHE DOKUMENTE

F¨ ur einen von der Wurzel verschiedenen Knoten v aus Trie (P ) sei Fail v der Knoten, f¨ ur den L(Fail v ) das l¨ angste echte Suffix von L(v) ist, das Pr¨ afix eines Wortes aus

Wir werden aber sehen, daß noch ein paar Zus¨ atze n¨ otig sind, um zum Beispiel sicherzustellen, daß ein unendliches Pro- dukt nur dann gleich Null ist, wenn einer der Faktoren

Diese werden durch die Politischen Grundsätze der Bundesregierung für den Export von Kriegswaffen und sonstigen Rü- stungsgütern und die Bestimmungen des Europäischen

Falls diese Restfehler, für die als einheitliches Maß sp (Q) verwendet werden kann, noch groß sind, wird man zu der Annahme geführt, daß die eliminierten

Es kann nun in jedem Schritt des Spiels ein Ball aus dem Behältnis entnommen werden und dafür beliebig (aber endlich) viele Bälle eingefüllt werden, deren Beschriftung allerdings

Unter den Ver- gleichszahlen findet sich farblich ge- kennzeichnet einerseits der Schweizer Durchschnitt über die letzten Jahre, an- dererseits wird der teilnehmende

[r]

Klangschale Tamburins werden geschlagen, geschüttelt oder gerieben Glocken werden angeschlagen oder hin und her bewegt. Blechbläser müssen die Luft im Mundansatz verwirbeln: