Seite 1 von 3

SMART Questauswahl

Verfasst: Di 25. Mär 2014, 18:45
von Licor
Hey, ich wollte mal ein neues Thema erstellen was zwar nicht neu an sich ist, aber ich glaube es lohnt sich dafür ;-)

also wie schon der Betreff sagt, bin ich immernoch auf dem Pfad anstatt die maximale Erfahrungs Questauswahl eine SMART Questsauswahl zu integrieren...
Mein Datensatz für Quests die zur Auswahl stehen ist zwar noch nicht so groß, aber ich habe mit den 36x3 quests die für meinen Charakter zur verfügung standen mal ein paar Simulationen laufen lassen, in denen ich zum einen immer die Quest gewählt habe die am meisten Erfahrung/Sekunde gab, zum anderen habe ich meinen SMART-Ansatz benutzt der einfach nur guckt, ob die Erfahrung pro Sekunde der nächsten maxErfahrung/Sekunde Quest größer ist als der Mittelwert der bisher gewählten Quests * p wobei 0.5<=p<=1. Wenn die Erfahrung/Sekunde kleiner ist, wird die Quest gewählt die am wenigsten Zeit (also Abenteuerlust) verbraucht. Sollte es zwei Quest geben die gleich kurz (zeitlich) sind wird die genommen, die mehr Erfahrung/Sekunde gibt.

Die angehängten Bilder zeigen, zum einen den Vergleich für SMART und maxErfahrung/Sekunde für die durchschnittliche Erfahrung/Sekunde die während 100 Abenteuerlust bekommen wurde und zum anderen die Anzahl an Quest die innerhalb von 100 Abenteuerlust absolviert wurden.
smart vs maxEP.png
smart vs maxEP.png (275.79 KiB) 11177 mal betrachtet
Resultat ist: Ich bekomme mit der SMART Strategie ca 2.5% mehr Erfahrung und zudem mache ich ca 19% mehr Quests, sprich also 19% mehr chancen auf Pilze.

Die Ergebnisse beziehen sich auf Quest die meinem Level 279 charakter zur Verfügung stehen, ich habe die 3er Quest paarungen immer beibehalten aber die Reihenfolge der Quest habe ich randomized. Dann wurde jeweils ein Mittelwert über 500 Iterationen berechnet.


Für Fragen und Anregungen und sonstige Kommentare stehe ich gerne zur Verfügung und hoffe das eine SMART auswahl bald im Bot zu finden ist ;-)

LG Licor

Re: SMART Questauswahl

Verfasst: Di 25. Mär 2014, 21:48
von olafson
Hallo Licor,

Gute Idee, danke dafür!

Noch ein paar Sachen, die mir dazu einfallen: Ich fände es gut, wenn Deine SMART-Technologie nicht auf Exp beschränkt wäre, sondern auch Gold berücksichtigt! Damit wären dann nämlich 'rote' Quests auch abgedeckt, die bisher nämlich verloren gehen, wenn man auf Exp spielt!

Und noch ein paar technische Aspekte:

Sehr wichtig ist, dass der Durchschnitt sich nur aus 'normalen' Quests berechnen darf, sonst wird er z.B. nach einem Exp-Event eine ganze Weile keine Exp-Quests mehr annehmen :D

Und der Bot muss den bisherigen Durchschnittswert (meanExp) speichern und auch wissen, aus wie vielen Einzelwerten (currentValues) dieser besteht, und zwar nach folgender Formel:

' meanExp = meanExp + (currentExp - meanExp) / currentValues '

Grob umschrieben wird dabei zuerst das Delta aus derzeitiger und bisheriger Erfahrung gebildet. Danach erfolgt die Wichtung über das Teilen durch die aktuelle Anzahl der insgesamt einbezogenen Werte. Der gewichtete Wert wird dann der bisherigen durchschnittlichen Erfahrung zugeschlagen, fertig ^^

Soweit vorerst!
Gruß, Olafson

Re: SMART Questauswahl

Verfasst: Di 25. Mär 2014, 22:25
von picard
find ich gut !

sollte integriert werden

Re: SMART Questauswahl

Verfasst: Di 25. Mär 2014, 23:49
von Licor
@ Olafson
zum ersten punkt:
wie schon im chat besprochen, wäre das rote quest Problem einfach zu integrieren mit einer abfrage die guckt wieviel Gold man durchschnittlich bekommt und wieviel die jetztigen Quests darüber oder darunter liegen, mit bissl ausprobieren sollte dann leicht ein threshold zu setzten sein mit den man rote quest auslesen und somit auch auswählen kann.

Von meiner Seite aus soll sich die SMART-Auswahl natürlich nicht nur auf exp beschränken, ich versuche den code so allgemein zu halten wie möglich, sodass man dann einfach angibt was man primär und sekundär haben will und die variablen dann einfach je nach auswahl in den code eingefügt werden.
In dem Beispiel von oben habe ich primär auf Exp und sekundär auf Zeit simuliert.... andere combinationen wie Zeit und Gold oder Gold und Exp sollen auch implementiert werden... simulationen dazu brauchen aber noch bissl, da ich die daten alle aus den loggs auslese, mein script kann aber bisher nur die exp und zeit daten erfassen.

zum zweiten und dritten punkt:
jup.. der mean sollte für die Wochenenden und nach level-ups resetten... und ja der mean muss ein gewichteter mean sein, mir schwirrt da was von

mean_exp= (mean_exp*values + current_exp)/(values+1)

durch den Kopf... aber wenn es simpler geht immer her damit :p

lg Licor

Re: SMART Questauswahl

Verfasst: Mi 26. Mär 2014, 01:39
von Licor
olafson hat geschrieben:
' meanExp = meanExp + (currentExp - meanExp) / currentValues '
so hab jetzt mal deine und meine Formel verglichen, weil es ja doch bissl wirr im chat damit war... wie schon durch excel gezeigt sind beide richtig, aber jetzt hab ich auch deinen weg verstanden ^^ !!
Der Unterschied zwischen beiden Formeln ist die betrachtungsweise der Gewichtung, bei deiner normalisierst du auf den alten mean und benutzt deswegen das delta welches du dann noch mit den anzahl der elemente gewichten musst.

Bei meiner wird nicht normalisiert und deswegen muss ich die Gewichtung durch die Anzahl der beinhaltenden elemente auf alle Variablen anwenden.

Soooo Gute Nacht ^^

Re: SMART Questauswahl

Verfasst: Do 27. Mär 2014, 11:37
von oRGaZMo
über so eine funktion mach ich mir auch schon sehr lange gedanken...
denn so spiele ich auch von hand:
wenn 3 goldquests angeboten werden die deutlich unterm EP schnitt liegen,
dann von Max EP abweichen und die kürzeste dauer wählen .

greetz
oRGaZMo

Re: SMART Questauswahl

Verfasst: Do 1. Mai 2014, 17:08
von xDrAcHeNx
Würde man dasselbe auch mit Gold implementieren können? (Denn für mich liegen die Vorteile klar dabei mehr Gold zu machen.

Re: SMART Questauswahl

Verfasst: So 4. Mai 2014, 22:10
von olafson
Hallo zusammen!

Licor, erstmal ein großes Lob: Die SMART-Auswahl kommt mit dem Goldevent super klar!

Bisher hatte ich wie xDrAcHeNx angenommen, dass ausschließlich Erfahrung damit gepusht wird. Aber an normalen Tagen sind gute Goldquests natürlich rar und man prüft ja auch nicht jede Entscheidung des Bots.

Danke für dieses äußerst hilfreiche Feature ;)

Viele Grüße,
Olafson

PS: Gerade fällt mir auf, dass er sich manchmal noch 'umentscheidet', wenn er keine gute Quest findet und auf Zeit geht. Dann stehen im Log zwei Einträge dazu (teilweise ist die erstgenannte Quest nicht mal die mit der kürzesten Zeit ^^)

Re: SMART Questauswahl

Verfasst: Di 6. Mai 2014, 05:25
von oRGaZMo
olafson hat geschrieben: PS: Gerade fällt mir auf, dass er sich manchmal noch 'umentscheidet', wenn er keine gute Quest findet und auf Zeit geht. Dann stehen im Log zwei Einträge dazu (teilweise ist die erstgenannte Quest nicht mal die mit der kürzesten Zeit ^^)
ha sowas ähnliches wollt ich auch grad reporten: :mrgreen: der logtext:

Code: Alles auswählen

[INFO-TAV] 03:37 Uhr: Taverne wird betreten...
[INFO-TAV] 03:37 Uhr: SMART Auswahl Zeit statt Erfahrung (Quest 2)
[INFO-TAV] 03:37 Uhr:        Quest 1: 05:00 min, 460,0 Tsd. Gold (1533/s), 165,4 Tsd. XP (551,3/s)
[INFO-TAV] 03:37 Uhr:        Quest 2: 05:00 min, 418,0 Tsd. Gold (1393/s), 263,4 Tsd. XP (878,0/s)
[INFO-TAV] 03:37 Uhr:        Quest 3: 05:00 min, 243,3 Tsd. Gold (810,9/s), 496,2 Tsd. XP (1654/s)
[INFO-TAV] 03:37 Uhr: Gewählter Quest: Quest 2 nach Auswahlverfahren 4
aber ich glaube gestern im chat beiläufig gelesen zu haben, dass licor eh schon n update an robin geschickt hat?

übrigens nochmal n ausdrückliches dankeschön an licor fürs entwickeln dieses features.
möchtest du in den nächsten tagen auch am closed-beta test des SA-Tools teilnehmen,
oder haste mit den quests selbst genug ärger am hals? :lol:

greetz
oRGaZMo

Re: SMART Questauswahl

Verfasst: Mi 7. Mai 2014, 20:51
von Licor
Hey,...
ich hab nochmal die abfragen komplett überarbeitet, die bugs die ihr hier genannt habt, müssten in der nächsten version behoben sein ^^.

Natürlich wäre dieses feature auch auf Gold optimierung anzuwenden, allerdings wollen wir nicht 1000 wahlmöglichkeiten machen, da es sonst 9 kombinationen gäbe... bisher liegt das primäre augenmerk der auswahl auf Erfahrung (und rote quests, Epics, Spiegelstücke), sekundär sucht er, wenn alle quests scheiße sind (in hinsicht auf erfahrung), die kürzeste quest (wenn mehrer gleich kurz, die die mehr erfahrung gibt)... Jetzt könnte man ja auch primär auf gold gehen und sekundär auf erfahrung.... oder primär gold sekundär zeit... oder oder oder...

es gibt einfach erstmal zu viele möglichkeiten, um alle wünsche zu erfüllen und gleichzeitig den bot nicht a) unendlich langsam zu machen, und b) das bot interface zu verkomplizieren


bezüglich der beta-tester anfrage interesiert es mich zwar schon und ich würde es gerne testen, nur weiß ich nicht wieviel zeit ich darauf verwenden kann, aber wenn du es mir schickst, werde ich mein bestes tun umm ihn zu testen ^^

cheers Licor