Einführung in die Informationsverarbeitung Teil Eide (auf Basis von Thaller 2014–15) Stunde IV: Simulationen von Verhalten und Systemen Köln 7. Januar.

Slides:



Advertisements
Ähnliche Präsentationen
8. Termin Teil B: Wiederholung Begriffe Baum
Advertisements

Vortrag von Stephanie Weirauch Jens Pleger Peter Jancke Frank Wejmelka
Grundlagen des A*-Algorithmus und Anwendung in der Routenplanung
Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
Eine dynamische Menge, die diese Operationen unterstützt,
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26-Graphenalgorithmen: Wiederholung und Übung) Prof. Th. Ottmann.
Schnelle Matrizenoperationen von Christian Büttner
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Graphen Ein Graph ist eine Kollektion von Knoten und Kanten. Knoten sind einfache Objekte. Sie haben Namen und können Träger von Werten, Eigenschaften.
Suche in Texten (Stringsuche )
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Einführung in die Informationsverarbeitung Stunde X: Simulationen von Verhalten und Systemen Manfred Thaller, Universität zu Köln Köln 17. Dezember 2007.
Manfred Thaller, Universität zu Köln Köln 22. Januar 2009
Einführung in die Informationsverarbeitung Teil Thaller Stunde VI: Wege und warum man sie geht Graphen. Manfred Thaller, Universität zu Köln Köln.
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken X Christian Schindelhauer
Sortierverfahren Richard Göbel.
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Algorithmen und Datenstrukturen
Genetische Algorithmen
Content specific Languages XSLT, C++, Java, PHP... VRML, X3D, AutoCAD, 3DS, Maya, SoftImage...
Klausur „Diskrete Mathematik II“
PG 520 Intelligence Service – gezielte Informationen aus dem Internet
Minimum Spanning Tree: MST
Wir müssen also überlegen: Implementierung der Knoten, Implementierung der Kanten, daraus: Implementierung des Graphen insgesamt. Annahme: die Knoteninhalte.
Wie Google Webseiten bewertet
Splay Trees Von Projdakov Benjamin.
Flüsse, Schnitte, bipartite Graphen
Sortieralgorithmen Sortieren von Arrays.
Effiziente Algorithmen
Diskrete Mathematik II
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Institut für Theoretische Informatik
Institut für Theoretische Informatik
Jan Hinzmann – – GIS Praxis II – Slide 1/10 Der Algorithmus von Dijkstra (Berechnung kürzester Wege in bewerteten Graphen) GIS Praxis II, Jan Hinzmann,
Manfred Thaller, Universität zu Köln Köln 30. Januar 2014
Informatik Datenstruktur Graph 3.3 Durchlaufen von Graphen
Vienna Conference on Consciousness Teil I "Was ist die neuronale Grundlage des Bewußtseins? Wo ist es im Gehirn?" Beitrag von Michael L. Berger (Center.
Peer-to-Peer-Netzwerke
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms.
Manfred Thaller, Universität zu Köln Köln 11. Dezemberr 2014
Artificial Intelligience
Eine kurze Geschichte der Graphentheorie
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Der A*-Algorithmus.
Sortierverfahren Mit VB 2010 express edition JBS Tr, info Q1.
Einführung in die Informationsverarbeitung Teil Eide (auf Basis von Thaller 2014–15) Stunde III: Algorithmen, Visualisierung Köln 19. November 2015.
Einführung in die Informationsverarbeitung Teil Thaller Stunde V: Wege und warum man sie geht Graphen. Köln 14. Januar 2016.
Graphentheorie Gibt es in Königsberg einen Spaziergang, bei dem man jede der sieben Pregelbrücken genau einmal überquert? Prof. Dr. Dörte Haftendorn, Leuphana.
Adiazenzmatrix des Graphen
Was aber ist eine Art? Man kann nicht einfach sagen, das was anders aussieht, ist eine andere Art zunächst einmal nach Merkmalen: Aber nach welchen Merkmalen?:
Referenten: Moritz S., Ina B. und Sebastian R.
Projekt Graphentheorie Eulerpfad
Punkt-in-Landkarte II
Computing orthogonal drawings with the minimum number of bends
Mögliche Stoffverteilung im Grundkurs
Zufallszahlen in C erzeugen
3. Die Datenstruktur Graph 3.3 Durchlaufen von Graphen
 Präsentation transkript:

Einführung in die Informationsverarbeitung Teil Eide (auf Basis von Thaller 2014–15) Stunde IV: Simulationen von Verhalten und Systemen Köln 7. Januar 2016

I. Grundgedanke 2 (1)Ein Satz von Variablen gibt einen bestimmten Zustand wieder. (2)Dieser Zustand wird regelbasiert verändert, wobei eine bestimmte Anzahl von Veränderungen einen „Schritt“, also ein Stadium in der Entwicklung eines Systems wiedergibt. (3) Dieser Zustand kann in regelmäßigen Abständen visualisiert werden.

Bewegung und Wachstum Ausgangszustand: Position =2; Durchmesser=1; Schritt: Position=Position+1: Durchmesser=Durchmesser+Durchmesser *0.20;

Bewegung und Wachstum Position =2; Durchmesser=1;

Bewegung und Wachstum Position =3; Durchmesser=1.20;

Bewegung und Wachstum Position =4; Durchmesser=1.44;

Bewegung und Wachstum Position =5; Durchmesser=1.728;

Exkurs: Logik der Computergraphik Trennung zwischen Graphic Primitives und Graphic Context. Graphic Primitives: Draw line. Draw circle. Draw text. Fill area. [ 3D equivalents. ] 8

Exkurs: Logik der Computergraphik Trennung zwischen Graphic Primitives und Graphic Context. Graphic Context: Set line thickness. Set line type. Set line color. Set fill color. Set text font. ……… 9

Exkurs: Logik der Computergraphik Trennung zwischen Graphic Primitives und Graphic Context. Die Ausführung identischer Zeicheninstruktionen in geändertem Kontext führt zu unterschiedlichem Aussehen. Aufrufen derselben Primitives mit unterschiedlichen Parametern wie Position und Durchmesser führt zu unterschiedlicher Zeichnung. 10

Beispiel Second Life: Nose 11

Abbildung von Inhalten Vicky A. Walsh: Computer Simulation for Archaeology, In: R.W.Bailey, Computing in the Humanities, North- Holland, 1982, pp Idee: Simulation des Wachstums eines neolithischen Dorfes. Fragestellung: Liegen die ausgegrabenen Häuser dort, wo sie vorhergesagt werden? 12

Abbildung von Inhalten Gelände: Eine Matrix. Feldeigenschaften Bevölkerung im Haus: n Gelände Wasser Holz Felsen Haus 13

Generationen Errechne pro Generation für jedes Haus Bevölkerungszuwachs „zufällig“ in vorgegebenem Grenzbereich. Wenn Bevölkerung eines Hauses größer als m wird, baue neues Haus. So, dass: -Abstand zu Wasser gering, -Abstand zu Holz gering, -Abstand zu ursprünglichem Haus nahe an „zufälligem“ Zielwert. 14

Abbildung von Inhalten Gelände: Eine Matrix. Feldeigenschaften Bevölkerung im Haus: n Gelände Wasser Holz Felsen Haus 15

Sinn Wenn Befund im Gelände dem Ergebnis der Simulation entspricht, wurde der Prozess, der zur Wahl der Siedlungsplätze führte, richtig verstanden. 16

… 20 Jahre später 17

Zufall Algorithmen sind deterministisch. Das macht Spiele vorhersehbar und langweilig; Simulationen zu mechanistisch. Lösung: „Zufallsgenerator“. 18

Zufall Definition: Ein mathematisches Verfahren, dass bei n hintereinander erfolgenden Aufrufen n Zahlen in einem Bereich (Min, Max) so errechnet, dass sie zwischen Max und Min mit der Häufigkeit einer bestimmten statistischen Verteilung auftreten. Oft: Minimum = 0; Maximum = Verteilung: Gleichverteilung 19

Zufall Paradoxon: Der die „Zufalls“ zahlen generierende Algorithmus ist selbst deterministisch. Lösung: Variabler Startwert, der von einer mit dem Zweck des Programms unabhängigen und nicht vorhersehbaren Umweltbedingung abhängt. 20

Beispiel Ein Bogenschütze soll mit 33 % seiner Schüsse treffen. Vor jedem Schuss wird eine Zufallszahl von 1 bis 100 gewählt. Ist sie 33 oder kleiner, trifft der Bogenschütze; sonst geht der Schuss vorbei. 21

Zweck von Simulationen Simulationen müssen nicht unmittelbar mit Visualisierungen verbunden werden. Sie können auch dazu dienen, die Performanz von Systemen mit bestimmten Eigenschaften zu testen. 22

Simulationen  Emulationen Simulationen von Rechnersystemen auf Rechnersystemen: „Emulationen“. Smartphone Programmierung Langzeitarchivierung 23

Beispiel: Aufzucht von Trollen Annahme: Ein Troll lebt in einer n x n Welt. 24

Beispiel: Aufzucht von Trollen Diese enthält: Schafe. Schmackhaft und für das Überleben des Trolls notwendig. 25

Beispiel: Aufzucht von Trollen Diese enthält: Ritter. Aggressiv, gefährlich, aber sterblich. 26

Beispiel: Aufzucht von Trollen Diese enthält: Türme. Stationär, gefährlich, nicht bekämpfbar. 27

Beispiel: Aufzucht von Trollen Diese enthält: Refugien. Sicherer Aufenthalt. Trolle „heilen“. 28

Beispiel: Aufzucht von Trollen Diese enthält: Fallen. Sehen aus wie Refugien. „Fesseln“ den Troll für eine gewisse Zeit. Machen ihn verwundbarer. 29

Test eines Trolls: Einzelner Troll wird in Welt „geboren“. Er muss 500 „Züge“ überleben. Bei jedem Zug wird seine Reaktion durch seine „Gene“ gesteuert. Am Ende wird der Erfolg seines Lebens bewertet: double Troll::GetEvaluation() { double score = 8.0 * KnightsKilled * SheepEaten * TurnsSurvived – 1.0 * TurnsCaptive – 2.5 * DamageTaken; return score; } 30

Test eines Trolls: „Gene“. Beispiel: Ein Troll steht genau zwischen einem Ritter, einem Schaf und einem Refugium. Er habe drei Gene: {Sicherheitsstreben, Hunger, Aggressivität} Der Troll { 1.0, 0.5, 0.5} läuft ins Refugium. Der Troll { 0.5, 1.0, 0.5 } frisst das Schaf. Der Troll { 0.5, 0.5, 1.0 } attackiert den Ritter. 31

Tatsächliche Gene 1."Hunger“ oder: Zuneigung zu Schafen. 2."Aggressivität“ oder: Abneigung gegen Ritter. 3."Gesundheit“ oder: Geschwindigkeit der Heilung. 4."Fluchtbereitschaft“ oder: Misstrauen gegen potentielle Gefahren. 5."Neugier“ oder: Bereitschaft, in neue Teile des Spielfeldes zu ziehen, auch wenn kein unmittelbarer Anreiz in unmittelbarer Umgebung ist. 32

Testanordnung 1.Am Anfang werden 100 Trolle, anfänglich mit vorgegebenen „Genen“, in 100 unterschiedlichen Welten ausgesetzt. 2.Diese Welten repräsentieren unterschiedliche Umwelttypen: „schafreich“, „ritterreich“, „bevölkerungsarm“. 3.Am Ende wird der „Lebenserfolg“ jedes Trolls gemessen. 4.Und die überlebenden Trolle zeugen eine neue Generation von 100 weiteren Trollen … 5.… die bei Schritt 1 fortsetzen. 33

Die Partnerwahl des Trolls Top 20 Clonen. (= 20 junge Trolle) Das erfolgreichste Drittel paart sich. Je erfolgreicher ein Troll, desto öfter paart er sich. (= 70 junge Trolle) Einige wenige neu (mit Zufallsgenen) erzeugen. (= 10 junge Trolle) 34

Wie paaren sich Trolle? Troll-Elter 1: { 1.0, 0.8, 0.8, 0.2, 1.0 } Troll-Elter 2: { 0.8, 0.6, 0.8, 0.4, 0.9 } Troll- Kind: { 0.9, 0.7, 0.8, 0.3, 0.95 } 35

… oder auch so …: Troll-Elter 1: { 1.0, 0.8, 0.8, 0.2, 1.0 } Troll-Elter 2: { 0.8, 0.6, 0.8, 0.4, 0.9 } Troll- Kind: { 1.0, 0.6, 0.8, 0.4, 1.0 } 36

Wozu macht man sowas? Es ist auf andere Weise kaum feststellbar, welche Eigenschaften einen Troll in einem Spiel zu einem Gegner mit wechselnden, aber in etwa vorhersehbaren Eigenschaften machen. (Spielgrad für einen Ritter „leicht“, „mittel“, „schwierig“). Das Prinzip hat zahlreiche Anwendungen außerhalb der Spieleentwicklung. 37

Wozu macht man sowas? Ingenieurwissenschaften: Testen des Verhaltens von komplexen technischen Komponenten. Biowissenschaften: Testen von Annahmen über genetische Gesetzmäßigkeiten / Interaktionen zwischen vererbten Eigenschaften und der Umwelt / Reaktion auf Umweltveränderungen. Geistes- / Kulturwissenschaften: Sind wir in der Lage Entwicklungsprozesse zu modellieren, haben wir sie verstanden. 38

Wozu macht man sowas? Interaktive Medien: Schaffung künstlicher Umwelten mit „künstlichen Individuen“ vorhersagbarer Eigenschaften. 39

Back to reality „Genetische Algorithmen“ haben gezeigt dass die Rolle von Mutationen in der Evolution erheblich überschätzt wurde; „crossover“, i.e., die Neukombination von Genen, wahrscheinlich wesentlich einflussreicher. 40

Literatur Francois Dominic Laramee: "Genetic Algorithms: Evolving the Perfect Troll", in: Steve Rabin (Ed.): AI Game Programming Wisdom,Charles River Media: 2002, p Eberhard Schöneburg et al: Genetische Algorithmen und Evolutionsstrategien, Addison Wesley, Randy L. Haupt und Sue E. Haupt: Practical Genetic Algorithms, Wiley & Sons,

Graphen: Einführung 42 Anknüpfungspunkte aus früheren Stunden.

Das Problem 43

A* Algorithmus: Schluß 44

A* formell A = Stapel verwendbarer Felder; B Stapel geprüfter Felder (1) Füge den Startknoten in A ein (2) Wiederhole: (2.1) Wähle den Knoten n mit den niedrigsten Kosten F (n) aus A aus und verschiebe ihn in B (2.2) Für jeden an n direkt angrenzenden Knoten m: (2.2.1)Wenn m nicht betretbar (Hindernis, Wasser, etc.) oder bereits in B ist, ignoriere ihn (2.2.2) Füge m in A ein, wenn er noch nicht enthalten ist (2.2.3) Trage die Kosten F (m) und G(m) ein und vermerke als Vorgänger n bzw. aktualisiere sie wenn m schon enthalten war und ein Weg über n mit kleinerem G(m) gefunden wurde (3) Wenn der Zielknoten in A eingefügt wurde, ist ein Weg gefunden worden. Wenn A leer geworden ist, ohne den Zielknoten zu finden, existiert kein Weg 45

URL Server Crawler URL Server Doc Index Startet mit Anfangs URL. Liest weitere URLs aus einem Dokumenten-Index. Schickt URLs an Crawler um Seiten zu holen. Wichtig: Art der Suche im WWW (Tiefen v. Breitensuche). 46

Ausgangspunkt I Möglichkeit möglichst vieler derartiger Probleme auf eine einzige Klasse von Vorgehensweisen zurück zu führen. 47

Ausgangspunkt II: 48

Königsberger Brückenproblem Frage: Möglichkeit, alle 7 Brücken hintereinander so zu überqueren, dass jede genau einmal – also nicht mehrmals – überquert wird. Leonhard Euler (1707 bis 1783). 49

Abstraktion I 50

Abstraktion II 51

Abstraktion III B A C D 52

Abstraktion IV 53

„Ein Graph“ Knoten (Vertex, Nodes) Kanten (Edges) 54

Definition des Problems Ein Graph G heißt Eulerscher Graph, falls es einen geschlossenen einfachen Kantenzug gibt, der jede Kante von G enthält. Ein solcher Kantenzug heißt dann Eulerscher Kantenzug. 55

„Lösung“ des Problems Sei G ein zusammenhängender Graph. Genau dann ist G ein Eulerscher Graph, wenn jeder Knoten von G geraden Grad hat. 56

Danke für heute! 57