Softwarearchitektur eines Computerspielers. SoPra 2016 Alexander Kampmann
|
|
- Ewald Bauer
- vor 6 Jahren
- Abrufe
Transkript
1 Softwarearchitektur eines Computerspielers SoPra 2016 Alexander Kampmann
2 Model - View -Controller Server Model weiß, wie die Welt aussieht aktualisiert informiert Controller nimmt Befehle entgegen View erfährt, was passiert
3 Model - View -Controller Server Model weiß, wie die Welt aussieht aktualisiert informiert Controller nimmt Befehle entgegen schickt Commands View erfährt, was passiert Client ist eine View
4 Model - View -Controller Server Model weiß, wie die Welt aussieht aktualisiert informiert Controller nimmt Befehle entgegen View erfährt, was passiert
5 Model - View -Controller Client informiert schickt Commands Controller nimmt Befehle entgegen Server aktualisiert Model weiß, wie die Welt aussieht informiert View erfährt, was passiert
6 Model - View -Controller KI Model weiß, wie die Welt aussieht informiert View erfährt, was passiert
7 Model - View -Controller KI Model aktualisiert weiß, wie die Welt aussieht Controller nimmt Befehle entgegen und führt sie aus informiert View erfährt, was passiert
8 Model - View -Controller KI Model aktualisiert weiß, wie die Welt aussieht Controller nimmt Befehle entgegen und führt sie aus schickt ihre Commands informiert View erfährt, was passiert KI ist eine View
9 Model - View -Controller KI Model aktualisiert weiß, wie die Welt aussieht Controller nimmt Befehle entgegen und führt sie aus informiert View erfährt, was passiert
10 Model - View -Controller KI du bist dran schickt Commands Controller KI fragt Informationen ab aktualisiert Model weiß, wie die Welt aussieht informiert nimmt Befehle entgegen und führt sie aus View erfährt, was passiert
11 Der Zufall spielt // Zufallsobjekt erzeugen: Random r = new Random(); // alle Richtungen testen und eine wählen for(direction d : Direction.values()) { if(maymove(d) && r.nextboolean()) { server.sendmove(d); return; } } // dasselbe für alle anderen Commands
12 Der Zufall spielt // Zufallsobjekt erzeugen: Random r = new Random(); // alle Richtungen testen und eine wählen for(direction d : Direction.values()) { if(maymove(d) && r.nextboolean()) { server.sendmove(d); return; } } // dasselbe für alle anderen Commands
13 Mit Command-Pattern // Zufallsobjekt erzeugen: Random r = new Random(); // alle Möglichkeiten auflisten List<Command> commands = getpossiblecommands(model, getentityid()); // eine aussuchen int pos = r.nextint(commands.size()); Command command = commands.get(pos); // und an den Server senden send(command);
14 Mit Command-Pattern // Zufallsobjekt erzeugen: Command-Pattern Random r = new Random(); // alle Möglichkeiten auflisten List<Command> commands = getpossiblecommands(model, getentityid()); // eine aussuchen int pos = r.nextint(commands.size()); Command command = commands.get(pos); // und an den Server senden send(command);
15 Anforderungen an das Model Ich muss informiert werden, wenn ich dran bin. Ich muss prüfen können, ob ein Zug zulässig ist. Ich muss mitteilen können, was ich machen möchte. Ich muss abfragen können, wie die Spielwelt aussieht.
16 Mühle 1. Phase: Steine setzen 2. Phase: Steine ziehen Mühle: Stein klauen
17 In der Setzen-Phase: Regel-basierter Computerspieler Wenn ich zwei Steine in einer Reihe habe, setze ich den Dritten Wenn der Gegner zwei Steine in einer Reihe hat, setze ich auf das dritte Feld Wenn eins der Felder mit vier Nachbarn frei ist, setze ich da hin
18 Mensch Regelbasiert
19 Mensch Regelbasiert
20 Mensch Regelbasiert
21 Mensch Regelbasiert
22 Mensch Regelbasiert
23 Mensch Regelbasiert
24 Mensch Regelbasiert
25 Mensch Regelbasiert
26 Mensch Regelbasiert
27 Der Computer muss lernen, die Pläne seines Gegners zu erahnen
28 Baumsuche
29 Wie gut ist ein Zustand? (Für weiß) Sehr gut Sehr schlecht
30 Wie gut ist ein Zustand? (Für weiß) Sehr gut h( ) = 10 Sehr schlecht h( ) = 0
31 Baumsuche weiß ist am Zug 10?
32 Baumsuche 10 weiß ist am Zug 10?
33 Baumsuche schwarz ist am Zug 0
34 Baumsuche 0 schwarz ist am Zug 0
35 Heuristische Funktion Sieg: Hoher Wert Niederlage: Niedriger Wert Ich bin am Zug: Heuristik maximieren Gegner ist am Zug: Heuristik minimieren
36 Tiefensuche
37 Tiefensuche
38 Tiefensuche
39 Tiefensuche
40 Tiefensuche
41 Tiefensuche
42 Tiefensuche
43 Tiefensuche
44 Tiefensuche
45 Tiefensuche
46 Breitensuche
47 Breitensuche
48 Breitensuche
49 Breitensuche
50 Breitensuche
51 Breitensuche
52 Breitensuche
53 Breitensuche
54 Was, wenn ich nicht das ganze Spiel vorberechnen kann (1) Suchbreite beschränken: Wenn ich ein Kind mit maximalem/minimalem Wert gesehen habe, muss ich die anderen Kinder nicht mehr angucken Suchtiefe beschränken: Beispiel: Ich gucke 5 Zustände in die Zukunft
55 Was, wenn ich nicht das ganze Spiel vorberechnen kann (2) Heuristik mit anderen Informationen: eigene Lebenspunkte Summe der Gegner-Lebenspunkte Entfernung zum Gegner Damit ist auch Breitensuche möglich
56 Was, wenn ich nicht das ganze Spiel vorberechnen kann (3) Machine Learning: Sammeln Sie möglichst viele Zustände einschließlich Ergebnisse Lassen Sie ein neuronales Netz (oder einen anderen Classifier) lernen, ob nach einem bestimmten Zustand ein Sieg kommt
57 Optionen für eine KI Regelbasiert: gute Kontrolle über KI-Verhalten schlechte Anpassung an unerwartete Situationen heuristische Baumsuche: KI-Verhalten hängt stark von der Heuristik ab sehr erfolgreich (Schach, Mühle, ) Machine Learning: keine Kontrolle über KI-Verhalten (quasi keine Möglichkeit zu debuggen) extrem erfolgreich (Atari-Spiele, Go, )
58 Optionen für eine KI Regelbasiert: gute Kontrolle über KI-Verhalten schlechte Anpassung an unerwartete Situationen heuristische Baumsuche: KI-Verhalten hängt stark von der Heuristik ab sehr erfolgreich (Schach, Mühle, ) Machine Learning: keine Kontrolle über KI-Verhalten (quasi keine Möglichkeit zu debuggen) Spielstärke extrem erfolgreich (Atari-Spiele, Go, )
59 Optionen für eine KI Regelbasiert: gute Kontrolle über KI-Verhalten schlechte Anpassung an unerwartete Situationen heuristische Baumsuche: KI-Verhalten hängt stark von der Heuristik ab sehr erfolgreich (Schach, Mühle, ) Machine Learning: keine Kontrolle über KI-Verhalten (quasi keine Möglichkeit zu debuggen) extrem erfolgreich (Atari-Spiele, Go, ) Programmieraufwand Spielstärke
60 Wie implementiere ich eine Baumsuche? Queue q lege den aktuellen Zustand in q solange noch Zustände in q sind: nehme den nächsten Zustände aus q erzeuge alle Kind-Zustände lege die Kind-Zustände in q wenn keine Zustände mehr in q sind der beste Zustand ist der, wo ich hin will
61 Beispiel Heuristik: Abstand zum Wildschwein Queue: Move(NORTH_EAST), 3 Move(NORTH_WEST), 3 Move(WEST), 4 Move(EAST), 4 Move(SOUTH_WEST), 5 Move(SOUTH_EAST),
62 Beispiel Heuristik: Abstand zum Wildschwein Queue: Move(NORTH_EAST), 3 Move(NORTH_WEST), 3 Move(WEST), 4 Move(EAST), 4 Move(SOUTH_WEST), 5 Move(SOUTH_EAST),
63 Beispiel Heuristik: Abstand zum Wildschwein Queue: Move(NORTH_EAST), 2 Move(NORTH_WEST), 2 Move(EAST), 3 Move(WEST), 3 Move(SOUTH_WEST), 4 Move(SOUTH_EAST), 4 (alt) Move(NORTH_EAST), 3 (alt) Move(NORTH_WEST), 3 (alt) Move(WEST), 4 (alt) Move(EAST), 4 (alt) Move(SOUTH_WEST), 5 (alt) Move(SOUTH_EAST), 5
64 Beispiel Heuristik: Abstand zum Wildschwein Queue: Move(NORTH_EAST), 2 Move(NORTH_WEST), 2 Move(EAST), 3 Move(WEST), 3 Move(SOUTH_WEST), 4 Move(SOUTH_EAST), 4 (alt) Move(NORTH_EAST), 3 (alt) Move(NORTH_WEST), 3 (alt) Move(WEST), 4 (alt) Move(EAST), 4 (alt) Move(SOUTH_WEST), 5 (alt) Move(SOUTH_EAST), 5
65 Beispiel Heuristik: Abstand zum Wildschwein Queue: Move(NORTH_EAST), 2 Move(NORTH_WEST), 1 Move(EAST), 3 Move(WEST), 2 (alt) Move(NORTH_EAST), 2 (alt)move(north_west), 2 (alt) Move(EAST), 3 (alt) Move(WEST), 3 (alt) Move(SOUTH_WEST), 4 (alt) Move(SOUTH_EAST), 4 (alt) Move(NORTH_EAST), 3 (alt) Move(NORTH_WEST), 3 (alt) Move(WEST), 4 (alt) Move(EAST), 4
66 Beispiel Heuristik: Abstand zum Wildschwein Queue: Move(NORTH_EAST), 2 Move(NORTH_WEST), 1 Move(EAST), 3 Move(WEST), 2 (alt) Move(NORTH_EAST), 2 (alt)move(north_west), 2 (alt) Move(EAST), 3 (alt) Move(WEST), 3 (alt) Move(SOUTH_WEST), 4 (alt) Move(SOUTH_EAST), 4 (alt) Move(NORTH_EAST), 3 (alt) Move(NORTH_WEST), 3 (alt) Move(WEST), 4 (alt) Move(EAST), 4
67 Anforderungen an das Model Ich muss informiert werden, wenn ich dran bin. Ich muss prüfen können, ob ein Zug zulässig ist. Ich muss mitteilen können, was ich machen möchte. Ich muss abfragen können, wie die Spielwelt aussieht.
68 Anforderungen an das Model Ich muss informiert werden, wenn ich dran bin. Ich muss prüfen können, ob ein Zug zulässig ist. Ich muss mitteilen können, was ich machen möchte. Ich muss abfragen können, wie die Spielwelt aussieht. Ich muss Spielzüge simulieren können.
69 Wie simuliere ich? Einen Zug ausprobieren, ohne das Model zu ändern Ich möchte wissen, wie die Welt nach dem Zug aussieht, um die Heuristik für diesen Zustand berechnen zu können Ich simuliere, indem ich den Zug auf einer Kopie des Models ausführe indem ich im Command-Pattern ein unexecute() implementiere
70 Command-Pattern StabCommand + validate(model) + execute(model) + unexecute(model) Command + validate(model) + execute(model) + unexecute(model) MoveCommand + validate(model) + execute(model) + unexecute(model) Oberklasse Command mit abstrakten Methoden eine Unterklasse für jeden Command mit Implementierungen StareCommand + validate(model) + execute(model) + unexecute(model)
71 Kopieren des Model Model copy(model m) { Model m2 = new Model(); m2.f1 = m.f1; m2.f2 = m.f2; return m2; } m : Model m : Monster f1 : Field f2 : Field
72 Kopieren des Model Model copy(model m) { Model m2 = new Model(); m2.f1 = m.f1; m2.f2 = m.f2; return m2; } m : Model m2 : Model m : Monster f1 : Field f2 : Field
73 Kopieren des Model Model copy(model m) { Model m2 = new Model(); m2.f1 = m.f1; m2.f2 = m.f2; return m2; } m : Model m2 : Model m : Monster f1 : Field f2 : Field
74 Kopieren des Model Model copy(model m) { Model m2 = new Model(); m2.f1 = copy(m.f1); m2.f2 = copy(m.f2); return m2; } m : Model m2 : Model m : Monster f1 : Field f2 : Field m_2 : Monster f1_2 : Field f2_2 : Field
75 Memento-Pattern Model unveränderliche Daten veränderliche Daten
76 Memento-Pattern Model 1. kopieren unveränderliche Daten veränderliche Daten veränderliche Daten
77 Memento-Pattern Model unveränderliche Daten veränderliche Daten veränderliche Daten
78 Model Memento-Pattern 2. Simulieren unveränderliche Daten veränderliche Daten veränderliche Daten
79 Memento-Pattern Model unveränderliche Daten veränderliche Daten veränderliche Daten
80 Model Memento-Pattern 3. Zurücksetzen unveränderliche Daten veränderliche Daten veränderliche Daten
81 Model unveränderliche Daten Memento-Pattern 3. Zurücksetzen veränderliche Daten
82 Model unveränderliche Daten veränderliche Daten Memento-Pattern 3. Zurücksetzen Vorteile: Leichter zu implementieren als unexecute() (weniger Code!) Weniger Daten zum Kopieren als bei voller Kopie
83 Memento-Pattern Nachteile Normaler Entwurf m : Model Der Entwurf entfernt sich vom intuitiven Objektmodell m : Monster f1 : Field f2 : Field Mit Memento-Pattern m : Model me : Memento f1 : Field f2 : Field m : Monster
84 Memento-Pattern Nachteile Normaler Entwurf m : Model Der Entwurf entfernt sich vom intuitiven Objektmodell m : Monster f1 : Field f2 : Field Mit Memento-Pattern m : Model me : Memento f1 : Field f2 : Field m : Monster
85 Single-Dot Rule Model model = /* */; Monster m = model.getfield(1, 3).getMonster();
86 Single-Dot Rule Model model = /* */; Monster m = model.getfield(1, 3).getMonster(); Single-Dot Rule?
87 Single-Dot Rule Model model = /* */; Monster m = model.getfield(1, 3).getMonster(); Single-Dot Rule? Model model = /* */; Field f = model.getfield(1, 3); Monster m = f.getmonster();
88 Single-Dot Rule Model model = /* */; Monster m = model.getfield(1, 3).getMonster(); Single-Dot Rule? Model model = /* */; Field f = model.getfield(1, 3); Monster m = f.getmonster(); Andere Syntax, selbe Semantik, das zählt nicht!
89 Stellen Sie sich vor, Sie wollen auf Memento-Pattern umbauen Model model = /* */; Monster m = model.getfield(1, 3).getMonster(); Model model = /* */; Field f = model.getfield(1, 3); Memento memento = model.getmemento(); Monster m = memento.getmonsterat(f);
90 Single-Dot Rule eingehalten Model model = /* */; Monster m = model.getfield(1, 3).getMonster(); Model model = /* */; Monster m = model.getmonster(1, 3); class Model { Monster getmonster(int x, int y) { Field f = getfield(x, y); return f.getmonster(); } }
91 Anforderungen an das Model Ich muss informiert werden, wenn ich dran bin. Ich muss prüfen können, ob ein Zug zulässig ist. Ich muss mitteilen können, was ich machen möchte. Ich muss abfragen können, wie die Spielwelt aussieht. Ich muss Spielzüge simulieren können.
92 Heuristiken eigene Lebenspunkte maximieren Lebenspunkte der Gegner minimieren Entfernung zum Gegner (minimieren oder maximieren?)
93 Mehrere Heuristiken kombinieren (1) Gewichtete Summe (weighted sum): h c (m) = 1 h 1 (m)+ 2 h 2 (m) n h n (m)
94 Mehrere Heuristiken kombinieren (1) Gewichtete Summe (weighted sum): h c (m) = 1 h 1 (m)+ 2 h 2 (m) n h n (m) Steuern, welche Heuristik am Wichtigsten ist
95 Mehrere Heuristiken kombinieren (2) Entfernung zum Heilfeld: 3 Lebenspunkte des Gegner: 85 Move Shoot Entfernung zum Heilfeld: 2 Lebenspunkte des Gegner: 85 Entfernung zum Heilfeld: 3 Lebenspunkte des Gegner: 74 Lebenspunkte ändern sich viel schneller als Entfernungen (und sind potenziell größer), deshalb dominieren sie die Heuristik
96 Heuristiken normalisieren Heuristiken zwischen 0 und 1 bringen: h 0 (m) = h(m) max h Heuristiken auf eine gemeinsame Einheit bringen: statt: Entfernung zum Heilfeld Wie viele Commands brauche ich noch da hin? statt: Lebenspunkte des Gegners Wie viele Commands brauche ich noch um ihn zu töten?
97 Heuristiken invertieren Maximieren oder Minimieren? Ob kleiner Wert guter Zustand oder schlechter Zustand heißt, ändert nur den Vergleich im Algorithmus Heuristik umdrehen: h 0 (m) = h(m) h 0 (m) = max h h(m)
98 Anforderungen an das Model Ich muss informiert werden, wenn ich dran bin. Ich muss prüfen können, ob ein Zug zulässig ist. Ich muss mitteilen können, was ich machen möchte. Ich muss abfragen können, wie die Spielwelt aussieht. Ich muss Spielzüge simulieren können.
Programmierung einer KI. SoPra 2017 Jenny Hotzkow
Programmierung einer KI SoPra 2017 Jenny Hotzkow Model View Controller Client KI Integration in die Softwarearchitektur (1) KI Integration in die Softwarearchitektur (2) Command-Pattern // Bestimmung möglicher
MehrGrundlagen der Künstlichen Intelligenz
Grundlagen der Künstlichen Intelligenz 14. Klassische Suche: IDA Malte Helmert Universität Basel 31. März 2014 Klassische Suche: Überblick Kapitelüberblick klassische Suche: 3. 5. Einführung 6. 9. Basisalgorithmen
MehrGrundlagen der Künstlichen Intelligenz
Grundlagen der Künstlichen Intelligenz 6. Klassische Suche: Datenstrukturen für Suchalgorithmen Malte Helmert Universität Basel 7. März 2014 Klassische Suche: Überblick Kapitelüberblick klassische Suche:
MehrGrundlagen der Künstlichen Intelligenz Einführung Minimax-Suche Bewertungsfunktionen Zusammenfassung. Brettspiele: Überblick
Grundlagen der Künstlichen Intelligenz 22. Mai 2015 41. Brettspiele: Einführung und Minimax-Suche Grundlagen der Künstlichen Intelligenz 41. Brettspiele: Einführung und Minimax-Suche Malte Helmert Universität
MehrMoGo Seminar Knowledge Engineering und Lernern in Spielen Sommersemester 2010
MoGo Seminar Knowledge Engineering und Lernern in Spielen Sommersemester 2010 08.06.2010 Fachbereich 20 Knowledge Engineering Group Christian Brinker 1 Inhalt Go Probleme für KIs Monte-Carlo-Suche UCT-Suchalgorithmus
MehrPeg-Solitaire. Florian Ehmke. 29. März / 28
Peg-Solitaire Florian Ehmke 29. März 2011 1 / 28 Gliederung Einleitung Aufgabenstellung Design und Implementierung Ergebnisse Probleme / Todo 2 / 28 Einleitung Das Spiel - Fakten Peg-33 33 Löcher, 32 Steine
MehrCreational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.
Creational Patterns Seminar Software-Entwurf WS 2004/05 Thomas Liro Inhaltsüberblick Einordnung des Themas Beschreibung von Design Pattern Auswahl von Design Patterns Was sind Creational
MehrObjektorientierte und Funktionale Programmierung SS 2014
Objektorientierte und Funktionale Programmierung SS 2014 6 Objektorientierte Entwurfsmuster 1 6 Objektorientierte Entwurfsmuster Lernziele Einige wichtige Entwurfsmuster kennen und verstehen Einsatzmöglichkeiten
Mehr2. Spiele. Arten von Spielen. Kombinatorik. Spieler haben festgelegte Handlungsmöglichkeiten, die durch die Spielregeln definiert werden.
. Spiele Arten von Spielen. Spiele. Spiele Arten von Spielen Kombinatorik Spieler haben festgelegte Handlungsmöglichkeiten, die durch die Spielregeln definiert werden. Kombinatorische Spiele als Suchproblem
MehrSoftware-Entwurfsmuster (weitere) A01 OOP. Software-Entwurfsmuster (weitere)
2014-01-08 Software-Entwurfsmuster (weitere) 1 185.A01 OOP Software-Entwurfsmuster (weitere) 2014-01-08 Software-Entwurfsmuster (weitere) 2 OOP Vererbung versus Delegation class A { public void x() { z();
MehrIntelligente Systeme
Intelligente Systeme Spiele Prof. Dr. R. Kruse C. Braune {rudolf.kruse,christian,braune}@ovgu.de Institut für Intelligente Kooperierende Systeme Fakultät für Informatik Otto-von-Guericke Universität Magdeburg
MehrEinführung in die Methoden der Künstlichen Intelligenz. Suche bei Spielen
Einführung in die Methoden der Künstlichen Intelligenz Suche bei Spielen Dr. David Sabel WS 2012/13 Stand der Folien: 5. November 2012 Zwei-Spieler-Spiele Ziel dieses Abschnitts Intelligenter Agent für
MehrÜberblick FBC SNW Zusammenfassung. Entwurfsmuster. Eine Einführung. Botond Draskoczy. Marcus Vitruvius Pollio
Entwurfsmuster Eine Einführung Botond Draskoczy Marcus Vitruvius Pollio Überblick Historie, Literatur Das Flugapparat-Bildschirmschoner-Projekt (FBP) Das internetbasierte Solar-Netzwerk (SNW) Zusammenfassung
MehrEinführung in die Methoden der Künstlichen Intelligenz. Suche bei Spielen
Einführung in die Methoden der Künstlichen Intelligenz Suche bei Spielen Prof. Dr. Manfred Schmidt-Schauß SoSe 2016 Stand der Folien: 12. Mai 2016 Zwei-Spieler-Spiele Ziel dieses Abschnitts Intelligenter
MehrEinführung in Heuristische Suche
Einführung in Heuristische Suche Beispiele 2 Überblick Intelligente Suche Rundenbasierte Spiele 3 Grundlagen Es muss ein Rätsel / Puzzle / Problem gelöst werden Wie kann ein Computer diese Aufgabe lösen?
MehrTop-down Bottom-up Divide & Conquer Dynamisches Programmieren Caching (Memoization) Branch-and-Bound Greedy
2.2 Entwurfsparadigmen Top-down Bottom-up Divide & Conquer Dynamisches Programmieren Caching (Memoization) Branch-and-Bound Greedy 1 Top-Down Zerlege das gegebene Problem in Teilschritte Zerlege Teilschritte
MehrGrundlagen der Künstlichen Intelligenz
Grundlagen der Künstlichen Intelligenz 9. Klassische Suche: Baumsuche und Graphensuche Malte Helmert Universität Basel 13. März 2015 Klassische Suche: Überblick Kapitelüberblick klassische Suche: 5. 7.
MehrPraktikum Compilerbau Sitzung 7 libfirm
Praktikum Compilerbau Sitzung 7 libfirm Lehrstuhl für Programmierparadigmen Universität Karlsruhe (TH) 3. Juni 29 (IPD Snelting) Sitzung 7 libfirm 3. Juni 29 / 2 Letzte Woche 2 Firmgraph Optimierungen
MehrProgrammierkurs C++ Abstrakte Klassen und Methoden
Programmierkurs C++ Abstrakte Klassen und Methoden Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie Obst double
MehrDesign Patterns 2. Model-View-Controller in der Praxis
Design Patterns 2 Model-View-Controller in der Praxis Design Patterns Oft Schablonen für eine Klassenstruktur... aber nicht immer! Dahinterliegende Konzepte wichtiger als wörtliche Umsetzung Pattern werden
MehrIntelligente Systeme
Intelligente Systeme Heuristische Suchalgorithmen Prof. Dr. R. Kruse C. Braune {rudolf.kruse,christian.braune}@ovgu.de Institut für Intelligente Kooperierende Systeme Fakultät für Informatik Otto-von-Guericke-Universität
MehrHerzlich Willkommen. Spielstrategien. gehalten von Nils Böckmann
Herzlich Willkommen Spielstrategien gehalten von Nils Böckmann Agenda 1. Einführung 2. Problemstellung 3. Abgrenzung 4. Zielstellung / grober Überblick 5. Vorstellen der Konzepte 1. Umgebungslogik 2. Spielbäume
Mehr7. Transitive Hülle. Kante des Graphen. Zusatz-Kante der transitiven Hülle
In Anwendungen ist es oft interessant zu wissen, ob man überhaupt von einem Knoten v zu einem Knoten w gelangen kann, ganz gleich wie lang der Weg auch ist. Gegeben sei dabei ein gerichteter Graph G =
MehrGrundlagen der KI + Reasoning Agents
Grundlagen der KI + Reasoning Agents Prof. Thielscher Welche heuristischen Suchverfahren gibt es? Erläutern Sie A* am Beispiel. Aufbau und Schlussfolgerungen von Bayesschen Netzen. Thielscher drängt auf
MehrThinking Machine. Idee. Die Thinking Machine Visualisierung versucht, die Denkprozesse eines Schachcomputers sichtbar zu machen
Thinking Machine (http://www.turbulence.org/spotlight/thinking/) Idee Die Thinking Machine Visualisierung versucht, die Denkprozesse eines Schachcomputers sichtbar zu machen Sie wurde von Martin Wattenberg
MehrSpiele als Suchproblem
Spiele als Suchproblem betrachten Spiele für zwei Personen, diese sind abwechselnd am Zug Spiel endet in einem aus einer Menge möglicher Terminalzustände deterministische, im Prinzip zugängliche Umgebung
Mehr6. Spiele Arten von Spielen. 6. Spiele. Effizienzverbesserung durch Beschneidung des Suchraums
6. Spiele Arten von Spielen 6. Spiele Kombinatorische Spiele als Suchproblem Wie berechnet man eine gute Entscheidung? Effizienzverbesserung durch Beschneidung des Suchraums Spiele mit Zufallselement Maschinelles
MehrProgrammierkurs Prolog, SS 2000
Programmierkurs Prolog SS 2000 Universitaet Dortmund nach Joachims 1998 Suche Repräsentation von Bäumen Repräsentation von Graphen Suchstrategien DFS, BFS, Iterative Deepening, Locale Heuristiken, Globale
MehrKulami. Fabio Valdés. LG Datenbanksysteme für neue Anwendungen
Fakultät Fakultätfür fürmathematik Mathematikund undinformatik Informatik Kulami Fabio Valdés Einführung Kulami Problemstellung Anforderungen Details Folie 2 Spielregeln Ziel des Spiels Punktezählung Aufgabenstellung
MehrSemesterprojekt Implementierung eines Brettspiels (inklusive computergesteuerter Spieler)
Semesterprojekt Implementierung eines Brettspiels (inklusive computergesteuerter Spieler) Wintersemester 16/17 (Kleine) Einführung zu Künstlicher Intelligenz in Brettspielen Patrick Schäfer patrick.schaefer@hu-berlin.de
MehrGraph Suchalgorithmus Uninformierte Suche Informierte Suche. Pfadsuche. Mario Mohr. GWV-Tutorium 2013/ Januar 2014
Pfadsuche Mario Mohr GWV-Tutorium 2013/14 17. Januar 2014 4 Informierte Suche Heuristik Best-first A* 1 Graph 2 Suchalgorithmus 3 Uninformierte Suche Breadth-first Loop detection & multiple-path pruning
MehrSuche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche. Suche in Spielbäumen. KI SS2011: Suche in Spielbäumen 1/20
Suche in Spielbäumen Suche in Spielbäumen KI SS2011: Suche in Spielbäumen 1/20 Spiele in der KI Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche Einschränkung von Spielen auf: 2 Spieler:
MehrUninformierte Suche in Java Informierte Suchverfahren
Uninformierte Suche in Java Informierte Suchverfahren Stephan Schwiebert WS 2009/2010 Sprachliche Informationsverarbeitung Institut für Linguistik Universität zu Köln Suchprobleme bestehen aus Zuständen
MehrAlgorithmen & Datenstrukturen 2 Praktikum 3
Algorithmen & Datenstrukturen 2 Praktikum 3 Thema: Graphalgorithmen Sommersemester 2016 Prof. Dr. Christoph Karg Hochschule Aalen Dieses Praktikum widmet sich dem Thema Graphalgorithmen. Ziel ist die Implementierung
MehrKI in Computerspielen
KI in omputerspielen Decision Making 04.07.2017 Institut für Informatik K.I in omputerspielen 1 Inhalt Decision Making Behavior Trees Regelbasierte Systeme Institut für Informatik K.I in omputerspielen
MehrLearning Search Control
Learning Search Control Knowledge Engineering und Lernen in Spielen Vortrag von Simone Daum 25. Mai 2004 1 Überblick In Spielen wie Schach und Othello stützt man sich stark auf Brute-Force-Ansätze wie
MehrPlay Framework, MySQL, JPA, HQL, HTML, jquery,
Play Framework, MySQL, JPA, HQL, HTML, jquery, Wer Mit wem Resultat 1.Kunde Schalter: Bibliothekarin Bestimmt,welcher Archivar die Zeitschrift holen geht 2. Schalter: Bibliothekarin Archivar Kontrollübergabe
MehrEinführung: Verteilte Systeme - Remote Method Invocation -
Einführung: Verteilte Systeme - - Prof. Dr. Michael Cebulla 11. Dezember 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 43 M. Cebulla Verteilte Systeme Gliederung 1 2 Architektur RMI Kommunikation
Mehr14. Java Objektorientierung. Klassen, Vererbung, Kapselung
427 14. Java Objektorientierung Klassen, Vererbung, Kapselung Objektorientierung: Verschiedene Aspekte 428 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen
MehrKapitel 15. Virtuelle Klassen
Kapitel 15 Virtuelle Klassen Grundidee: Ein Member kann nicht nur Instanzvariable oder Methode, sondern auch Klasse sein Anders als bei Inner classes gibt es Redefinition dieser Virtuellen Klassen in Unterklassen
MehrAlgorithmen und Datenstrukturen Wintersemester 2008/ Übung Abgabe bis , 10:00 Uhr
4. Übung Abgabe bis 17.11.2008, 10:00 Uhr Aufgabe 4.1: Sichtbarkeit und Referenzen 20 Punkte Geben Sie ihre Antworten als Sichtbarkeit.pdf ab. a) Betrachten Sie folgenden Code: 1 public class Vis { 26
MehrTECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die rmatik I Übungsblatt 8 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz, Dr.
MehrObjektorientierteund FunktionaleProgrammierung
Objektorientierte und Funktionale Programmierung SS 2014 6 Objektorientierte Entwurfsmuster 1 6 Objektorientierte Entwurfsmuster Lernziele Einige wichtige Entwurfsmuster kennen und verstehen Einsatzmöglichkeiten
MehrBäume 1. Thomas Röfer
Bäume Thomas Röfer Preisverleihung Begriffsdefinitionen Eigenschaften Implementierung von Bäumen Durchlaufen von Bäumen Breitensuche/Tiefensuche Huffman-Kodierung Rückblick Sortieren Permutieren nach Dijkstra
MehrJUnit a Cook s Tour. Framework in Java Automatisierter Ablauf von Testfällen Testläufe kombinieren. Unterlagen als PDF auf der Übungsseite!
JUnit a Cook s Tour Ziel des Frameworks Framework in Java Automatisierter Ablauf von Testfällen Testläufe kombinieren Design des Frameworks Beginne bei Nichts Schritt für Schritt aus passenden Mustern
MehrÜbersicht. 5. Spiele. I Künstliche Intelligenz II Problemlösen 3. Problemlösen durch Suche 4. Informierte Suchmethoden
Übersicht I Künstliche Intelligenz II Problemlösen 3. Problemlösen durch Suche 4. Informierte Suchmethoden 5. Spiele III Wissen und Schlußfolgern IV Logisch Handeln V Unsicheres Wissen und Schließen VI
MehrProgrammieren in Java
Programmieren in Java Vorlesung 06: Das Visitor Pattern Prof. Dr. Peter Thiemann (vertreten durch Luminous Fennell) Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg)
Mehr15. Algorithmus der Woche Das Rucksackproblem Die Qual der Wahl bei zu vielen Möglichkeiten
15. Algorithmus der Woche Das Rucksackproblem Die Qual der Wahl bei zu vielen Möglichkeiten Autoren Rene Beier, MPI Saarbrücken Berthold Vöcking, RWTH Aachen In zwei Monaten startet die nächste Rakete
MehrPrimzahlen und Programmieren
Primzahlen Wir wollen heute gemeinsam einen (sehr grundlegenden) Zusammenhang zwischen Programmieren und Mathematik herstellen. Die Zeiten in denen Mathematiker nur mit Zettel und Stift (oder Tafel und
MehrAgenda. Informatik I WS05/06 Folien von Tobias Dezulian
15.12.2005 Agenda Geltungsbereich (Scope) von Variablen Blöcke Der Call-Stack Einschub: Debugging unter Eclipse Der Heap Lebensdauer von Objekten Müllabfuhr: Garbage Collection Exceptions Geltungsbereich
MehrTD-Gammon. Michael Zilske
TD-Gammon Michael Zilske zilske@inf.fu-berlin.de TD-Gammon Ein Backgammon-Spieler von Gerald Tesauro (Erste Version: 1991) TD-Gammon Ein Neuronales Netz, das immer wieder gegen sich selbst spielt und dadurch
MehrGeneral Game Playing
General Game Playing Martin Günther mguenthe@uos.de 17. Juni 2010 1 / 31 1997: Deep Blue schlägt Kasparov Motivation: warum General Game Playing? AAAI General Game Playing Competition 2 / 31 Motivation:
Mehr8.1 Blinde Suche. Grundlagen der Künstlichen Intelligenz. Klassische Suche: Überblick. 8. Klassische Suche: Breitensuche und uniforme Kostensuche
Grundlagen der Künstlichen Intelligenz 17. März 2014 8. Klassische Suche: Breitensuche und uniforme Kostensuche Grundlagen der Künstlichen Intelligenz 8. Klassische Suche: Breitensuche und uniforme Kostensuche
MehrBeispiele. mit. Beispiel 2.3. Suche einen Weg von nach. Tiefensuche bzw. Breitensuche.
2. Suchverfahren Uninformierte Suchverfahren Beispiel 2.4. Ein Weinhändler hat drei Krüge, einen von 9 Liter, einen von 7 Liter und einen von 4 Liter Inhalt. Auf den Krügen sind keine Litermarkierungen
Mehr14. Java Objektorientierung
Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen
MehrObjektorientierte Analyse (OOA) OOA-Pattern
OOA-Muster (Architektur Pattern) Ein Pattern (Entwurfsmuster) ist ein Problem mit seiner Lösung in einem Kontext. Der Kontext enthält in der Regel Zielkonflikte, die der Designer lösen muss, z.b. Performance
MehrEinführung in die Informatik II
Einführung in die Informatik II SS 2012 6 Objektorientierte Entwurfsmuster Wissensbassierte Systeme / Wissensmanagement Einführung in die Informatik II 1 Prüfungstermine EI II im Sommersemester 2012 Klausurtermine
MehrMVC-Architektur am Beispiel von OLAT
MVC-Architektur am Beispiel von OLAT Marvin Frommhold 12. Januar 2009 Gliederung Begriffe Entwurfsmuster Umsetzung in OLAT Aufbau des Brasato-Frameworks Quellen Begriffe I MVC bezeichnet ein Architekturmuster
MehrKonzepte der Programmiersprachen
Konzepte der Programmiersprachen Sommersemester 2010 4. Übungsblatt Besprechung am 9. Juli 2010 http://www.iste.uni-stuttgart.de/ps/lehre/ss2010/v_konzepte/ Aufgabe 4.1: Klassen in C ++ Das folgende C
MehrZustandsraumsuche: Blinde und Heuristische Suche. Blinde und Heuristische Suche
Zustandsraumsuche: Blinde und Heuristische Suche Einführung in die KI Übungsstunde am 01.11.04 Benmin Altmeyer 1 Heute im Angebot Was ist Suche? Suche als Probemlösung Zustandsraumsuche Vollständigkeit
MehrBacktracking mit Heuristiken
Backtracking mit Heuristiken Thomas Dübendorfer thomas@duebendorfer.ch 14. September 2000 Inhalt und Ablauf 1. Einführendes Beispiel (4 min) 2. Konzepte zu Backtracking (8 min) 3. Eingesperrt im Labyrinth
Mehrlässt sich auch ableiten, dass es einen augmentierenden Pfad der Länge höchstens
Praktikum Algorithmen-Entwurf (Teil 5)..5 Matchings in Graphen Es sei ein ungerichteter Graph G = (V, E) gegeben. Ein Matching in G ist eine Teilmenge M E, so dass keine zwei Kanten aus M einen Endpunkt
MehrWS 2009/10. Diskrete Strukturen
WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910
MehrVererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus
Vererbung Generalisierung und Spezialisierung Vererbung und Polymorphismus Wir wollen in unserem Aquarium verschiedene Arten von Fischen schwimmen lassen. In einem ersten Ansatz definieren wir nicht nur
MehrRealisierungsmöglichkeiten für parametrische Polymorphie
4. Parametrisierbare Klassen Realisierung von Generics Realisierungsmöglichkeiten für parametrische Polymorphie heterogen Für jeden konkreten Typ wird individueller Code erzeugt (type expansion). Diesen
MehrAlgorithmen und Datenstrukturen CS1017
Algorithmen und Datenstrukturen CS1017 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Datenabstraktionen und GUIs MVC-Muster MVC mit Beobachtbaren Datenstrukturen GUIs und Datenabstraktionen
MehrEIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217
EIDI 1 Einführung in die Informatik 1 PGdP Praktikum Grundlagen der Programmierung Harald Räcke 2/217 Wie löst man Probleme mithilfe von Computern? 0 Harald Räcke 3/217 Inhalte: EIDI 1 1. Was ist das Problem?
MehrMini-Projekt: miniirc
Netzwerk-Programmierung Mini-Projekt: miniirc Alexander Sczyrba Michael Beckstette {asczyrba,mbeckste}@techfak.uni-bielefeld.de Übersicht Design des Servers mit Perl/Tk Kommunikations-Protokoll Netzwerk-Programmierung
MehrProgrammieren in Java
Programmieren in Java Vorlesung 04: Rekursive Klassen Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 56 Inhalt
MehrZwei-Spieler-Spiele. Einführung in die Methoden der Künstlichen Intelligenz. Suche bei Spielen. Schach. Schach (2)
Einführung in die Methoden der Künstlichen Intelligenz Suche bei Spielen Prof. Dr. Manfred Schmidt-Schauß Ziel dieses Abschnitts Intelligenter Agent für Zweipersonenspiele Beispiele: Schach, Dame, Mühle,...
MehrEinführung in die Informatik 2
Einführung in die nformatik 2 raphenexploration Sven Kosub A Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.v. Sommersemester
MehrAbschätzung der Suchbaumgröße
Effiziente Algorithmen Lösen NP-vollständiger Probleme 263 Abschätzung der Suchbaumgröße Der Schätzwert für die Suchbaumgröße war 3529. Lassen wir das Programm laufen, ergibt sich, daß 1830 gültige Positionen
MehrMultimedia im Netz Wintersemester 2012/13
Multimedia im Netz Wintersemester 2012/13 Übung 10 Ludwig-Maximilians-Universität München Multimedia im Netz WS 2012/13 - Übung 10-1 Lösung zu Übungsblatt 08 Ludwig-Maximilians-Universität München Multimedia
MehrProgrammierkurs Java
Programmierkurs Java Abstrakte Klassen und Methoden & Interfaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie
MehrGraphdurchmusterung, Breiten- und Tiefensuche
Prof. Thomas Richter 18. Mai 2017 Institut für Analysis und Numerik Otto-von-Guericke-Universität Magdeburg thomas.richter@ovgu.de Material zur Vorlesung Algorithmische Mathematik II am 18.05.2017 Graphdurchmusterung,
MehrProperty Based Testing
Property Based Testing Nicolai Mainiero sidion Testen ist schwer Testen ist schwer Warum? Alle Pfade durch den Code aufzuzählen ist aufwendig. Selbst vermeintlich einfache Systeme können komplex sein.
MehrKlausur Software-Entwicklung März 01
Aufgabe 1: minimaler Punktabstand ( 2+5 Punkte ) Matrikelnr : In einem Array punkte sind Koordinaten von Punkten gespeichert. Ergänzen Sie in der Klasse Punkt eine Klassen-Methode (=static Funktion) punktabstand,
Mehr12. Graphen Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013
12. Graphen Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013 1 Agenda Kontrollfragen Graphen Graphenalgorithmen 2
MehrDieses Dokument enthält alle Teilaufgaben zur Java-Pflichtaufgabe für das Sommersemester Aufgabe 1 (Vier Gewinnt 1. Teil)
Vier Gewinnt Dieses Dokument enthält alle Teilaufgaben zur Java-Pflichtaufgabe für das Sommersemester 2008. Aufgabe 1 (Vier Gewinnt 1. Teil) Implementieren Sie eine Java-Klasse VierGewinnt1, mit einer
MehrDigitale Signaturen. RSA-FDH & das Random Oracle Model Björn Kaidel (mit Folien von Gunnar Hartung)
Digitale Signaturen RSA-FDH & das Random Oracle Model Björn Kaidel (mit Folien von Gunnar Hartung) FAKULTÄT FÜR INFORMATIK, INSTITUT FÜR THEORETISCHE INFORMATIK 0 2017-12-01 B. Kaidel Digitale Signaturen:
MehrObjektorientierung. Objekte
Eine Einführung G. Futschek Objekte Objekte Fragen: Wie unterscheiden sich Objekte? Wie sind Objekte einander ähnlich? Was können Objekte? Wie stehen Objekte zueinander in Beziehung? Objekte Im täglichen
MehrÜbersicht. Künstliche Intelligenz: 6. Spiele Frank Puppe 1
Übersicht I Künstliche Intelligenz II Problemlösen 3. Problemlösen durch Suche 4. Informierte Suchmethoden 5. Constraint-Probleme 6. Spiele III Wissen und Schlußfolgern IV Logisch Handeln V Unsicheres
MehrProgrammierung im Grossen
1 Letzte Aktualisierung: 16. April 2004 Programmierung im Grossen Bertrand Meyer 2 Vorlesung 4: Abstrakte Daten-Typen Übungen 3 Passe die vorhergehende Spezifikation von Stacks (LIFO, Last-In First-Out
MehrFerienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie
Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie Dipl-Math. Wolfgang Kinzner 2.4.2012 Kapitel 1: Grundlagen der algorithmischen Graphgentheorie
MehrVoronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK
Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 29.05.2011 Das Postamt-Problem b(p, q) = {x R 2 : xp = xq } p q h(p, q) h(q, p) = {x :
MehrUniversität Koblenz-Landau Fachbereich Informatik Klausur KI-Programmierung WS 2007/2008. Jun.-Prof. Dr. B. Beckert. 21.
Name, Vorname: Matrikel-Nr.: Studiengang: Universität Koblenz-Landau Fachbereich Informatik Klausur KI-Programmierung WS 2007/2008 Jun.-Prof. Dr. B. Beckert 21. Februar 2008 Informatik (Diplom) Computervisualistik
MehrTutorium Softwaretechnik I
Tutorium Softwaretechnik I Moritz Klammler 27. Juni 2017 Fakultät für Informatik, IPD Tichy Titelfoto: Copyright (C) 2010 Multimotyl CC BY-SA 3.0 1 27. Juni 2017 Moritz Klammler - Tutorium Softwaretechnik
MehrJTable. W. Lang HWR Berlin, SS
JTable W. Lang HWR Berlin, SS 2014 1 JTable Die Swing-Komponente JTable dient der Darstellung einer zweidimensionalen Tabelle Verwendung häufig im Zusammenhang mit Datenbankanwendungen Im Gegensatz zu
MehrZwei-Spieler-Spiele. Einführung in die Methoden der Künstlichen Intelligenz. Suche bei Spielen. Schach. Schach (2)
Einführung in die Methoden der Künstlichen Intelligenz Suche bei Spielen Prof. Dr. Manfred Schmidt-Schauß Ziel dieses Abschnitts Intelligenter Agent für Zweipersonenspiele Beispiele: Schach, Dame, Mühle,...
MehrAbschnitt 20: Ein Grundprinzip der Software-Architektur
Abschnitt 20: Ein Grundprinzip der Software-Architektur 20. Ein Grundprinzip der Software-Architektur 20 Ein Grundprinzip der Software-Architektur Einf. Progr. (WS 08/09) 770 Modelle und Anwendungen Unsere
Mehr2. Spielbäume und Intelligente Spiele
2. Spielbäume und Intelligente Spiele Arten von Spielen 2. Spielbäume und Intelligente Spiele Kombinatorische Spiele als Suchproblem Wie berechnet man eine gute Entscheidung? Effizienzverbesserung durch
MehrInhalt. Design patterns Kernbereiche Creational patterns Factory method Abstract Factory Builder Structural patterns Adapter Facade Decorator
Inhalt Gute OOP-Programmierung ist schwer Objekte Objekte, wird aber so vermittelt (siehe jede Einführung in OOP) Ansprüche an gutes Design diametral welche Ansprüche haben wir überhaupt? Fehler im Design
MehrKlausur zur Vorlesung Informatik 1 im Wintersemester 2014/2015 am 18. Februar Bearbeitungszeit: 90 Minuten Gesamtpunktezahl: 90 Punkte
Universität Düsseldorf Mathematisch-naturwissenschaftliche Fakultät Institut für Informatik Prof. Dr. Michael Schöttner Florian Klein Kevin Beineke Janine Haas Klausur zur Vorlesung Informatik 1 im Wintersemester
MehrC++ Teil 9. Sven Groß. 17. Juni Sven Groß (IGPM, RWTH Aachen) C++ Teil Juni / 17
C++ Teil 9 Sven Groß 17. Juni 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 9 17. Juni 2016 1 / 17 Themen der letzten Vorlesung Objektorientierung und Klassen Attribute / Datenelemente Methoden / Elementfunktionen
MehrSports Data Mining. The Field and Methodology. Sublogo. 24.05.2014 Fachbereich Informatik Prof. Johannes Fürnkranz 1
Sports Data Mining The Field and Methodology 24.05.2014 Fachbereich Informatik Prof. Johannes Fürnkranz 1 Definition Hierarchie für Sport und Sportdatenbeziehungen Eins kein Zusammenhang Zwei Domain-Experten
MehrKomponentenbasierter Taschenrechner mit CORBA
Komponentenbasierter Taschenrechner mit CORBA Von Balamuhunthan Balarajah Olaf Märker Jan Zimmermann Balamuhunthan Balarajah, Olaf Märker, Jan Zimmermann 1 Gliederung Überlegungen Entwurf Verwendete Entwurfsmuster
MehrÜbungen zur Vorlesung EINI (WS 2010) Blatt 11
Martin Apel Informatik VI, GB5/R 431; Tel.: 4775 Nicola Beume Informatik XI, OH14/R 233; Tel.: 7704 Jürgen Mäter Informatik IV, GB5/R 402; Tel.: 2411 Dortmund, den 14. Januar 2011 Übungen zur Vorlesung
MehrAlgorithmen für Computerspiele
Algorithmen für Computerspiele Künstliche Intelligenz von Manuel Bischof 3. Mai 2010 Gliederung Einleitung Was umfasst die KI? Nutzung in verschiedenen Genres Wo sind Verbesserungen notwendig? Möglichkeiten,
MehrBekannte Lösungen für bekannte Probleme benutzen. Entwurf auf höherer Abstraktionsebene als bei Programmiersprachen
Michael Saecker Bekannte Lösungen für bekannte Probleme benutzen Entwurf auf höherer Abstraktionsebene als bei Programmiersprachen Gemeinsames Vokabular für Designer 2 http://www.clickpix.de/sommer/architektur.jpg
Mehr