B A C H E L O R A R B E I T. Formale Beschreibung von Auktionstypen zum automatisierten Reasoning durch Agenten. von Benjamin Brandmüller

Ähnliche Dokumente
12. Vorlesung. 19. Dezember 2006 Guido Schäfer

Verfeinerungen des Bayesianischen Nash Gleichgewichts

3. Das Reinforcement Lernproblem

Auktionen. Vortrag im Rahmen des Seminars aus maschinellem Lernen

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme

Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration

Elemente der Stochastik (SoSe 2016) 10. Übungsblatt

Vorkurs: Mathematik für Informatiker

Grundbegriffe der Wahrscheinlichkeitsrechnung

Übungen zur Wahrscheinlichkeitstheorie und Statistik

4 Diskrete Wahrscheinlichkeitsverteilungen

Unabhängigkeit KAPITEL 4

Einführung in die linearen Funktionen. Autor: Benedikt Menne

Vorsemesterkurs Informatik

Kapitel ML:IV. IV. Statistische Lernverfahren. Wahrscheinlichkeitsrechnung Bayes-Klassifikation Maximum-a-Posteriori-Hypothesen

Grundzüge der Spieltheorie

Teil 2: Dynamische Spiele mit vollständigen Informationen

Dieses Quiz soll Ihnen helfen, Kapitel besser zu verstehen.

Informatik II Grundbegriffe der Wahrscheinlichkeitsrechnung

Grundbegriffe der Wahrscheinlichkeitstheorie. Karin Haenelt

Endliche Automaten. Endliche Automaten J. Blömer 1/23

Einführung in die Informatik I (autip)

Aussagenlogik. Aussagen und Aussagenverknüpfungen

1 Mengen. 1.1 Elementare Definitionen. Einige mathematische Konzepte

Handlungsplanung und Allgemeines Spiel Ausblick: GDL-II. Peter Kissmann

Syntax von Programmiersprachen

bzw. die Entscheidugen anderer Spieler (teilweise) beobachten Erweitert das Analysespektrum erheblich Beschreibung des Spiels (extensive Form)

Grundlegende Eigenschaften von Punktschätzern

7.2 Conjoining Specifications

Vollständigkeit; Überabzählbarkeit und dichte Mengen) Als typisches Beispiel für die reellen Zahlen dient die kontinuierlich ablaufende Zeit.

Statistische Tests. Kapitel Grundbegriffe. Wir betrachten wieder ein parametrisches Modell {P θ : θ Θ} und eine zugehörige Zufallsstichprobe

General Game Playing

Wiederholte Spiele. Grundlegende Konzepte. Zwei wichtige Gründe, wiederholte Spiele zu betrachten: 1. Wiederholte Interaktionen in der Realität.

MafI I: Logik & Diskrete Mathematik (Autor: Gerrit (-Arthur) Gruben)

Das Identifikationsproblem

9. Heuristische Suche

Transaktionen. Michael Löwe 04/15/16. FHDW Hannover, Freundallee 15, Hannover address:

Kombinatorische Spiele mit Zufallselementen

P (X = 2) = 1/36, P (X = 3) = 2/36,...

Klausur zur Wahrscheinlichkeitstheorie für Lehramtsstudierende

Mechanismus Design Auktionen

Handlungsplanung und Allgemeines Spiel Allgemeine Verbesserungen. Peter Kissmann

Elementare Beweismethoden

Auswahl von Schätzfunktionen

Übungen Softwaretechnik I

Hypothesentest, ein einfacher Zugang mit Würfeln

Einführung Grundbegriffe

Pflichtteilaufgaben zu Stochastik (Pfadregeln, Erwartungswert, Binomialverteilung) Baden-Württemberg

Objektorientierte Modellierung (1)

Klausur zur Vorlesung Spieltheorie

DIE SPRACHE DER WAHRSCHEINLICHKEITEN

Zufallsvariablen [random variable]

Population und Stichprobe: Wahrscheinlichkeitstheorie

Optimale Strategie für das Würfelspiel Zehntausend

Frage 8.3. Wozu dienen Beweise im Rahmen einer mathematischen (Lehramts-)Ausbildung?

Einführung in die Theoretische Informatik

Informatik. Teil 1 Wintersemester 2011/2012. Prof. Dr.-Ing. habil. Peter Sobe Fachkultät Informatik / Mathematik

10. Vorlesung. 12. Dezember 2006 Guido Schäfer

Beurteilende Statistik

Diskrete Strukturen Kapitel 2: Grundlagen (Beweise)

Hackenbusch und Spieltheorie

Mathematik I. Vorlesung 7. Folgen in einem angeordneten Körper

Donnerstag, 11. Dezember 03 Satz 2.2 Der Name Unterraum ist gerechtfertigt, denn jeder Unterraum U von V ist bzgl.

Zufallsprozesse, Ereignisse und Wahrscheinlichkeiten die Grundlagen

3. Grundlegende Begriffe von Logiken - Aussagenlogik

Im allerersten Unterabschnitt wollen wir uns mit einer elementaren Struktur innerhalb der Mathematik beschäftigen: Mengen.

Vorlesung 1: Einleitung

P (A B) P (B) = P ({3}) P ({1, 3, 5}) = 1 3.

Institut für Biometrie und klinische Forschung. WiSe 2012/2013

1. Ziehg.: N M. falls nicht-rote K. in 1. Ziehg. gezogen

Problemreduktion durch Transformation am Beispiel des. Erweiterten Euklidschen Algorithmus

FAQ Spielvorbereitung Startspieler: Wer ist Startspieler?

2. Spiele. Arten von Spielen. Kombinatorik. Spieler haben festgelegte Handlungsmöglichkeiten, die durch die Spielregeln definiert werden.

Westfählische Wilhelms-Universität. Eulersche Graphen. Autor: Jan-Hendrik Hoffeld

1. Einleitung wichtige Begriffe

Lösungsvorschläge Blatt Z1

Kapitel 1.0. Aussagenlogik: Einführung. Mathematische Logik (WS 2011/12) Kapitel 1.0: Aussagenlogik: Einführung 1/ 1

Vorlesung Theoretische Informatik

Kapitel 6 Martingale

Requirements Engineering

Logic in a Nutshell. Christian Liguda

Kapitel 2. Zufällige Versuche und zufällige Ereignisse. 2.1 Zufällige Versuche

3.1.1 Die Variante T1 und ein Entscheidungsverfahren für die Aussagenlogik

Logische und funktionale Programmierung

Diskrete Strukturen Kapitel 2: Grundlagen (Relationen)

Beschreibungslogiken. Daniel Schradick

1 Axiomatische Charakterisierung der reellen. 3 Die natürlichen, die ganzen und die rationalen. 4 Das Vollständigkeitsaxiom und irrationale

Theoretische Informatik SS 03 Übung 11

Weitere Eigenschaften

Vorkurs Mathematik und Informatik Mengen, natürliche Zahlen, Induktion

Technische Universität München Zentrum Mathematik Propädeutikum Diskrete Mathematik. Weihnachtsblatt

k np g(n, p) = Pr p [T K] = Pr p [T k] Φ. np(1 p) DWT 4.1 Einführung 359/467 Ernst W. Mayr

Lineare (Un-)Gleichungen und lineare Optimierung

1 Grundprinzipien statistischer Schlußweisen

Data Mining: Einige Grundlagen aus der Stochastik

Teil II. Wahrscheinlichkeitsrechnung

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Prof. Dr. Christoph Karg Hochschule Aalen. Klausur zur Vorlesung Wahrscheinlichkeitstheorie und Statistik. Sommersemester 2016

Erfahrungen mit der Versteigerung knapper öffentlicher Güter

Transkript:

B A C H E L O R A R B E I T Formale Beschreibung von Auktionstypen zum automatisierten Reasoning durch Agenten von Benjamin Brandmüller eingereicht am 30.09.2011 beim Institut für Angewandte Informatik und Formale Beschreibungsverfahren des Karlsruher Instituts für Technologie Referent: Prof. Dr. Rudi Studer Betreuer: Sebastian Rudolph Heimatanschrift: Studienanschrift: Kastanienring 34 Neisser Str. 12 55286 Wörrstadt 76139 Karlsruhe

Ich versichere hiermit wahrheitsgemäß, die Arbeit bis auf die dem Aufgabensteller bereits bekannte Hilfe selbstständig angefertigt, alle benutzten Hilfsmittel vollständig und genau angegeben und alles kenntlich gemacht zu haben, was aus Arbeiten anderer unverändert oder mit Abänderungen entnommen wurde. X Benjamin Brandmüller Autor

Inhaltsverzeichnis 1. Einleitung... 5 2. Grundlagen... 5 2.1. General Game Playing (GGP)... 5 2.2. Game Description Language (GDL)... 6 2.2.1. Relationen... 6 2.2.2. Definitionen... 8 2.2.3. Erweiterung der Definitionen... 10 2.3. Erweiterungen der GDL... 11 2.3.1. Stochastische Spiele in GDL... 11 2.3.2. Market Specification Language (MSL)... 12 2.3.3. Gala... 12 2.3.4. GDL for Incomplete Information (GDL II)... 13 2.4. Auktionstypen... 15 2.4.1. Höchstpreisauktion... 16 2.4.2. Vickrey-Auktion... 16 2.4.3. Holländische Auktion... 16 2.4.4. Englische Auktion... 17 2.4.5. Call Auction... 17 2.4.6. Continuous Double Auction (CDA)... 17 3. Modellierung in GDL II... 18 3.1. Einseitige Auktionen... 19 3.1.1. Höchstpreisauktion... 19 3.1.2. Vickrey-Auktion... 20 3.1.3. Holländische Auktion... 22 3.1.4. Englische Auktion... 24 3.2. Zweiseitige Auktionen... 26 3.2.1. Call Auction... 26 3.2.2. Continuous Double Auction (CDA)... 28 4. Korrektheitsprüfung der Modelle... 30 4.1. Höchstpreisauktion... 30 4.1.1. Verifikation... 30 4.1.2. Validierung... 32 4.2. Vickrey-Auktion... 33 4.2.1. Verifikation... 33 4.2.2. Validierung... 34 4.3. Holländische Auktion... 35

4.3.1. Verifikation... 35 4.3.2. Validierung... 36 4.4. Englische Auktion... 37 4.4.1. Verifikation... 37 4.4.2. Validierung... 39 4.5. Call Auction... 40 4.5.1. Verifikation... 40 4.5.2. Validierung... 41 4.6. Continuous Double Auction... 45 4.6.1. Verifikation... 45 4.6.2. Validierung... 46 5. Zusammenfassung und Ausblick... 49 5.1. Umsetzung im Börsenhandel... 50 5.2. Umsetzung in Internetauktionen... 50 5.3. Umsetzung bei auktionsähnlichen Methoden... 51 5.3.1. Mengentender... 51 5.3.2. Zinstender... 51 Abbildungsverzeichnis... 51 Literaturverzeichnis... 52

1. Einleitung Ziel dieser Bachelorthesis ist es, gängige Auktionstypen in einer formalen Beschreibungssprache zu modellieren, um so die automatisierte Interpretation durch Agenten ohne jegliche menschliche Interaktion zu ermöglichen. Die Korrektheit der Modelle wird anschließend theoretisch geprüft. Die Modellierung erfolgt dabei in der formalen Beschreibungssprache GDL-II, die im Rahmen der Einführung erläutert wird. Insbesondere wird ausführlich auf die GDL eingegangen, die die Basis für die GDL-II ist. Aber auch andere vergleichbare Sprachen werden kurz erläutert. Im Rahmen der Einführung wird zudem Basiswissen zur Auktionstheorie vermittelt, welches für die spätere Validierung der Modelle benötigt wird. Die Bachelorarbeit zeigt, dass alle gängigen Auktionstypen durch die GDL-II beschrieben werden können. Insbesondere der Aspekt asymmetrischer und unvollständiger Information stellte bisher aufgrund der mangelnden Ausdrucksmächtigkeit der GDL ein Hindernis dar, welches nun jedoch mit der GDL-II überwunden werden kann. Abschließend werden die Potenziale der formalen Beschreibung aufgedeckt und mögliche Anwendungsbereiche identifiziert und bewertet. Hier wird deutlich, dass die formale Beschreibung auf Basis der GDL-II bereits in einfachem Umfeld Anwendung finden kann, aber auch Potenziale für komplexe Märkte, wie die Börse, bietet. 2. Grundlagen 2.1. General Game Playing (GGP) Das General Game Playing ist ein vergleichsweise junges Forschungsgebiet der künstlichen Intelligenz, welches sich mit automatisierten Playern beschäftigt, die vorab unbekannte Spiele spielen. Diese Player entwickeln zur Laufzeit, gegeben eine hinreichende Spezifikation eines Spiels, ad-hoc Strategien, die es ihnen ermöglichen ein beliebiges Spiel ohne jegliche menschliche Interaktion zu spielen [Gen05]. Hierzu nutzen sie diverse AI-Technologien wie knowledge representation, reasoning, learning und rational decision making [Gen05]. Die Einsatzmöglichkeiten sind hierbei lediglich durch die Ausdrucksmächtigkeit der Sprache beschränkt. Dies unterscheidet sie wesentlich von bisher bekannten, hochspezialisierten Bots (z.b. Deep Blue ), die nur in der Lage sind ein einziges Spiel zu spielen und dementsprechend eine anwendungsbezogene Strategie besitzen. General Game Player agieren hingegen auf einer Meta-Ebene, die erstmalig 1992 vom Wissenschaftler Barney Pell in seiner Publikation METAGAME in Symmetric Chess-Like Games [Pel92] thematisiert wurde. Pell legte damit den Grundstein für das GGP und gründete damit einen neuen Forschungszweig, der seit 2005 im Rahmen der AAAI Conference [Gen05] durch jährliche Wettbewerbe angetrieben wird. Eine standardisierte Spezifikation, die Game Description Language (kurz: GDL), der Spiele unterstützt diese Entwicklung und ermöglicht den Entwurf von vergleichbaren Playern [Lov06]. Da die Modellierbarkeit von Spielen abhängig von der Ausdrucksmächtigkeit der verwendeten Spielbeschreibung ist, wird diese kontinuierlich ergänzt und verbessert, um so zunehmend komplexere Mechanismen modellieren zu können. Bisher ist das GGP ein rein wissenschaftliches Forschungsgebiet, welches keine praxisrelevanten Anwendungsbereiche besitzt. Durch die rasante Entwicklung und stetige Verbesserung der Agenten und der dazu benötigten Infrastruktur, ist es jedoch vorstellbar, dass diese Technologien mittelfristig auch im wirtschaftlichen Umfeld eingesetzt werden. Hierzu ist es erforderlich relevante Parameter eines realen Systems, als Spiel zu modellieren. Die in dieser Arbeit vorgestellten Modelle von börsennahen Auktionstypen sind ein Beispiel dafür und ermöglichen z.b. den Einsatz von automatisierten Agenten in Börsen oder börsenähnlichen Märkten.

2.2. Game Description Language (GDL) 1 Die Spezifikation der Game Description Language (GDL) stellt einen Standard zur formalen Beschreibung von Spielen dar. Die aktuelle Version beschränkt sich insbesondere auf diskrete, deterministische Multiplayer-Spiele mit vollständiger Information. Dies schränkt die Vielfalt an beschreibbaren Spielen stark ein, da sämtliche Spiele, die z.b. eine zufällige Komponente 2 enthalten, nicht modelliert werden können. Trotz dieser Einschränkung wäre es äußerst impraktikabel ein Spiel als einen Graphen mit sämtlichen möglichen Zuständen zu modellieren, da die Anzahl der Zustände u.u. enorm hoch sein kann 3. Stattdessen versucht die GDL ein Spiel durch eine kompakte Menge an Transitionen zu beschreiben, die auf eine beschränkte Menge von initialen Fakten angewendet werden kann und so zu neuen Fakten führt. Die Umsetzung der GDL erfolgt in der Sprache KIF, dessen Syntax für das weitere Verständnis kurz genannt wird: wird zu?x wird zu (f a?x (g (h c?y) e)) wird zu (true (cell 1 1?x)) wird zu (not (true (cell 1 1?x))) wird zu (<= (p?x) (q?x) (not (r?x))) wird zu (<= (p?x) (q?x) (or (r?x) (s?x))) Die GDL Spezifikation basiert wesentlich auf der datalog Syntax und erweitert diese um Funktionen als Konstanten, sowie Rekursionsrestriktionen, die dafür sorgen, dass die Semantik dennoch endlich bleibt. Diese Konzepte gliedern sich in Relationen und Definition und sollen im Folgenden erläutert werden: 2.2.1. Relationen 4 Relationen sind elementare Konzepte der GDL. Sie sind die Instrumente mittels derer ein Spiel und seine Regeln beschrieben wird. Die GDL unterscheidet folgende Relationen: Role Relation Die role Relation definiert die Namen und Zugleich die Anzahl der Spieler. Für das gewählte Beispiel wäre es also: (role xplayer) (role oplayer) True Relation Die true Relation beschreibt Fakten, die in Form eines ground Terms dargestellt werden. Die Syntax einer true Relation ist true(fact). Sei control eine Funktion, die beschreibt welcher Spieler an der Reihe ist. Dann bezeichnet der atomare Satz (true (control xplayer)) einen Status in dem der ground Term (control xplayer) wahr ist. D.h. xplayer ist an der Reihe. 1 Vgl. [Lov06] 2 Dazu gehören z.b. alle Spiele mit einem Würfel. 3 Beim Schach gibt es 10 28 Zustände 4 Zum besseren Verständnis werden vereinzelte Relationen anhand des Beispiels Tic-Tac-Toe erklärt.

Init Relation Analog zur true Relation bezeichnet auch die init Relation Fakten, die in Form eines ground Terms dargestellt werden. Allerdings sind Ausdrücke dieser Relation nur im Startzustand gültig und beschreiben somit die Ausgangssituation eines Spiels. Bei Tic-Tac-Toe bedeutet das, dass alle Zellen leer ( b wie blank ) sind und einer der Spieler an der Reihe ist: (init (cell 1 1 b)) (init (cell 1 2 b)) (init (cell 1 3 b)) (init (control xplayer)) Next Relation Genauso bezeichnet auch die next Relation wahre Fakten. Allerdings beschreibt sie Fakten die im nächsten Zustand nach dem aktuellen Zustand wahr sind. So wechseln sich die Spieler z.b. bei Tic- Tac-Toe ab: (<= (next (control xplayer)) (true (control oplayer))) (<= (next (control oplayer)) (true (control xplayer))) Legal Relation Die legal Relation beschreibt erlaubte Spielzüge eines Spielers. Sie allokiert Spielzüge und Player unter Berücksichtigung des aktuellen Zustands, der durch die true Relationen beschrieben wird. Bei Tic-Tac-Toe z.b. darf ein Spieler nur leere Zellen markieren, sofern er an der Reihe ist. Der andere Spieler darf keinen Zug ausführen (noop): (<= (legal?w (mark?x?y)) (true (cell?x?y b)) (true (control?w))) (<= (legal xplayer noop) (true (control oplayer))) (<= (legal oplayer noop) (true (control xplayer))) Does Relation Die does Relation ist der Syntax in der legal Relation sehr ähnlich. Allerdings beschreibt sie tatsächliche gewählte Spielzüge eines Spielers. Sie wird benötigt, um den Folgezustand in Abhängigkeit des gewählten Spielzuges zu modellieren. Im Beispiel bedeutet es, dass eine Zelle markiert wird, sobald ein Spieler diese auswählt: (<= (next (cell?m?n x)) (does xplayer (mark?m?n)) (true (cell?m?n b))) Der Vollständigkeit wegen müsste zudem beschrieben werden, dass alle anderen Zellen unverändert bleiben. Goal Relation Die goal Relation definiert das Ziel des Spiels. Hierbei können ganzzahlige Punkte von 0 bis 100 auf die jeweiligen Spieler verteilt werden. Beim Tic-Tac-Toe bekommt entweder ein Spieler alle Punkte und gewinnt das Spiel (100:0) oder es gibt ein Unentschieden (50:50). Das Ziel der Spieler ist es

jedoch, durch eine markierte Reihe zu gewinnen. Demnach lautet die goal Relation für den Spieler xplayer: (<= (goal xplayer 100) (line x)) Terminal Relation Terminal Relationen beschreiben wann ein Spiel beendet ist und definieren so die Endzustände. Im gewählten Beispiel ist dies der Fall, sobald ein Spieler eine Reihe markiert, oder keine Spielzüge mehr möglich sind: (<= terminal (line x)) (<= terminal (line o)) (<= terminal (not open)) Die terminal Relation gibt nicht an, welcher Spieler gewonnen hat und welche Auszahlung bekommt! 2.2.2. Definitionen Neben den Relationen geben die Definitionen Rahmenbedingungen vor, wie die Relationen eingesetzt werden dürfen. Diese Bedingungen werden im folgenden Abschnitt vorgestellt: Vokabular Das Vokabular besteht aus einer Menge von Termen und atomaren Sätzen. Term Ein Term ist eine Variable oder eine Konstante. Kleinbuchstaben repräsentieren hierbei Konstanten. Variablen hingegen, werden als Großbuchstaben dargestellt. Atomarer Satz Ein atomarer Satz der Arität n ist die Komposition einer Konstanten mit einem Tupel aus Termen der Form p(1, 1,X). Literale Ein Literal ist ein atomarer Satz oder dessen Negation. Ground Expressions Ein Ausdruck heißt ground, wenn dieser keine Variablen enthält. Datalog Regeln Eine Datalog Regel ist eine Implikation der Form: wobei der head h ein atomarer Satz und jedes im body ein Literal oder eine Disjunktion von Literalen 5 ist. Zudem muss die Safety erfüllt sein. Dies bedeutet, dass eine Variable, die im head 5 Die Disjunktion wurde in der GDL ergänzt, um Berechnungen von Spielbeschreibungen durch General Game Player zu beschleunigen. Sie hat keine zusätzliche Bedeutung für die Definition (Anm. d. Her.).

oder in einem negativen Literal auftaucht außerdem in einem positiven Literal im body stehen muss. Der Ausdruck distinct wird dabei als negatives Literal behandelt. Durch diese Anforderung wird sichergestellt, dass ein Modell nur endlich groß ist und eine Regel stets eindeutig interpretierbar ist. Außerdem müssen die Regeln so gewählt werden, dass die Rekursionsrestriktion erfüllbar ist 6. Abhängigkeitsgraph Sei eine Menge von Datalog Regeln. Dann sind die Knoten des Abhängigkeitsgraphen für die atomaren Sätze des Vokabulars. Sofern es eine Regel mit im head und im body gibt, so existiert im Abhängigkeitsgraphen eine Kante von nach. Wenn ein negatives Literal ist, so wird diese Kante mit gekennzeichnet. Stratifizierbare Datalog Regeln Eine Menge von Datalog Regeln heißt stratifizierbar, wenn es im dazugehörigen Abhängigkeitsgraphen keinen Zyklus mit einer Kante gibt, die mit gekennzeichnet ist. Diese Definition ist von besonderer Bedeutung, da sie logische Inkonsistenzen und Mehrdeutigkeiten vermeidet und somit eine wesentliche Anforderung an jede Datalog Regel ist. Modell Ein Modell der Sprache L besteht aus einer Menge von ground atomaren Sätzen aus L. Erfüllbarkeit Folgende Ausdrücke eines Modells M sind erfüllbar, sofern deren dahinterstehende Bedingung wahr ist: genau dann, wenn und syntaktisch nicht der selbe Term sind genau dann, wenn der Ausdruck in M nicht erfüllbar ist genau dann, wenn ist in M erfüllbar genau dann, wenn ist in M erfüllbar genau dann, wenn entweder oder oder beides in M erfüllbar ist genau dann, wenn erfüllbar in für jeden ground Term Entailment Eine Menge an Datalog Regeln, die keine Negation enthält, heißt Horn. Für diese Menge gibt es genau ein minimales, erfüllbares Modell, wobei ein Modell M kleiner als N ist, wenn. Dieses minimale Modell ist der Sinngehalt der Menge. Entailment 7 bedeutet, dass genau dann einen Ausdruck impliziert, sofern dieser in M erfüllbar ist. Stratum Sei a ein atomarer Satz in einer Menge an stratifizierbaren Datalog Regeln. Dann ist a in Stratum i, wenn die maximale Anzahl von -Kanten, in jedem Pfad vom Knoten a im Abhängigkeitsgraphen zu, gleich i ist. Eine Regel ist in Stratum i sofern der head einen atomaren Satz in Stratum i beinhaltet. 6 Siehe Abschnitt Rekursionsrestriktion in Kapitel 2.2.3 Erweiterung der Definitionen 7 Im deutschen Sprachgebrauch auch als semantische Implikation bezeichnet

Stratifizierbare Datalog Semantik 8 Jede Regel in eine Menge von stratifizierbaren Datalog Regeln hat ein endliches Stratum 9. Zudem gibt es mindestens eine Regel mit Stratum 0. Diese Regeln sind Horn und haben somit ein minimales Modell. Dieses Modell wird durch die Fakten, die durch Regeln mit Stratum 1 geschaffen werden, zum Modell erweitert. Durch Wiederholung dieses Prozesses mit den Regeln in Stratum 2 wird dieses zum Modell erweitert usw. Die Stratifizierbare Datalog Semantik von ist das Modell mit maximalem Stratum k für jede Regel in. Stratifizierbares Entailment Genauso gilt auch für die stratifizierbare Datalog Semantik die semantische Implikation, die als stratifizierbares Entailment bezeichnet wird. 2.2.3. Erweiterung der Definitionen Um die beschriebene Semantik der Relationen sicherzustellen müssen zusätzliche Restriktionen eingeführt werden, die syntaktisch korrekte, aber ungewollte Ausdrücke vermeiden. So besagt folgende Regel (<= (role p) (true q)), dass p ein (neuer) Player ist, sofern q erfüllt ist. Allerdings fordert die Spezifikation, dass die Anzahl der Spieler fix und nicht abhängig von den Zuständen zur Laufzeit sind. Die oben beschriebenen Definitionen werden daher wie folgt ergänzt: Rekursionsrestriktion In einer Datalog Regel sei im Abhängigkeitsgraphen in einem Kreis mit. Dann gilt { } entweder ist ground oder { } mit, wobei nicht in einem Kreis mit auftritt. GDL Restriktionen Wenn eine GDL Beschreibung und dessen Abhängigkeitsgraph ist, muss folgendes für gelten: Die role Relation darf nur in ground atomaren Sätzen auftauchen (z.b. im head ohne body). Eine Veränderung der Spieler, wie im oben genannten Beispiel wird somit verhindert. Die init Relation darf nur im head einer Datalog Regel auftauchen. Der init Knoten in enthält zudem keine der folgenden Komponenten: true, does, next, legal, goal oder terminal. Dies kapselt den Startzustand als reine Beschreibung ab und verhindert Kanten, die dorthin zurückführen. Die true Relation taucht nur im body einer Datalog Regel auf Fakten werden nicht durch die true Relation geschaffen, sondern nur durch diese beschrieben. Die next Relation taucht nur im head einer Datalog Regel auf Die next Relation beschreibt Fakten im nächsten Zustand und ist kein Ersatz für die true Relation 8 Vgl. auch [Apt88] 9 Dies wird durch die Safety sichergestellt (siehe Definition Datalog Regeln )

Die does Relation taucht nur im body einer Datalog Regel auf. In G gibt es zudem keinen Pfad zwischen dem does Knoten und einem legal, goal oder terminal Knoten. Die does Relation ist kein Fakt der durch andere Fakten geschaffen wird, sondern dient der Beschreibung von Zustandsveränderungen. Sie ist eine dynamische Komponente und ist daher ungeeignet zur Verwendung in legal, goal oder terminal Koten All diese Definitionen gewährleisten nun eindeutige Interpretationen mittels derer ein General Game Player seine Züge wählen und Zustände berechnen kann. Allerdings stellt die GDL zusätzliche Anforderungen an eine Beschreibung, da sie möglicherweise nie endet oder nicht zu gewinnen ist: Terminiertheit Eine Beschreibung in GDL terminiert, wenn alle Sequenzen von legalen Spielzügen im Startzustand nach einer endlichen Anzahl von Schritten zu einem Endzustand führen Spielbarkeit Eine Beschreibung in GDL ist spielbar, wenn jede Rolle in jedem Zustand, der kein Endzustand ist, mind. einen legalen Spielzug hat. Gewinnbarkeit Eine Beschreibung in GDL ist stark gewinnbar, wenn es für eine Rolle eine Sequenz gibt, die zu einem Endzustand führt, indem die Punktzahl für diesen Spieler maximal ist. Eine Beschreibung in GDL ist schwach gewinnbar, wenn es für jede Rolle eine Sequenz von gemeinsamen Spielzügen von allen Rollen gibt, die zu einem Endzustand führt, indem die Punktzahl für diese Rolle maximal ist. Wohldefinierte Spiele Eine Beschreibung in GDL ist wohl definiert, wenn sie die Anforderungen an die Terminiertheit, Spielbarkeit und Gewinnbarkeit erfüllt. 2.3. Erweiterungen der GDL Die soeben vorgestellte Beschreibungssprache liefert uns ein solides Grundgerüst zur Modellierung von Spielen. Aufgrund der mangelnden Beschreibungsmöglichkeit von Kommunikation zwischen den Playern, partieller Information und zufälliger Ereignisse, bedarf es jedoch einer Weiterentwicklung. So wurden mehrere Ansätze entwickelt, um die Ausdrucksmächtigkeit zu erhöhen, von denen einige im Folgenden erläutert werden sollen. 2.3.1. Stochastische Spiele in GDL In [Kul09] wird ein Ansatz beschrieben, um die GDL um Zufallsereignisse zu erweitern. Hierfür schlagen die Autoren folgende neue Relation vor: random <name> <value> <expression> Der erste Parameter bezeichnet hierbei den Namen der Zufallsvariablen, der für Ereignisse desselben Zufallsexperiments gleich sein muss. Dieser Ausdruck ist bewusst atomar und keine Variable, da sie nicht von den Spielern, sondern von einer zentralen Instanz (dem Game Manager) unifiziert werden. Der zweite Parameter ist eine ganzzahlige Zahl, die die Wahrscheinlichkeit für das Ereignis (dritter Parameter) angibt. Das Ereignis ist ein beliebiger GDL-Ausdruck, dessen Wahrscheinlichkeit aus ergibt.

Die Zufallsvariable darf aufgrund der Kommunikationsstruktur bei einer Competition lediglich in der legal-relation auftauchen. So wird sichergestellt, dass dem Player das Ergebnis des Zufallsexperiments tatsächlich übermittelt wird. Allerdings ist die Verwendung der Zufallsvariablen auch in Implikationen erlaubt, um Abhängigkeiten der Wahrscheinlichkeiten im Spielverlauf modellieren zu können. 10 2.3.2. Market Specification Language (MSL) 11 Die Market Specification Language ist weniger eine Erweiterung, sondern vielmehr eine neue Beschreibungssprache, die auf der GDL basiert. Im Wesentlichen lassen sich vier Unterschiede identifizieren: Market Maker Die MSL spezifiziert die Rolle eines Market Makers 12, der als Gegenpart zu einem Trader auf Basis bestimmter Regeln handelt. Neben den Quotes, die an alle Trader geschickt werden, versendet der Market Maker Nachrichten an einzelne Trader, um einen akzeptierten oder abgelehnten Trade zu signalisieren. Trader Neben dem Market Maker ist zudem die Rolle des Traders spezifiziert, der Nachrichten versenden und empfangen kann. Im Marktumfeld sind dies z.b. die Bid/Ask-Quotes. Somit gibt es also nur noch einen Akteur (Market Maker) der Aktionen durchführen kann und mehrere Akteure (Trader), die miteinander kommunizieren können. Partielle Information Anders als bei einem Spiel in GDL ist es nun möglich, dass unterschiedliche Trader unterschiedliche Informationen besitzen. So kann z.b. ein Markt modelliert werden, bei dem nur die Vertragspartner eines Trades von diesem Trade erfahren. Alle anderen Trader haben diese Information nicht. Ebenso können Quotes nur an bestimmte Trader versendet werden. Umgebungsparameter In der MSL wurde die Zeit als Parameter eingeführt um asynchrone Kommunikation zu ermöglichen. Ebenso wurden grundlegende Funktionen (Grundrechenarten) sowie die Relationen von reellen Zahlen definiert. Es muss somit also z.b. nicht mehr vorab spezifiziert werden, dass die Zahl 2 eine höhere Wertigkeit besitzt als die Zahl 1. Alle anderen Relationen und Definitionen der GDL wurden analog übernommen. Somit wurde es insbesondere ermöglicht partielle Informationen zu modellieren, um so einen Marktmechanismus zu beschreiben. 2.3.3. Gala 13 Gala (GAme LAnguage) ist ein ganz anderer Ansatz zur Beschreibung von Spielen, der noch vor der ersten Version der GDL bereits im Jahre 1997 von Koller und Pfeffer entwickelt wurde. Er verfolgt ebenfalls das Ziel eine formale Repräsentation von Spielen auf einer Meta-Ebene zu ermöglichen, so wie sie ursprünglich von Barney Pell thematisiert wurde. Gala ermöglichte bereits die 10 Zum Beispiel kann in einem Kartendeck jede Karte in der Regel nur einmal gezogen werden. Die Wahrscheinlichkeit eine gezogene Karte ein weiteres Mal zu ziehen, sinkt damit auf 0. 11 Vgl. [Thi09] 12 Eine detaillierte Beschreibung verschiedener Akteure auf Märkten findet sich in [Har02] 13 Vgl. [Kol97]

Beschreibung von Multi-Player Spielen und die Beschreibung unvollständiger Information, sowie zufälliger Ereignisse. Ein Gala Programm besteht dabei aus zwei Kategorien: Im ersten Abschnitt werden Entitäten, also z.b. Player, beschrieben. Im zweiten Abschnitt werden mögliche Ereignisse modelliert. Spielzüge werden in der zweiten Kategorie modelliert und können durch folgende Gala Statements beschrieben werden: Choose definiert die möglichen Optionen einer Entität und gibt an ob diese zufällig gewählt wird Reveal beschreibt den Informationsfluss zwischen den Entitäten Payoff gibt schließlich an wie die Auszahlungen sind Ein Spielzug beim Poker in Gala modelliert könnte demnach wie folgt aussehen: Abbildung 1: Gala Spielzug Quelle: [Kol97] Neben diesen Statements gibt es weitere Statements, die die Sprache vervollständigen. Die komplette Spezifikation der Sprache kann in [Kol97] nachgelesen werden. 2.3.4. GDL for Incomplete Information (GDL II) 14 Die GDL II ist eine Beschreibungssprache, die im Wesentlichen auf den bereits bekannten Konzepten der GDL 15 basiert. Ein großer Nachteil der GDL war die beschränkte Ausdrucksmächtigkeit, die es nicht ermöglichte Spiele mit unvollständiger Information oder stochastischen Ereignissen zu beschreiben. Dies wird durch diese Variante nun ermöglicht. Anders als der Name vermuten lässt werden nicht nur unvollständige Informationen, sondern zugleich auch stochastische Ereignisse ermöglicht. Hierzu wird die bereits bekannte GDL lediglich um zwei weitere Relationen erweitert. Diese neuen Relationen sollen im Folgenden erläutert werden. Hierbei wird die Kenntnis der GDL vorausgesetzt: Sees Relation Abgeleitet von dem englischen Begriff für das Verb sehen (to see) beschreibt der Term sees(r,p) eine Information P die ein Player R (definiert durch role(r)) erhält. Dies impliziert auch, dass nicht mehr alle Spieler alle Informationen erhalten, sondern jeder Informationsfluss explizit modelliert werden muss. Hierdurch wird es ermöglicht bestimmte Informationen nur bestimmten Playern bekannt zu geben. So ist es also zum Beispiel möglich einzelnen Spielern ihre Spielkarten mitzuteilen: sees(anna,ace) sees(ben,king) Man beachte, dass in diesem einfachen Beispiel bereits unvollständige Information modelliert wurde. Spielerin Anna hat keinerlei Kenntnis darüber, welche Karte Spieler Ben erhalten hat und umgekehrt. Jeder kennt jedoch seine eigene Karte. 14 Vgl. [Thi10] 15 Vgl. Abschnitt Game Description Language (GDL)

Random Player In der Regel reicht obige Relation nicht aus, um zum Beispiel Kartenspiele zu modellieren, da diese häufig zufällig verteilt werden. Für Spiele mit stochastischen Ereignissen schlägt der Autor der GDL II daher einen Player random (definiert durch role(random)) vor, der seine Entscheidungen rein zufällig trifft. Die möglichen Ereignisse werden dabei durch die legal-relation definiert. Die Wahl des Ereignisses wird dann durch den Game Controller getroffen, wobei die Wahrscheinlichkeiten gleichverteilt sind. Dies bedeutet jedoch nicht, dass für die möglichen Ergebnisse stets eine Gleichverteilung unterstellt wird. So ist es zum Beispiel dennoch möglich einen Spielwürfel darzustellen, der mit höherer Wahrscheinlichkeit eine 6 zeigt. Ein solch unfairer Spielwürfel wäre wie folgt modellierbar: role(random) legal(random,1) legal(random,2) legal(random,3) legal(random,4) legal(random,5) legal(random,6) legal(random,6) Wie ersichtlich ist, wurde das Ergebnis 6 zweifach aufgenommen. Wir haben somit sieben Ereignisse, die jeweils mit Wahrscheinlichkeit (Gleichverteilung der Ereignisse) auftreten. Zwei dieser Ereignisse liefern jedoch dasselbe Ergebnis. Somit ist die Wahrscheinlichkeit eine 6 zu würfeln und für jede andere Zahl (keine Gleichverteilung der Ergebnisse). Erweiterung der GDL Restriktionen In der GDL wurden bereits einige Restriktionen eingeführt, die eine eindeutige Interpretation einer Spielbeschreibung ermöglichen. Aufgrund der neu eingeführten sees Relation der GDL II müssen auch die Restriktionen geringfügig angepasst werden: Die init Relation darf nur im head einer Datalog Regel auftauchen. Der init Knoten in enthält zudem keine der folgenden Komponenten: true, does, next, sees, legal, goal oder terminal. Die next und sees Relation taucht nur im head einer Datalog Regel auf Insbesondere ist die zweite Restriktion interessant, da hier nochmal die Bedeutung der sees Relation klar definiert wird. Es soll vermieden werden, dass die Informationen, die ein Spieler besitzt in irgendeiner Art und Weise mögliche Spielzüge oder gar etwaige Auszahlungen beeinflussen. Die vorhandene Information bleibt dadurch unverwechselbar mit identifizierbaren Strukturen des Spiels, wie z.b. Spielsteinen. 16 Semantik eines Spiels Auf Basis der GDL II ist die Semantik eines Spiels durch ein Tupel der Form gegeben. Wenn die Menge der domänenspezifischen ground Terms und die endliche Teilmenge von bezeichnet, sind obige Parameter wie folgt definiert: { } (Erklärung: Dies beschreibt die verschiedenen Rollen des Spiels) { } (Erklärung: Dies beschreibt den Startzustand) { } (Erklärung: Dies beschreibt die Endzustände) 16 Näheres zur Identifikation und Definition von Strukturen kann in [Kuh06] nachgelesen werden

{ } (Erklärung: Dies beschreibt die erlaubten Spielzüge eines Spielers im Zustand ) { } (Erklärung: Dies ist die Aktualisierungsfunktion, die Zustandsänderungen auf Basis der Menge aller gewählten Spielzüge im Zustand beschreibt) { } { } (Erklärung: Dies beschreibt den Informationsfluss auf Basis aller gewählten Spielzüge im aktuellen Zustand zu Spieler ) { } { } (Erklärung: Dies beschreibt den Zielwert für Spieler im Zustand ) { }, Wenn : { Sonst wird dem Zustand durch folgende Wahrscheinlichkeit zugeordnet: { { } } mit { } (Erklärung: ist das Wahrscheinlichkeitsmaß über die resultierenden Spielzüge auf Basis des aktuellen Zustands und allen gewählten Spielzügen, ohne den random-player) 2.4. Auktionstypen 17 Im Folgenden wird ein kurzer Exkurs mit den wesentlichen Grundlagen zur Auktionstheorie vorgestellt. Insbesondere werden einige Auktionstypen vorgestellt, um die Funktionsweise derer zu verstehen. Spiegelbildlich dazu verhalten sich Ausschreibungen ( reverse auctions ), die jedoch in diesem Abschnitt ausgeklammert und nicht weiter betrachtet werden. Ebenso liegt der Fokus hierbei nicht in dem konkreten Design der Auktion, sondern vielmehr dem darunterliegendem Konzept welches den Mechanismus charakterisiert und von anderen Mechanismen unterscheidet. So können die verschiedenen Auktionstypen wie folgt kategorisiert werden: Einseitige Zweiseitige Auktionen Offene Verdeckte Gebote Absteigend Aufsteigend Die Bedeutung dieser Kategorien wird anhand gängiger Auktionstypen erläutert. Hierzu zählen insbesondere die Höchstpreisauktion, Vickrey-Auktion, Holländische Auktion, Englische Auktion, Call Market und die Continuous Double Auction (CDA). Neben diesen Kategorien unterscheiden McAffee und McMillan jedoch noch zwei Modelle zur Wertschätzung der versteigerten Güter: Independent-private-value-model In diesem Modell hat das Gut für jeden Teilnehmer einen Wert, der unabhängig von der Wertschätzung anderer Teilnehmer und nur ihm bekannt ist. Dies ist zum Beispiel besonders für Güter mit Liebhaberwert plausibel. Common-value-model Nach diesem Modell besitzt das versteigerte Gut einen objektiven Wert, der für alle gleich, jedoch keinem bekannt ist. Jeder Teilnehmer gibt demnach mit seinem Gebot lediglich eine Schätzung ab, 17 Vgl. [McA87] und [Rei00]

die wiederum die Gebote anderer beeinflussen können. Das Prinzip ist daher vergleichbar mit der Weisheit der Vielen 18 wie sie von James Surowiecki beschrieben wird. In Verbindung mit dem common-value-model spricht man auch häufig vom winner s curse. Da der wahre Wert des Guts in der Regel unter der höchsten Schätzung liegt, ist es naheliegend, dass derjenige der den Zuschlag erhält, den wahren Wert am meisten überschätzt hat und somit der Zuschlag für ihn eher nachteilig ist. 2.4.1. Höchstpreisauktion 19 Die Höchstpreisauktion gehört zu den einseitigen Auktionen mit verdeckten Geboten. Hierbei gibt jeder Teilnehmer genau ein verdecktes Gebot ab. Der Auktionator ermittelt den Bieter mit dem höchsten Gebot. Dieser erhält den Zuschlag und zahlt den Preis in Höhe des abgegebenen Gebots. Eine gute Bietstrategie im independent-private-value-model berücksichtigt also die Reservationspreise der anderen Teilnehmer derart, dass das eigene Gebot marginal über dem höchsten Gebot der anderen Teilnehmer ist, ohne die eigene Wertschätzung zu übersteigen. Allerdings können diese Reservationspreise aufgrund der Geheimhaltung und der Abgabe eines einmaligen Gebots nur vorab geschätzt werden und nicht auf Basis abgegebener Gebote erfolgen. Im common-value-model ist das Risiko des winner s curse besonders hoch und wird daher in solchen Fällen gemieden. Diese Auktionsform wird häufig im Rahmen der Vergabe von öffentlichen Aufträgen angewandt. 20 2.4.2. Vickrey-Auktion 21 Die Vickrey-Auktion ist ebenfalls unter die einseitigen Auktionen mit verdeckter Gebotsabgabe einzuordnen. Sie ist benannt nach William Vickrey, der diesen Auktionstyp erstmals im Jahre 1961 in seiner Ausarbeitung Counterspeculation, Auctions, and Competitive Sealed Tenders beschreibt. Sie funktioniert ganz ähnlich wie die zuvor erläuterte Höchstpreisauktion. Jeder Teilnehmer gibt verdeckt genau ein Gebot ab. Analog zur Höchstpreisauktion erhält der Bieter mit dem höchsten Gebot den Zuschlag. Allerdings muss dieser nur den Preis des zweithöchsten Gebots zahlen. Daher ist dieser Auktionstyp auch als Zweitpreisauktion bekannt. Ein rationaler Teilnehmer wird bei diesem Auktionstyp stets seine wahre Wertschätzung bieten. Dies bringt jedoch auch Probleme mit sich. So könnte die persönliche Wertschätzung von einigen Teilnehmern als sensible Information gesehen werden, die sie in dem Fall ungern preisgeben möchten. So könnten Bieter einen Betrug durch den Auktionator befürchten. Rothkopf, Teisberg und Kahn sehen darin die Ursache für die Tatsache, dass diese Auktionsform nur selten in der Praxis angewandt wird. Lucking-Reiley präsentiert jedoch Maßnahmen, die diese Probleme umgehen. So ist es inzwischen technologisch möglich den Auktionator durch ein vollautomatisiertes System zu ersetzen. Doch auch bei einem menschlichen Auktionator reiche die Kraft der Reputation, um Missbrauch auszuschließen. Ebenso stelle die Transparenz der Gebote eine Lösung dar. 2.4.3. Holländische Auktion 22 Die holländische Auktion ist ebenfalls einseitig, wobei die Gebote offen abgegeben werden. Der Auktionator nennt absteigende Kaufpreise. Der Teilnehmer, der als erster einen Preis annimmt erhält den Zuschlag zum genannten Kaufpreis. 18 Vgl. [Sur04] 19 Vgl. [McA87], [Ste10] und [Fis98] 20 Vgl. hierbei handelt es sich dann um eine reverse auction (siehe Einführung) 21 Vgl. [Vic61], [McA87], [Rot90] und [Luc00] 22 Vgl. [McA87] und [Vic61]

Interessanter Weise führt diese Auktion zum selben Ergebnis wie die Höchstpreisauktion, da der Teilnehmer mit derselben Situation konfrontiert wird. Er kennt nicht die Wertschätzung der anderen Teilnehmer und muss diese schätzen. Diese Auktionsform wurde z.b. beim Tabakverkauf in Canada angewandt. Aber auch heute noch existiert diese Art der Auktion z.b. bei der Fernsehshow 1-2-3.tv. 2.4.4. Englische Auktion 23 Die englische Auktion gehört sicherlich zu den bekanntesten Auktionsformen und hat ihre Berühmtheit nicht zuletzt dem wohl bekanntesten Auktionshaus Sotheby s zu verdanken. Diese Auktion verläuft ganz ähnlich wie die holländische Auktion. Allerdings geben die Teilnehmer bei der englischen Auktion aufsteigende Gebote ab. Der letzte Bieter erhält den Zuschlag und zahlt den Preis in Höhe seines Gebotes. Die Besonderheit bei dieser Auktionsform ist, dass das jeweils höchste, aktuelle Gebot jedem bekannt ist und die Teilnehmer sich so untereinander beobachten können. Vor allem kann ein Bieter innerhalb einer Versteigerung mehrere aufsteigende Gebote abgeben. Das Inkrement kann jedoch vom Auktionator reglementiert werden. Gebote, die unter dem Reservationspreis des Auktionators liegen, müssen nicht angenommen werden. Eine gute Bietstrategie bei dieser Auktionsform, unter der Annahme des Independent-privatevalue-models, ist es solange ein Gebot abzugeben, bis ein anderer Teilnehmer ein Gebot abgibt, welches die eigene Wertschätzung übersteigt. Dies führt dazu, dass der Teilnehmer mit der höchsten Wertschätzung den Zuschlag erhalten wird und zwar zum Preis der zweithöchsten Wertschätzung. Demzufolge erhält man ein äquivalentes Ergebnis zur Vickrey-Auktion. 2.4.5. Call Auction 24 Bei den bisherigen Auktionsformen wurden die Gebote stets von einer Partei, also einseitig, abgegeben. Anders verhält es sich bei der Call Auction. Diese gehört zu den zweiseitigen Auktionsformen mit verdeckter Gebotsabgabe. Dabei werden bei der Durchführung folgende Schritte durchlaufen: Zunächst werden die Gebote 25 der Teilnehmer über einen fixen Zeitraum gesammelt. Sobald die Zeit abgelaufen ist, werden die Gebote analysiert und es wird nach bestimmten Vorgaben ein Preis fixiert, der für alle Teilnehmer gleich ist. In der Regel wird der Preis derart bestimmt, dass das Handelsvolumen maximal ist. Anschließend kommt es zwischen den Teilnehmern zum Kaufabschluss. Dieser Auktionstyp wird in der Regel an Börsen im Wertpapierhandel angewandt. Er eignet sich besonders, um z.b. am Morgen eines Handelstages Liquidität zu aggregieren und neue Informationen einzupreisen. 2.4.6. Continuous Double Auction (CDA) 26 Die CDA ist ein an den Börsen weit verbreiteter Mechanismus, der einen flexiblen und dynamischen Wertpapierhandel ermöglicht. Ebenso wie bei der Call Auction handelt es sich hierbei um eine zweiseitige Auktion. Das heißt, sowohl Käufer, als auch Verkäufer geben ihre Gebote ( Order ) ab. Man unterscheidet zwischen Kaufgeboten ( Bid ) und Verkaufsgeboten ( Ask ). Anders als bei der Call Auction können die Gebote jedoch jederzeit, also kontinuierlich (daher continuous), abgegeben werden. Diese Gebote werden dann in das sogenannte Orderbuch aufgenommen. Dies ist eine sortierte Auflistung aller Kaufs- und Verkaufsgebote, die für jeden öffentlich einsehbar ist. Ein Teilnehmer kann sich jederzeit eine der platzierten Gebote 23 Vgl. [McA87], [Rei00] und [Yam72] 24 Vgl. [Sch88] 25 Hierbei handelt es sich sowohl um Kauf-, als auch um Verkaufsgebote. Daher ist die Call Auction zweiseitig 26 Vgl. [Wil80]

auswählen und akzeptieren. Dies führt dann zum Kaufabschluss. Sofern die Order nach der Ausführung nicht mehr verfügbar ist, wird sie aus dem Orderbuch entfernt. Zur Übersicht sind die hier vorgestellten Auktionstypen in folgender Grafik nochmals aufgeführt und anhand der genannten Kategorien eingeordnet: Abbildung 2: Auktionstypen Quelle: Prof. Dr. Christof Weinhardt, Institut für Informationswirtschaft und -management am KIT 3. Modellierung in GDL II Nachdem die Grundlagen der Modellierung und der Auktionstheorie erläutert wurden, sollen nun im folgenden Abschnitt die vorgestellten Auktionstypen modelliert werden. Hierbei wird die Beschreibungssprache GDL II als Mittel der Wahl eingesetzt. Die GDL II basiert in großen Teilen auf der bereits bewährten GDL, die auch im Rahmen von jährlichen Wettkämpfen verwendet wird. 27 Aufgrund dieser Erfahrungswerte wird sie den Alternativen Gala und MSL vorgezogen. Die stochastische Erweiterung, wie sie in [Kul09] beschrieben wird, ist nicht ausreichend. Insbesondere der Aspekt unvollständiger, asymmetrischer Information ist nämlich essentiell, um zum Beispiel die Auktionstypen mit verdeckter Gebotsabgabe modellieren zu können. Die GDL II ist mächtig genug, um diesen Anforderungen gerecht zu werden. Die Beschreibungen werden stets in die Abschnitte Initialisierung, Auktionsverlauf und Auktionsende gegliedert. Dabei beschreibt der erste Abschnitt Startzustände und definiert Rollen. Im zweiten Abschnitt werden die Spielzüge und Informationsflüsse modelliert. Am Schluss werden die Abbruchbedingungen und Auszahlungen beschrieben. Um dem Leser das Verständnis zu erleichtern, wird darauf verzichtet, die Axiome in der Beschreibungssprache KIF zu modellieren, wie sie zu Beginn eingeführt wurde. Dies ist nur für die tatsächliche Umsetzung relevant, um das automatisierte Reasoning durch Agenten zu ermöglichen. Für einen menschlichen Leser kann jedoch darauf verzichtet werden. Die 27 Vgl. [Gen05]

Beschreibungen können jedoch bei Bedarf leicht, wie im Abschnitt Game Description Language (GDL) beschrieben transferiert werden. In den nachfolgenden Modellen wird zudem davon ausgegangen, dass die Wertschätzung der Teilnehmer für das versteigerte Gut zwischen 0 und 100 liegt. In unseren Berechnungen wird stets davon ausgegangen, dass die Wertschätzung durch einen monetären Wert repräsentiert wird, der unmittelbar realisiert werden kann. Diese wird zu Beginn zufällig durch den random-player festgelegt. Dabei wird eine Gleichverteilung der möglichen Werte unterstellt. In unseren Berechnungen wird stets davon ausgegangen, dass die Wertschätzung durch einen monetären Wert repräsentiert wird, der unmittelbar realisiert werden kann. Je nach Anwendung, könnten die Anfangsbedingungen selbstverständlich auch leicht angepasst werden, um zum Beispiel ein konkretes Szenario nachzustellen. So könnte man bei der Initialisierung auch direkt die Wertschätzungen der Teilnehmer definieren. Allerdings sind diese aus Sicht der anderen Teilnehmer in der Regel unbekannt und bewegen sich innerhalb eines bestimmten Intervalls. Daher sind die hier getroffenen Annahmen durchaus plausibel. Die Größe des Intervalls und die Höhe der Wertschätzung lassen sich durch minimale Veränderungen beliebig skalieren. 3.1. Einseitige Auktionen Zunächst werden die einseitigen Auktionen modelliert, so wie im Abschnitt Auktionstypen beschrieben wurden. 3.1.1. Höchstpreisauktion Initialisierung Bei einer Englischen Auktion gibt es einen oder mehrere Bieter, die Gebote abgeben, sowie einen Auktionator, der dem Bieter mit dem höchsten Gebot den Zuschlag erteilt: role(a_1) role(a_m) role(auctioneer) role(random) val(0) val(100) init(initround) Auktionsverlauf Der Verlauf der Auktion wird in vier Phasen eingeteilt. In der initround werden die Wertschätzungen der einzelnen Teilnehmer durch den random-player festgelegt. Erst wenn diese vergeben und mitgeteilt wurden beginnt die bettinground, in der die Teilnehmer ihre verdeckten Gebote abgeben können. Hat jeder Teilnehmer ein Gebot abgegeben, beginnt die clearinground in der der Auktionator das Höchstgebot ermitteln und den Zuschlag erteilen kann. Danach ist die Auktion beendet ( finishedround ):

accept(bid(r,p)) does(r, my_bid(p)) true(bettinground) legal(auctioneer, clearing(r,p)) true(bid(r,p)) bestbid(p) true(clearinground) legal(r, my_bid(p)) role(r) distinct(r, auctioneer) distinct(r, random) true(bettinground) P 0 legal(random, set_values(v1,,vm)) true(initround) val(v1) val(vm) next(hasvalue(a_1,v1)) does(random, set_values(v1,,vm)) next(hasvalue(a_m,vm)) does(random, set_values(v1,,vm)) next(hasvalue(a_1,v1)) true(hasvalue(a_1,v1)) next(hasvalue(a_m,vm)) true(hasvalue(a_m,vm)) next(bettinground) does(random, set_values(v1,,vm)) next(bid(r,p)) accept(bid(r,p)) next(bid(r,p)) bid(r,p) next(clearinground) does(a_1, my_bid(p1)) does(a_m, my_bid(pm)) next(finishedround) does(auctioneer, clearing(r,p)) bestbid(p) true(bid(r,p)) outbid(p) outbid(p) true(bid(r,p1)) P1 P sees(a_1, V1) does(random, set_values(v1,,vm)) sees(a_m, Vm) does(random, set_values(v1,,vm)) sees(auctioneer, bid(r1,p)) does(r1, my_bid(p)) sees(r, call_for_bid) true(bettinground) sees(r1, bid_accepted(p)) accept(bid(r1,p)) sees(r, winner(r1,p)) does(auctioneer, clearing(r1,p)) Auktionsende Sobald die Auktion durch das Clearing des Auktionators beendet wurde, erhält der Meistbietende den Zuschlag. Seine Auszahlung ist abhängig von seiner Wertschätzung und dem Preis, den der Auktionator als Auszahlung erhält. Alle anderen Teilnehmer erhalten nichts: terminal true(finishedround) goal(r1,v-p) true(bid(r1,p)) true(hasvalue(r1,v)) true(bestbid(p)) goal(r,0) true(bid(r1,p)) true(bestbid(p)) distinct(r,r1) distinct(r, auctioneer) goal(auctioneer, P) true(bestbid(p)) 3.1.2. Vickrey-Auktion Die Vickrey-Auktion ähnelt der Höchstpreisauktion in großen Teilen. Es muss lediglich noch das zweithöchste Gebot für die Auszahlungen ermittelt werden. Daher müssen nur geringfügig Änderungen vorgenommen werden. Diese wurden fett hervorgehoben, um ein zügiges Nachvollziehen zu ermöglichen.

Initialisierung Bei einer Vickrey-Auktion gibt es zwei oder mehrere Bieter, die Gebote abgeben, sowie einen Auktionator, der dem Bieter mit dem höchsten Gebot den Zuschlag erteilt. Im Vergleich zur Höchstpreisauktion sind keine Änderungen notwendig: role(a_1) role(a_m) role(auctioneer) role(random) val(0) val(100) init(initround) Auktionsverlauf Der Verlauf der Auktion wird wie bei der Höchstpreisauktion in vier Phasen gegliedert. Diese bleiben bei der Vickrey-Auktion gleich: accept(bid(r,p)) does(r, my_bid(p)) true(bettinground) legal(auctioneer, clearing(r,p)) true(bid(r,p)) bestbid(p) true(clearinground) legal(r, my_bid(p)) role(r) distinct(r, auctioneer) distinct(r, random) true(bettinground) P 0 legal(random, set_values(v1,,vm)) true(initround) val(v1) val(vm) next(hasvalue(a_1,v1)) does(random, set_values(v1,,vm)) next(hasvalue(a_m,vm)) does(random, set_values(v1,,vm)) next(hasvalue(a_1,v1)) true(hasvalue(a_1,v1)) next(hasvalue(a_m,vm)) true(hasvalue(a_m,vm)) next(bettinground) does(random, set_values(v1,,vm)) next(bid(r,p)) accept(bid(r,p)) next(bid(r,p)) bid(r,p) next(clearinground) does(a_1, my_bid(p1)) does(a_m, my_bid(pm)) next(finishedround) does(auctioneer, clearing(r,p)) bestbid(p) true(bid(r,p)) outbid(p) outbid(p) true(bid(r,p1)) P1 P secondbestbid(p) true(bid(r,p)) true(bestbid(p1)) P<P1 true(bid(r,p2)) P2<P sees(a_1, V1) does(random, set_values(v1,,vm)) sees(a_m, Vm) does(random, set_values(v1,,vm)) sees(auctioneer, bid(r1,p)) does(r1, my_bid(p)) sees(r, call_for_bid) true(bettinground)

sees(r1, bid_accepted(p)) accept(bid(r1,p)) sees(r, winner(r1,p)) does(auctioneer, clearing(r1,p1)) secondbestbid(p) Auktionsende Sobald die Auktion durch das Clearing des Auktionators beendet wurde, erhält der Meistbietende den Zuschlag. Seine Auszahlung ist abhängig von seiner Wertschätzung und dem Preis, den der Auktionator als Auszahlung erhält. Der Preis entspricht hierbei jedoch dem zweithöchstem Gebot und nicht dem Gebot des Gewinners der Auktion. Alle anderen Teilnehmer erhalten nichts: terminal true(finishedround) goal(r1,v-p) true(bid(r1,p1)) true(hasvalue(r1,v)) true(bestbid(p1)) secondbestbid(p) goal(r,0) true(bid(r1,p)) true(bestbid(p)) distinct(r,r1) distinct(r, auctioneer) goal(auctioneer, P) true(secondbestbid(p)) 3.1.3. Holländische Auktion Initialisierung Bei einer Holländischen Auktion gibt es einen oder mehrere Bieter, die eines der Gebote annehmen, die von einem Auktionator in absteigender Reihenfolge genannt werden. Der Bieter der zuerst ein Gebot annimmt erhält den Zuschlag und zahlt den genannten Preis: role(a_1) role(a_m) role(auctioneer) role(random) val(0) val(100) init(auction(closed)) Auktionsverlauf Der Verlauf der Auktion wird aufgrund der Parallelität der Gebotsabgabe und annahme dieses Mal in nur drei Phasen eingeteilt. Zu Beginn ist die Auktion geschlossen (auction(closed)), um die Wertschätzungen der einzelnen Teilnehmer durch den random-player festzulegen. Erst wenn diese vergeben und mitgeteilt wurden, ist die Auktion eröffnet (auction(opened)) und der Auktionator beginnt die Gebote zu nennen. Hat ein Teilnehmer ein Gebot akzeptiert, wird die Auktion beendet und der Zuschlag erteilt (auction(finished)):

accept(bid(p)) does(auctioneer, submitbid(p)) reject(p) reject(p) true(bid(p1)) P1 P legal(r, acceptbid(p)) true(auction(opened)) role(r) distinct(r, auctioneer) distinct(r, random) true(bid(p)) legal(r, noop) true(auction(opened)) role(r) distinct(r, auctioneer) distinct(r, random) legal(auctioneer, submitbid(p)) true(auction(opened)) P 0 legal(random, set_values(v1,,vm)) true(auction(closed)) val(v1) val(vm) next(b) accept(b) next(auction(opened)) accept(b) next(bid(p)) true(bid(p)) outbid outbid accept(b) next(auction(finished)) does(r, acceptbid(p)) next(winner(r,p)) does(r, acceptbid(p)) next(hasvalue(a_1,v1)) does(random, set_values(v1,,vm)) next(hasvalue(a_m,vm)) does(random, set_values(v1,,vm)) next(auction(opened)) does(random, set_values(v1,,vm)) next(hasvalue(a_1,v1)) true(hasvalue(a_1,v1)) next(hasvalue(a_m,vm)) true(hasvalue(a_m,vm)) sees(a_1, V1) does(random, set_values(v1,,vm)) sees(a_m, Vm) does(random, set_values(v1,,vm)) sees(r, bid(p)) does(auctioneer, submitbid(p)) sees(r, bid_accepted(p)) accept(bid(p)) sees(r, bid_rejected(p)) reject(p) sees(r, auction(finished)) auction(finished) sees(r, winner(r1,p)) does(r1, acceptbid(p)) Auktionsende Sobald die Auktion durch die Annahme eines Gebots geschlossen wurde, ist die Auktion beendet und der erste annehmende Teilnehmer erhält den Zuschlag. Seine Auszahlung ist abhängig von seiner Wertschätzung und dem Preis, den der Auktionator als Auszahlung erhält. Alle anderen Teilnehmer erhalten nichts: terminal true(auction(finished)) goal(r1,v-p) true(winner(r1,p)) true(hasvalue(r1,v)) goal(r,0) true(winner(r1,p)) distinct(r,r1) distinct(r, auctioneer) goal(auctioneer, P) true(winner(r,p))

3.1.4. Englische Auktion Zur Veranschaulichung wurde die Englische Auktion in [Thi09] als vereinfachtes Interaktionsprotokoll auf Basis der Modellierung der FIPA Spezifikation 28 erstellt: Abbildung 3: Interaktionsprotokoll Englische Auktion Quelle: [Thi09] Angelehnt an diese Darstellung kann nun das GDL-II-Modell erstellt werden. Allerdings wird auf einen Timer verzichtet, sondern stattdessen die Terminierung durch den Auktionator offen gelassen. Statt des Timers wird daher eine Nachricht gesendet sobald die Auktion beendet wurde: Initialisierung Bei einer Englischen Auktion gibt es einen oder mehrere Bieter, die Gebote abgeben, sowie einen Auktionator, der dem Bieter mit dem höchsten Gebot nach einer angemessenen Zeit den Zuschlag erteilt: role(a_1) role(a_m) role(auctioneer) role(random) val(0) val(100) init(auction(closed)) 28 Diese ist im Internet verfügbar. Vgl. [FIP01]

Auktionsverlauf Der Auktionsverlauf ähnelt dem einer Holländischen Auktion. Allerdings läuft diese nun andersherum. Insbesondere die erlaubten Aktionen drehen sich um. Bezeichne RESERVE_PRICE den Reservationspreis des Auktionators unter diesem er kein Gebot annimmt. Dann beschreiben folgende Axiome den Verlauf der Auktion: accept(bid(r,p)) does(r, my_bid(p)) reject(p) reject(p) P reject(p) true(bid(r,p1)) P P1 reject(p) does(r, my_bid(p1)) P P1 legal(r, my_bid(p)) true(auction(opened)) role(r) distinct(r, auctioneer) distinct(r, random) P 0 legal(auctioneer, clearing(r,p)) true(bid(r,p)) true(auction(opened)) legal(auctioneer, noop) true(auction(opened)) legal(random, set_values(v1,,vm)) true(auction(closed)) val(v1) val(vm) next(b) accept(b) next(auction(opened)) accept(b) next(bid(r,p)) true(bid(r,p)) outbid outbid accept(b) next(auction(finished)) does(auctioneer, clearing(r,p)) next(hasvalue(a_1,v1)) does(random, set_values(v1,,vm)) next(hasvalue(a_m,vm)) does(random, set_values(v1,,vm)) next(auction(opened)) does(random, set_values(v1,,vm)) next(hasvalue(a_1,v1)) true(hasvalue(a_1,v1)) next(hasvalue(a_m,vm)) true(hasvalue(a_m,vm)) sees(a_1, V1) does(random, set_values(v1,,vm)) sees(a_m, Vm) does(random, set_values(v1,,vm)) sees(r, bid(r1,p)) does(r1, my_bid(p)) sees(r, bid_accepted(p)) accept(bid(r1,p)) sees(r, bid_rejected(p)) reject(p) sees(r, auction(finished)) auction(finished) sees(r, best_price(p)) true(bid(r1,p)) sees(r, winner(r1,p)) does(auctioneer, clearing(r1,p)) Auktionsende Sobald die Auktion durch das Clearing des Auktionators geschlossen wurde, ist die Auktion beendet und der Meistbietende erhält den Zuschlag. Seine Auszahlung ist abhängig von seiner Wertschätzung und dem Preis, den der Auktionator als Auszahlung erhält. Alle anderen Teilnehmer erhalten nichts: terminal true(auction(finished)) goal(r1,v-p) true(bid(r1,p)) true(hasvalue(r1,v)) goal(r,0) true(bid(r1,p)) distinct(r,r1) distinct(r, auctioneer)