Author Archives: Cookie

Cookie

Ich bin.. hmm, wie fange ich nun am Besten an? Mit dem Trivialen: Ich bin Cookie :) Und wie drücke ich nun am besten aus, wie ich mich in Science-O-Matics und in !∃2.0 einbringe? Vielleicht kurz zu mir: Ich habe Mathe mit einem Schwerpunkt in der reinen Mathematik studiert, nach meinem Abschluss dann ein Jährchen mal ein wenig Geld verdient in der ABAP Entwicklung, dann bin ich zurück zur Uni, habe mit einem kurzen Exkurs in die mathematische Optimierung mein Wirtschaftsmathe Diplom vollendet und mache gerade meinen Doktor in der quantitativen Forschung der Wirtschaftswissenschaften, also Optimierung auf Wirtschaftsseite, Modelle aufstellen, Algorithmen analysieren, anpassen oder entwickeln, implementieren.. Ist echt cool :D Also im Herzen Mathematikerin. Nein, Informatikerin.. Beides halt ^^ Für !∃2.0 mache ich vor allem Mathemagie und deren Umsetzung, aber auch viele andere Hintergrundmodelle. Sachen, die man in Spielen schon immer mal cool gefunden hätte.. "einfach" mal umgesetzt als eigenständiges Feature. So ist zum Beispiel die Generierung der Umwelt zum größten Teil aus meiner Feder. Hmm.. was schreibt man sonst noch in eine Vorstellung rein? Das Alter? - Vergesst es, nach dem Alter einer Dame fragt man nicht :P Hobbies? Tja, Computerspiele, wie man sich wohl denken kann ^^ Aber auch LARP, Gesellschaftsspiele und Trading Card Games, nähen und Sport würde ich dazu zählen.. Ehrlicherweise auch Shoppen, Schuhe und Klamotten ;) Ach, warum ich Cookie heiße? Das sollte schnell klar werden ohne dass ich es ausführe ;)

Schön gesagt.. (3)

“Eines Tages werden Maschinen vielleicht denken können, aber sie werden niemals Fantasie haben.” – Theodor Heuss

Ein weiteres schönes Zitat, hier passend zum aktuellen KI Thema :) Ob es wahr ist, schwer zu sagen, das wird die Zeit wohl zeigen. Ich muss sagen.. mir reicht es, wenn meine NSC sich ans “denken” ranrobben ;)

Posted in Off-Topic-O-Matic. Tagged with .

Programmablauf: Optionsebene

Dieses Wochenende war endlich mal wieder Zeit, um mal ein paar Stunden am Stück zu proggen :) Erstens hat das sehr viel Spaß gemacht und zweitens bin ich gut voran gekommen :) So grob funktioniert nun alles, aber viele, viele, viele (viele, viele, viele.. :P ) Kleinigkeiten fehlen noch. Folgend seht ihr ein Ablaufdiagramm, das den groben Ablauf der Optionsebene (in der jetzigen Umsetzung) beschreibt.

Ablauf Optionsebene

Ablauf Optionsebene

Drei zentrale Mitspieler sind hier Instanzen der Klassen DBHandler (Schnittstelle zur Datenbank und Puffer), NPC (selbsterklärend) und AISimulation (simuliert das Umfeld).

  • get data: Aus dem Puffer (bzw. ultimativ aus der Datenbank) werden alle KI / NSC-relevanten Daten (Bedürfnisse, Gewichte der Motivationsklassen, Optionen, SOM, Inventar und Aufenthaltsort des NSCs). Aus diesen Daten wird dann eine Instanz der Klasse NPC erstellt. Dort wird dann erst die aktuelle Periode “durchlebt”, und dann die kommende Periode geplant.
  • decide on next option: Die Option, deren SOM-Werte den Bedürfnissen des NSCs am besten entspricht wird gewählt und eingeplant. Wenn wir uns in der live-Periode befinden, werden die dazu gehörenden Events aus dem Puffer geholt (get events) und in die Liste der kommenden Events einsortiert (sort events by date).
  • update time: Die Zeit wird upgedated auf den Zeitpunkt nach Ausführung der Option.
  • execute next event: Alle Events, deren Ausführungszeitpunkt vorm aktuellen Zeitpunkt liegt, werden nun ausgeführt. Die daraus resultierenden Änderungen in den Bedürfnissen, dem Inventar und dem Aufenthaltsort des NSCs (adjust inventory, location & needs) werden zusammen mit dem Event in den Puffer geschrieben.
  • In der Planungsperiode soll der NSC die nächste Periode nur planen, ohne zu wissen, welche Events wirklich eintreten werden. Dieser Vorgang findet also rein in der Instanz der Klasse NSC statt. Wieder wird die Option gewählt, deren SOM-Werte den Bedürfnissen des NSCs am besten entspricht. Sowohl die die Änderung in der Zeit als auch die Änderungen in den Bedürfnissen, dem Inventar und dem Aufenthaltsort des NSCs werden aus den Erwartungen des NSCs ermittelt und durchgeführt. Es werden dann Optionen ermittelt, bis die Planungsperiode komplett beplant ist. Die in der Planungsperiode getätigten Änderungen in den Bedürfnissen, dem Inventar und dem Aufenthaltsort des NSCs werden nicht in den Puffer übernommen, lediglich die Liste der Optionen landet ultimativ auf der Datenbank.
Posted in Code-O-Matic. Tagged with , .

Zurück aus Budapest – und voller Ideen

Heute nach einem tollen Urlaub zurück gekommen aus Budapest :) Wieder einmal hat mich diese Stadt ein paar Tage lang verzaubert :) Und mir viele, viele Ideen / Inspirationsansätze für unser Spiel geschenkt ;) Ideen, die ich euch sicherlich zu gegebener Zeit in hübsch aufbereitet präsentieren werde :)

Cookie im ungarischen Nationalmuseum

Cookie im ungarischen Nationalmuseum

Posted in Off-Topic-O-Matic. Tagged with .

Schön gesagt.. (2)

“Für das Können gibt es nur einen Beweis, das Tun.” – Marie von Ebner-Eschenbach

So.. gerade meinen ersten Halbmarathon absolviert :D Hat Spaß gemacht und damit ist auch gleich ein mir selbst gestecktes Ziel für dieses Jahr geschafft :) Ich dachte mir, dass ich das kann, aber nun habe ich es (mir) auch bewiesen :)

Posted in Off-Topic-O-Matic. Tagged with .

How-To: Python Scripting in Blender: (10) Objekte gruppieren

Outliner Objektgruppe

Outliner Objektgruppe

In diesem Tutorial wollen wir Objekte zu Objektgruppen zusammen fassen. Wie das How-To zum Collada Export wird dieses Tutorial so kurz, dass es eigentlich keinen “weiterlesen” Button braucht. Aber das Gruppieren von Objekten in Blender könnte noch einmal wichtig werden, also behandeln wir es eben :) Am Ende dieses Tutorials könnt ihr

  • Objekte gruppieren und
  • Objektgruppen auflösen.

Continue reading

Posted in Code-O-Matic, Graphic-O-Matic. Tagged with , , .

Schön gesagt.. (1)

“Der Einfall ist ein Schritt mit dem Siebenmeilenstiefel, die Ausführung der Weg zurück zu Fuß.” – Peter Tille

Zeit für eine neue Artikelreihe :) Ich weiß nicht, wie stark das schon durchgeschimmert hat in meinen bisherigen Artikeln, aber.. ich bin ein Riesenfan von Zitaten. Lebensweisheiten, interessante Erkenntnisse, Lebensarten, kleine Schmankerl, so gewandt, schön und treffend ausgedrückt, wie ich selber es niemals könnte. Und beginnen will ich damit mit dem obigen Zitat von Peter Tille, einem deutschen Schriftsteller. Dieses Zitat drückt sooo gut aus, wie man sich doch in Forschung und Entwicklung gar zu oft fühlt :) Der Einfall, die Erkenntnis ist schnell gehabt, die Umsetzung, der Beweis zieht sich dann..

Posted in Off-Topic-O-Matic. Tagged with .

How-To: Modellieren mit RL Materialien: (2) Gips und Bauschaum

Schneiderbüste

Schneiderbüste

Willkommen zum zweiten Teil der Tutorialreihe Modellieren mit RL Materialien :)  In diesem zweiten Teil wollen wir mit Gips (und Bauschaum) eine Schneiderpuppe bauen :) Am Ende dieses Tutorial könnt ihr

  • Negativformen aus Gips erstellen und
  • Positivabbilder aus Bauschaum von diesen Negativformen erstellen.

Das erste Ziel für mich war hier eben eine Schneiderbüste, aber auch für das LARPen (wofür wir ehrlicherweise außer die Kleidung bisher alles gekauft haben) wird sich so sicher das eine oder andere zaubern lassen :)

Continue reading

Posted in Off-Topic-O-Matic. Tagged with , , .

Ablauf Kaufangebot

Nachdem ich in den letzten Artikeln einige Tools / Änderungen (Zeitreihenanalyse, Nutzen von Gegenständen, Geld.., Sekretärinnenproblem mit Lösungsansätzen) zur Evaluation von Kaufangeboten zusammen getragen habe, ist es wohl mal an der Zeit, die Ergebnisse des Brainstormings zu ordnen. Unten seht ihr ein Ablaufdiagramm, wie ich mir momentan die Kaufentscheidung vorstelle.

Der Plan ist also folgender: Der NSC erhält ein Kaufangebot, hierdurch wird der ganze Prozess getriggert. Der Erhalt des Kaufangebots kann natürlich einmal wirklich ein “spontan” erhaltenes Angebot sein, aber auch ein eingeholtes Kaufangebot, weil sich für die Option “Item xy kaufen” entschieden wurde. Der NSC ermittelt dann (aus der SOM) einerseits den Nutzen des Gutes bzw. der Güter und andererseits den Nutzen des zu zahlenden Geldes. Wenn der Nutzen des Geldes überwiegt, brauchen keine weiteren Überlegungen angestellt werden -> das Angebot ist für den NSC unattraktiv und kann abgelehnt werden. Überwiegt der Nutzen des Gutes / der Güter den Nutzen des Geldes, dann ist das Angebot generell attraktiv für den NSC. Statt das Gut aber sofort zu kaufen, muss der NSC nun entscheiden, ob er das Angebot annimmt, oder (woanders) ein anderes Angebot einholt. Entsprechend wird das vorliegende Angebot dann angenommen oder abgelehnt.

Dieser Ablauf lässt sich natürlich noch verfeinern, für die Zukunft schwebt mir als erste kleine Erweiterung vor, dass der NSC handelt. Sowohl im Falle der Ablehnung eines unattraktiven Angebots, als auch im Falle eines attraktiven Angebots kann der NSC die vorhandenen Info als sehr gute Verhandlungsgrundlage nutzen. Aber das ist mal wieder Zukunftsmusik.. Aber Musik ist schließlich was Feines..

Ablauf Kaufangebot

Ablauf Kaufangebot

 

Posted in Code-O-Matic. Tagged with , , .

How-To: Python Scripting in Blender: (9) Rotation mit Eulerkoordinaten

In diesem dritten und letzten Tutorial zur Rotation im dreidimensionalen Raum wollen wir uns die Drehung mittel Eulerkoordinaten ansehen. Am Ende dieses Tutorials könnt ihr

  • Eulersche Winkel berechnen und
  • mit Eulerschen Winkeln Objekte in Blender rotieren.

Continue reading

Posted in Code-O-Matic, Graphic-O-Matic. Tagged with , , .

Froher Valentinstag <3

Pixelherz

Pixelherz

Ach, auch wenn der Valentinstag ein britischer bzw. mittlerweile amerikanischer Brauch ist, der erst “kürzlich” hier nach Deutschland geschwappt ist, so mag ich ihn doch gerne und werde diese Gelegenheit zum Backen nicht verstreichen lassen ;) Zu diesem schönen Anlass habe ich uns ein Pixelherz aus drei Schichten gemacht – Rührteig, Joghurtcreme und Beerenmousse. Ich wünsche euch Allen ganz viel Liebe an diesem schönen Tag (und eigentlich jedem anderen Tag des Jahres) und feiert schön mit eurem / eurer Liebsten :)

Cookies Valentinstagsgrüße

Cookies Valentinstagsgrüße

Posted in Off-Topic-O-Matic. Tagged with , , .

mehr zum Sekretärinnenproblem

Nachdem das Sekretärinnenproblem in seiner Grundform unseren Anforderungen nicht gerecht wurde, will ich in diesem zweiten Artikel ein paar Erweiterungen aus der Literatur vorstellen. Vier (erste) Kritikpunkte wurden schon erwähnt, mal sehen was die Literatur dazu sagt:

Der Zielfunktionwert ist im Standardproblem entweder 1 (bester Kandidat gewählt) oder 0 (sonst).  Bei uns ist der Zielfunktionswert der Nutzen des angenommenen Kaufangebots (abzüglich der Evaluationskosten). Allgemeine Nutzenfunktionen wurden schon 1973 von Mucci vorgestellt. Diese sind (mit einigen Voraussetzungen, die bei uns gelten) wie die Grundform lösbar [1].

Im Standardproblem kommen die Kandidaten zum Entscheider, der NSC nachher muss den nächsten Händler (wahrscheinlich) aufsuchen. Dadurch entstehen Evaluationskosten (also Wegezeit). Auch Evaluationskosten wurden bereits in der Literatur behandelt, zuerst von Lorenzen in 1978 [4]. Mit allgemeiner Nutzenfunktion (ohne die Möglichkeit, zurück zu gehen und eine abgelehnte Option anzunehmen) lässt sich auch diese Aufgabe (unter gewissen Voraussetzungen) geschlossen lösen [5].

In der Grundform des Sekretärinnenproblems ist eine einmal abgelehnte Option dauerhaft verloren. Dem NSC wird es möglich sein, den Händler eines abgelehnten Angebots noch einmal zu besuchen und das Angebot (so der Händler es noch anbietet) doch noch anzunehmen. Schon 1974 wurde diese Erweiterung von Yang vorgestellt [2], gelöst wird auch diese Form mit dynamischer Programmierung [1].

Auch eine unbekannte Anzahl an Kandidaten wurde in der Literatur schon behandelt [1]. Doch diesen Punkt können wir uns eigentlich schenken – man kann leicht abschätzen, wie viele Händler besuchen ob der Evaluationskosten überhaupt Sinn macht und darüber lässt sich die Anzahl der Kandidaten schon gleich ab Anfang beschränken.

Soo, soweit zu den einzelnen Punkten.. Aber wir brauchen ja alle Punkte zusammen.. Das dann demnächst mit eigenem Hirnschmalz.

[1] P.R. Freeman. (1983). The Secretary Problem and its Extensions: A Review. International Statistical Review, 51 (1983), pp. 189-206.
[2] Smith, M.H. (1975). A secretary problem with uncertain employment. J. Appl. Prob. 12, pp. 620-624.
[3] Mucci, A.G. (1973). Differential equations and optimal choice problems. Ann. Statist. 1, pp. 104-113.
[4] Lorenzen, T. J. (1978). Generalising the secretary problem. Adv. Appl. Prob. 11, pp. 384-396.
[5] Lorenzen, T. J. (1981). Optimal stopping with sampling cost: the secretary problem. Ann. Prob. 9, pp. 167-172.

Posted in Inspiration-O-Matic, Theory-O-Matic. Tagged with , , .

Das Sekretärinnenproblem

Der NSC kann nun nicht nur mit Hilfe der Zeitreihenanalyse ermitteln, welchen Preis er für das angebotene Gut für fair hält,  sondern kann über die Nutzendifferenz von Gut und Geld auch genau den erwarteten Nutzen ermitteln (siehe auch Geld und Nutzen). Doch wie entscheidet er nun, ob er das Kaufangebot annimmt oder in der Hoffnung nach einem besseren Angebot (vorerst) ablehnt und weitersucht? Ein erster Schritt zur Antwort könnte das Sekretärinnenproblem sein, dessen Grundform ich in diesem Artikel vorstellen möchte.

In der Grundform des Sekretärinnenproblems werden nacheinander n Bewerber(innen) vorgestellt und nach der Evaluation des jeweils aktuellen Bewerbers muss sofort entschieden werden, ob die Bewerbung angenommen oder abgelehnt wird. Es darf nur genau eine Bewerbung angenommen werden (also wenn eine Bewerbung angenommen wird, gehen alle vielleicht noch kommenden besseren Bewerber verloren) und eine einmal abgelehnte Bewerber(in) ist dauerhaft verloren. Es gibt nur zwei Ausgänge: Sieg (die beste Bewerbung wurde angenommen, Zielfunktionswert 1) oder Niederlage (die beste Bewerbung wurde nicht angenommen, Zielfunktionswert 0). Die Aufgabe ist es, eine optimale Annehm- / Ablehnstrategie zu finden, also eine Strategie, in der die Chance, die beste Bewerbung anzunehmen, maximal ist. [1]

In dieser einfachen Version gibt es für das Sekretärinnenproblems geschlossene Lösungen [1]. Doch die Situation mit unserem NSC wird von den Annahmen der Grundform nicht abgedeckt, so zum Beispiel:

  • Der Zielfunktionwert entspricht dem Nutzen des angenommenen Kaufangebots (abzüglich der Evaluationskosten) und wird nicht 0, wenn es eine bessere Option gegeben hätte.
  • Die Evaluation einer weiteren Option kostet Zeit (Weg zum nächsten Händler..).
  • Es ist möglich, eine abgelehnte Option noch einmal zu evaluieren, dies verursacht erneut Evaluationskosten (Weg zurück zum Händler) und eventuell ist das Angebot nicht mehr gültig.
  • Die Anzahl der möglichen Kaufangebote ist a priori nicht notwendigerweise bekannt.

[1] P.R. Freeman. 1983. The Secretary Problem and its Extensions: A Review. International Statistical Review, 51 (1983), pp. 189-206.

Posted in Inspiration-O-Matic, Theory-O-Matic. Tagged with , , .

Handwerksmaterialien: Federn

Vogelpärchen

Vogelpärchen

Ein weiteres tolles Material für Schmuck und Kleidung sind fremde Federn. Von einfachen, heimischen Tieren bis zu exotischen und seltenen Vögel lassen sich Federn zur Zierde (aber auch mit Nutzen wie zum Beispiel für Decken und Kissen) gewinnen. Je auffallender, seltener, schwerer zu bekommen, desto wertvoller werden sie sicherlich gehandelt werden.

eine Auswahl schöner Federn..

eine Auswahl schöner Federn..

Posted in Inspiration-O-Matic. Tagged with , .

Mode: Hochrenaissance

Isabella von Portugal (1520)

Isabella von Portugal (1520)

Wenn wir heutzutage an die Renaissance denken, so meinen wir zumeist die Hochrenaissance, die sich in Italien Anfang des 16. Jahrhunderts, in Deutschland erst Mitte / Ende des 16. Jahrhunderts an die Frührenaissance anschloss und durch große Künstler wie Leonardo da Vinci und Michelangelo Buonarroti bestach (siehe Wikipedia).

Hier setzt sich der in der Frührenaissance begonnene Trend fort. Die Kleider werden ausladender, die Stoffe noch prunkvoller und schwerer, die Korsette enger und starrer (siehe [1], S. 167f.). Modisch schließt sich an diese Zeit die spanische Mode an, es bleibt also eng geschnürt..

[1] G. Lindemann, H. Boekhoff. 1970. Lexikon der Kunststile, Band 1: Von der griechischen Archaik bis zur Renaissance. Georg Westermann Verlag.

Posted in Off-Topic-O-Matic. Tagged with .

How-To: Python Scripting in Blender: (8) Rotation mit Quaternionen

In diesem zweiten Tutorialteil über die Rotation im dreidimensionalen Raum in Blender mit Python wollen wir uns die Rotation mir Quaternionen ansehen. Am Ende dieses Tutorials könnt ihr

  • Quaternionen berechnen
  • Rotationen in Blender mit Quaternionen durchführen und
  • Quaternionen- und Achse-Winkel-Darstellungen von Drehungen ineinander umformen.

Continue reading

Posted in Code-O-Matic, Graphic-O-Matic. Tagged with , , .