InterGalaktisches ForscherNetzwerk entwickelt B.o.t. zur Accountoptimierung und kämpft damit gegen Amortisationsrechnung. DAS sind die Ergebnisse.

Als Gast sind dir nicht alle Inhalte und Funktionen dieses Forums zugänglich.
Um das Forum im vollen Umfang nutzen zu können, registriere dich bitte.
  • In diesem Thread möchte ich ein Paar Gedanken zum Accountaufbau vorstellen und Ergebnisse präsentieren, die durch B.o.t.nutzung entstanden sind. Die Interpretationen überlasse ich überwiegend den Lesern. Grüße gehen an kfg , mit dem ich seit Beginn letzten Jahres wegen des B.o.t.s in regelmäßigem Austausch stand und der wertvollen Input geliefert hat.


    Einleitung


    Hallo.


    Phasen des Accountaufbaus


    Der Aufbau eines Accounts lässt sich grundsätzlich in drei verschiedene Phasen einteilen.

    1. Die Sparphase (S): In der Sparphase liegen noch nicht alle benötigten Rohstoffe vor, um den nächsten Bauauftrag bzw die nächste Forschung zu starten.
      Die Zeitspanne hängt von den Einnahmen des Accounts (Minen, Farming, Expos,...) sowie dem Handelskurs ab.
    2. Die Wartephase (W): Während der Wartephase sind ausreichend Rohstoffe im Account vorhanden, damit der nächste Job gestartet werden kann. Allerdings ist die dafür benötigte Warteschlange (noch) belegt. Solange ein Gebäude baut oder eine Forschung läuft, kann kein neuer Auftrag gestartet werden. Die Verweildauer in dieser Phase hängt von den Bauzeiten, also Verkürzungsgebäuden, ab (Robo, Flab, Nani,...). Zusätzlich ist die Wartephase für den Gebäudebau auch von der Planetenzahl abhängig.
    3. Die Bauphase (B): Der Auftrag wurde gestartet und ist noch nicht fertig.


    Jedes Projekt durchläuft die Phasen in der angegebenen Reihenfolge. Erst muss gespart werden, dann muss die Queue frei sein, und schließlich wird gebaut.

    Zur Bewertung einer Bauliste darf dieser Prozess jedoch nicht ausschließlich statisch gesehen werden.


    Sind mehrere Projekte geplant, so ist die Phasenreihenfolge üblicherweise nicht S1, W1, B1, S2, W2, B2,... . In der effizientesten Bauweise überlappen sich die Phasen zweier aufeinanderfolgenden Projekte so weit wie möglich.

    So fängt S2 bereits an, sobald S1 abgeschlossen ist. Sind Projekt 1 und Projekt 2 Gebäude, die auf unterschiedlichen Planeten gebaut werden, oder eine Forschung und ein Gebäude, können sich B1 und B2 überlappen. (W1 und W2 ebenso).

    Außerdem können abgeschlossene Projekte die Sparphase nachfolgender Projekte verringern. Im einfachsten Fall ist die Minenproduktion durch das Fertigstellen einer Mine gestiegen.


    All diese Faktoren müssen zum Finden einer optimalen Baureihenfolge berücksichtigt werden. Doch eine (große) Bauliste auf diese Weise manuell durchzurechnen erscheint ziemlich mühsam.

    Zu diesem Zweck wurde daher ein B.o.t. entwickelt. Dieses erlaubt bei gegebenem Account und Bauliste die Berechnung der Gesamtbauzeit unter Berücksichtigung der Phasen und ihrer Interaktion untereinander. Desweiteren werden nach Fertigstellung eines produktionsverändernden Gebäudes / einer produktionsverändernden Forschung die Prozente der Minen, des FKW, sowie der Crawler auf die Kombination mit höchster Produktion eingstellt.

    Zusätzlich kann das B.o.t. alle (einzigartigen) Permutationen der Bauaufträge ausprobieren und so die optimale Reihenfolge herausfinden.

    B.o.t. steht übrigens für Baulistenoptimierungstool.


    Zur Vereinfachung der Simulation werden Einschränkungen gemacht, von denen für diesen Thread die Folgenden erwähnenswert sind.

    - Alle Ressourcen im Account sind auf jedem Planeten ohne Zeitverzögerung verfügbar. Es fliegen keine Transporter.

    - Minenproduktion wird nicht durch Lager limitiert

    - Rohstoffe können jederzeit beliebig getauscht werden -> Es wird überall in DSE gerechnet.

    - Es wird angenommen, dass Gebäude auf jedem Planeten in der gleichen Reihenfolge gebaut werden, und auf jedem Planeten erst das gleiche Gebäude gebaut wird, bevor das nächste (andere) Gebäude gebaut wird. (Round-Robin)

    - Zur Verringerung der Programmlaufzeiten werden für Simulationen in diesem Thread die Prozente nur zwischen 70% und 100% ausprobiert.


    Die Programmausgaben, die ich hier zeigen werde, sind außerdem auf Englisch.



    Der Einstieg: B.o.t.nutzung im Tutorial

    Zunächst wird eine kleine Beispielanwendung des Tools gezeigt. Mit einem frischen Account, 500 Met und 500 Kris, soll möglichst schnell der erste Tutorialschritt abgeschlossen werden.

    Versucht wird hierbei nur Met, Kris, Skw bauen, um auf Met 4, Kris 2, Skw 4 zu kommen. Kurs 3:2:1. Der Planet hat eine Temperatur von 0°.


    Mit Kollektor liegt das Feld hierbei sehr dicht zusammen. Mit vier Sekunden Vorsprung vor den anderen hat es diese Liste auf Platz 1 geschafft


    M 1, SKW 1, M 2, M 3, SKW 2, SKW 3, Met 4, K 1, K 2, SKW 4


    Code
    1. The selected upgrades take 0:01:57:09 days. //Gesamtbauzeit.Tage:Stunden:Minuten:Sekunden -> 1 Stunde, 57 Minuten, 09 Sekunden
    2. Last upgrade started after 0:01:52:54 days. //Der letzte Bauauftrag wurde nach 1 Stunde, 52 Minuten, 54 Sekunden gestartet
    3. The required saving time is 0:01:45:36 days. //Summe der Sparphasen
    4. Days lost because a queue was full: 0:00:07:18 days. // Summe der Wartephasen





    Ohne Kollektor ergibt sich eine andere optimale Reihenfolge.


    M 1, SKW 1, M 2, SKW 2, K 1, K 2, M 3, SKW 3, M 4, SKW 4 (eine von zwei Listen von Platz 1)


    Code
    1. The selected upgrades take 0:02:23:32 days.
    2. Last upgrade started after 0:02:19:17 days.
    3. The required saving time is 0:02:12:50 days.
    4. Days lost because a queue was full: 0:00:06:27 days.



    Der Kampf: Amortisationsliste vs B.o.t.


    Viel interessanter ist der Ausbau großer (Miner-)Accounts. Ich nehme hierzu meinen eigenen Account aus Libra (5x Eco 10x Forschung) in idealisierter Form.

    Kollektor, 13 Planeten sind gleich ausgebaut, Met 40, Kris 33, Deut 35, FKW 22, SKW 6, Robo 11, Nani 5, Etech 21, Plasma 16. Kurs 3:2:1, Keine Ressourcen im Account. Planetentemperatur -111°.

    Die Energieversorgung ist überdimensioniert. Dazu gleich mehr.


    Mit dieser Ausgangssituation möchte ich den weiteren Accountausbau planen. Konkret sollen die nächsten sechs Minenstufen gebaut werden. Die naheliegendste Reihenfolge ist der Bau nach Amortisationszeit. Vielfach erfragt, häufig genutzt, lässt sich sich auch einfach berechnen. Die Amortisationszeit gibt an, nach welcher Zeit die Baukosten alleine durch die zusätzliche Produktion wieder produziert wurden. Nach Amortisation wären die nächsten zu bauenden Stufen M 41, D 36, M 42, K 34, D 37, K 35, (M 43, K 36, D 38), also zwei Metstufen, zwei Krisstufen und zwei Deutstufen. Der Ausbau erfolgt wie zu Beginn erwähnt zyklisch auf allen Planeten, also M 41 Planet 1, M 41 Planet 2,..., M 41 P13, D 36 P1 ,... usw


    Nach Simulation benötigt diese Bauliste ohne Kollektor ca 248 Tage zum Fertigstellen un 242,5 Tage zum Starten des letzten Bauauftrags.

    Code
    1. The selected upgrades take 247:22:50:33 days:hours:minutes:seconds.
    2. Last upgrade started after 242:12:10:26 days:hours:minutes:seconds.
    3. The required saving time is 242:12:10:26 days:hours:minutes:seconds.
    4. Days lost because a queue was full: 0:00:00:00 days:hours:minutes:seconds.


    B.o.t. kann diese Bauliste jedoch nicht nur simulieren. Es kann zu den gegebenen Bauaufträgen M 41, D 36, M 42, K 34, D 37, K 35 die optimale Reihenfolge finden. Also die Reihenfolge, die am schnellsten abgearbeitet werden kann.

    Hierbei muss zunächst entschieden werden, welche Zeit optimiert werden soll. Möchte man die Gesamtzeit der Bauliste optimieren? Oder soll das letzte Gebäude auf dem letzten Planeten so früh wie möglich gestartet werden?

    Zur isolierten Betrachtung einer Bauliste ist der erste Fall sinnvoll um die Zeit zu kennen, zu der man sein Ziel erreicht hat.

    Der zweite Fall spiegelt jedoch eher das Spielverhalten wieder. Da OGame ein Endlosspiel ist, kann man immer weiterbauen und hat keine festen Ziele, die erreicht werden müssen.


    Im folgenden wurde immer nach Fall 2 optimiert. Es gibt 90 mögliche Listen, die alle durchgerechnet wurden. Die Amortisationsliste befindet sich auf Platz 53. Die optimale Liste für zwei Upgrades je Minentyp lautet: D 36, D 37, M 41, K 34, M 42, K 35, 


    Code
    1. The selected upgrades take 243:06:24:46 days:hours:minutes:seconds.
    2. Last upgrade started after 237:19:44:39 days:hours:minutes:seconds.
    3. The required saving time is 237:19:44:39 days:hours:minutes:seconds.
    4. Days lost because a queue was full: 0:00:00:00 days:hours:minutes:seconds.


    Die beste Liste erreicht somit eine um vier Tage kürzere Zeit, bis das letzte Gebäude geklickt wird. Das Entspricht ca 2% Zeitersparnis bezogen auf die Klickzeit.


    Die schlechteste Liste ist übrigens K 34, K 35, M 41, M 42, D 36, D37.. Im Vergleich zur optimalen Liste benötigt sie 4% mehr Zeit.

    Code
    1. The selected upgrades take 253:06:06:41 days:hours:minutes:seconds.
    2. Last upgrade started after 247:13:36:03 days:hours:minutes:seconds.
    3. The required saving time is 247:13:36:03 days:hours:minutes:seconds.
    4. Days lost because a queue was full: 0:00:00:00 days:hours:minutes:seconds.

    Kurze Interpretation: Relativ gesehen liegen also alle möglichen Listen sehr nahe zusammen, wobei der absolute Unterschied bis zu 10 Tage betragen kann. Für weiter fortgeschrittene Accounts wird der absolute Unterschied immer größer.

    Das heißt aber nicht, dass der Bau nach Amortisation nun super schlecht ist. Was sind schon 2% in einem Endlosspiel? In der realen Anwendung lassen sich beide Listen sowieso nicht in der angegebenen Zeit abarbeiten. Lager beschränken Produktion und Händler. Flottenunterhalt verbraucht Deut (auch Saven und Zusammenziehen ist nicht Gratis). Die Ressourcen müssen zu den Planeten verschifft werden. Der nächste Klickzeitpunkt wird verpasst (RL, Schlaf,...) . Die Amortisation ist der breiten Spielerschaft geläufig und wird durch Tools unterstützt. Notfalls lässt sich die Amortisations sogar von Hand berechnen.




    Die folgende Tabelle zeigt den Einfluss von Kollektor, Crawlern, und Premium Features( = Unbegrenzter Kommandostab, Unbegrenzte Platinitem)

    auf die Zeiten für Amortisation und Optimale Liste. Die jeweiligen optimalen Baulisten sind für diesen Ausbau identisch.

    In der letzten Zeile ist außerdem noch der GF-Gelddruckmodus+ aufgezeigt, der zusätzlich zu Kollektor, Crawlern und Premium Features alle Bauaufträge mit DM durchklickt. Dazu wurden die Bauzeiten auf 4 Sekunden beschränkt.

    Zum Zwecke dieser Tabelle ist die obige Energieproduktion so gewählt, dass ausreichend Energie für alle Einstellungen vorhanden ist.

    Ohne Crawler läuft das FKW zu Beginn auf 40%. Mit 912 Crawlern (864 zu Beginn aktiv) wird mit FKW 80% gestartet. Der Einfluss von Premiumfeatures auf die Energiegewinnung bleibt bis zur Fertigstellung des ersten Gebäudes je Planet (wodurch die % automatisch angepasst werden) unberücksichtigt (Ich war faul).


    Zusätzlich zu den Zeiten (Last upgrade started) werden die Ressourcen (DSE) im Account 365 Tage nach Beginn der Bauliste angezeigt.


    Kollektor Crawler Premium Dauer Amortisation Dauer Optimal Ress nach 365 Amortisation Ress nach 365 Tage Optimal Ress Opt / Ress Amor



    242:12:10:26 237:19:44:39 11,707,426,897 12,155,212,257 1.0382479740373


    x 162:23:06:25 160:06:15:26 28,576,150,532 28,958,365,820 1.01337532455857

    x
    209:16:46:08 205:16:15:31 17,211,436,702 17,657,144,649 1.02589603382431

    x x 147:03:38:19 144:12:41:17 34,316,785,897 34,730,005,942 1.01204133878506
    x

    195:15:25:51 192:11:47:04 19,920,913,291 20,291,699,040 1.01861288905703
    x
    x 141:04:34:25 138:19:19:49 36,590,233,997 36,980,211,303 1.01065796152143
    x x
    164:06:06:43 161:08:33:58 28,344,877,712 28,754,074,128 1.0144363443779
    x x nur Kommandostab 152:09:01:17 149:15:19:49 32,391,127,094 32,808,141,689 1.01287434653909
    x x x 123:21:07:03 121:15:05:18 45,238,289,561 45,660,697,189 1.00933739166753
    money money money 122:06:00:51 120:00:53:22 45,548,406,861 45,963,744,503 1.0091185986651



    Den Verlauf der Accountproduktionen kann in dieser Grafik eingesehen werden:

    dseverlaufudjzo.png



    Ohne DM lässt sich durch Verwendung von Kollektor und Crawler eine Zeitersparnis von ca 33% erreichen

    Mit Premium erhöht sich der Vorteil auf ca 49%. Ungefähre DM Kosten für mind. 121 Tage:

    5x 1 Woche Kommandostab 212500 DM

    1x 3 Monate Kommandostab 425000 DM

    13x 4 90-Tage Platinbooster 13260000 DM

    13x 4 30-Tage Platinbooster 4862000 DM (Ja, sind insgesamt nur 120 Tage)

    = 18.759.500 DM (o.O Ok, nachdem ich das berechnet habe, habe ich dann doch noch für Kollektor+Crawler mit Premium light = Offiziersstab simuliert... Aber auch nur diese Kombi).


    Mit Durchklicken sind es ca 49,5%. Die zusätzliche DM Kosten belaufen sich auf

    13x 6x 2x 72000 DM = 11.232.000 DM.

    Lohnt sich mMn überhaupt nicht. Die Sparzeit ist offensichtlich der limitierende Faktor bei dieser Liste, nicht die Bauzeit. Man sollte deshalb eher ein Paar Inaktive farmen, um die Sparzeit zu verringern.



    Ob die gewählten 6 Bauaufträge überhaupt die optimale Auswahl an 6 Aufträgen ist, ist ungewiss. Das hängt davon ab, wie nach den sechs Aufträgen weiter ausgebaut wird. Je weiter man in die Zukunft plant, desto besser ist die Auswahl an das zukünftige Ziel angepasst.

    Beispiel:

    die optimale Liste für 3 Met, 3 Kris, 3 Deut Ausbau lautet D 36, D 37, D 38, M 41, K 34, M 42, K 35, M 43, K 35

    die optimale Liste für 4 Met, 4 Kris, 4 Deut Ausbau lautet D 36, D 37, D 38, M 41, K 34, D 39, M 42, K 35, M 43, K 35, M 44, K 36


    Die ersten sechs Aufträge der 4er Liste entsprechen nicht der optimalen Liste zum Ausbau von jeweils 2 Stufen!



    Randnotiz: Kurswechsel.


    Während die Amortisationsliste bei Kurs 2:1:1 unverändert bleibt, ergibt sich mit diesem Kurs eine andere optimale Liste


    Amortisation mit Kurs 2:1:1 , ohne alles: Unveränderte Reihenfolge

    Code
    1. The selected upgrades take 294:17:13:36 days:hours:minutes:seconds.
    2. Last upgrade started after 289:06:33:29 days:hours:minutes:seconds.
    3. The required saving time is 289:06:33:29 days:hours:minutes:seconds.
    4. Days lost because a queue was full: 0:00:00:00 days:hours:minutes:seconds.


    Optimal mit Kurs 2:1:1 , ohne alles : D 36, K 34, M 41, D 37, K 35, M 42

    Code
    1. The selected upgrades take 297:11:12:52 days.
    2. Last upgrade started after 286:16:03:29 days.
    3. The required saving time is 286:16:03:29 days.
    4. Days lost because a queue was full: 0:00:00:00 days.

    Randnotiz Ende


    Kraftwerke,Robo und Forschungen


    Für weitere kleinere Fragestellungen möchte ich bei der 6er Auswahl für Amortisation bleiben. (Kollektor, Crawler, Ohne Premium).

    Für Forschungen werden Labore der Stufe 14 verwendet, die per IGFN 10 zusammengeschaltet sind -> 154 Laborstufen.


    Um für die Zukunft zu planen, muss man sich auch um die Energiegewinnung Gedanken machen. Zum Betreiben von M40, K33, Deut 35, 864 Crawlern reicht bei E-Tech 21 eigentlich ziemlich genau ein FKW 21 auf 100%. (Restenergie ca 200). Somit müsste die Energiegewinnung aufgestockt werden um die neuen Minen und zusätzlichen Crawler zu versorgen. Sollte hierbei E-Tech oder eher FKW ein Upgrade erfahren? Wie passt dieses zwischen den Ausbau der Minen? Werfen wir einfach E-Tech 22 und FKW 22 in die Bauliste und lassen sie optimieren!


    Die optimale Liste zum Ausbau der Minen mit E-Tech und FKW lautet

    D 36, D 37, FKW 22, M 41, K 34, M 42, K 35, E-Tech 22



    Die Crawler werden hierbei als Energiepuffer verwendet um die Zeit bis zur Fertigstellung des FKW zu überbrücken. Es bleibt unbekannt, ob E-Tech 22 tatsächlich direkt auf K 35 folgt, wenn man weiter in die Zukunft schaut. Man kann aber wohl zumindest davon ausgehen, dass es sinnvoll ist, das FKW 22 vor Etech 22 zu bauen.


    • Changed percents from m 100, c 100, d 100, f 100, cr 100 to m 100, c 100, d 100, f 100, cr 90 after construction of Deuterium Synthesizer 36. Production factor: 1->1. Production increased by 3.8481 % DSE
    • Changed percents from m 100, c 100, d 100, f 100, cr 90 to m 100, c 100, d 100, f 90, cr 100 after construction of Fusion Reactor 22. Production factor: 0.983674->1. Production increased by 3.34256 % DSE


    Code
    1. Zeiten(ohne E-Tech)
    2. The selected upgrades take 184:00:26:35 days.
    3. Last upgrade started after 178:13:46:28 days.
    4. The required saving time is 178:13:46:28 days.
    5. Days lost because a queue was full: 0:00:00:00 days.



    Wir kennen nun also die optimale Baureihenfolge für Minen + Energie. Nun möchte man auch noch die Bauzeit verringern um (auch) zukünftige Baulisten zur beschleunigen. Ich entscheide mich hier für Robo 12, 13, 14, ohne Etechforschung:


    Robo 12, Robo 13, D 36, D 37, FKW 22, Robo 14, M 41, K 34, M 42, K 35


    Code
    1. The selected upgrades take 183:06:44:03 days.
    2. Last upgrade started after 178:22:11:57 days.
    3. The required saving time is 177:02:12:27 days.
    4. Days lost because a queue was full: 1:19:59:30 days.


    Die Wartezeit hierbei entsteht, da auf den hinteren Planeten bei Robo 14 noch auf die Fertigstellung von FKW 22 gewartet werden muss. Siehe Grafik: phasenrobo5ckqr.png

    Dadurch wird das letzte Gebäude später geklickt als ohne Robo. Allerdings ist die gesamte Bauliste früher abgearbeitet.

    Simuliert man größere Baulisten, so wird dort auch tatsächlich das letzte Gebäude früher gestartet im Vergleich zu einer Liste ohne Robo!



    Natürlich kann auch die Plasmatechnik berücksichtigt werden -> 6 Minenstufen, FKW 22, Plasma 17


    Die optimale Liste lautet D 36, Plasma 17, D 37, FKW 22, M 41, K 34, M 42, K 35.


    Code
    1. The selected upgrades take 185:13:01:46 days.
    2. Last upgrade started after 180:02:21:39 days.
    3. The required saving time is 180:02:21:39 days.
    4. Days lost because a queue was full: 0:00:00:00 days.


    Problemkind Astrophysik:

    Prinzipiell lässt sich auch die Astrophysik simulieren. Eine optimale Liste lässt sich jedoch nicht berechnen. Hierfür wäre es notwendig die optimale Liste zu kennen, mit welcher der neue Planet auf den aktuellen Schnitt hochgezogen wird. Diese Liste liegt schlicht nicht vor.



    B.o.t. im Fleetermodus


    Es ist möglich anzugeben, wie viele Ressourcen pro Tag pro (Expo-)Slot eingenommen werden (die Angabe ist konstant während der Simulation). Hierfür werden von der verfügbaren Slotanzahl des Accounts eine beliebige Anzahl Saveslots abgezogen. Von der verbliebenen Slots werden soviele, wie es der Account hergibt, für Expos genutzt. Der Rest sind Farmslots. (TF Abbau kann durch herunterskalieren der Farmerträge einbezogen werden.)


    Als Grundlage der letzten Simulation für heute wähle ich ein Setting aus dem Vergleich zwischen optimaler Liste und Amortisationsliste. Kollektor, Crawler, kein Premium.

    Im Endeffekt ist es völlig egal, wie sich die Ress auf Expos und Farmen aufteilen oder wie viele Ress es genau sind. In jedem Fall lässt sich durch zusätzliche Einnahmen die Abarbeitung der Liste (erheblich) beschleunigen. Je mehr Ress da sind, desto besser.




    Tägliche Gesamteinnahmen Dauer Optimal
    Keine Einnahmen 161:08:33:58
    1M,400K,100K 160:13:19:04
    10M, 4M, 1M 153:16:21:49
    100M, 40M, 10M 107:15:56:59



    Abschließende Worte


    Danke für die Aufmerksamkeit. Alle fehlerhaften Angaben gehen auf meine Kappe.


    B.o.t. ist als Accountsimulator auf Github zu finden. Ich gebe keinen Support dafür. Läuft unter Linux, und mit WSL unter Windows 10. Warnung: Der Brute-Force Optimierungsmodus kann bereits für Listen mit nur 8 Einträgen ein richtiger Zeitfresser sein, selbst multi-threaded. Die Anzahl an Kombinationen explodiert einfach.

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von Dark Sky ()

  • Krass.


    Jetzt brauchen wir also nur noch jemanden mit zugriff auf einen Supercomputer um das Thema nach 20 Jahren endlich abschließen zu können.


    Was denkst du wie lange "Summit" wohl beschäftigt wäre um die liste bis 150 Minenstufen inklusive Robo/Nani und Energieversorgung aus zu spucken?

  • Was denkst du wie lange "Summit" wohl beschäftigt wäre um die liste bis 150 Minenstufen inklusive Robo/Nani und Energieversorgung aus zu spucken?


    Die Frage ist zuerst, ob es sinnvoll ist, seine Ausbaustrategie tatsächlich für so viele Schritte ausrechnen zu lassen. Dadurch optimiert man den Acc nämlich auf einen immer ferner in der Zukunft liegenden Zeitpunkt hin. Der tatsächliche Ausbau findet aber immer mit den aktuell verfügbaren und nicht mit den zukünftigen Ressourcen statt. Man sieht es schon daran, dass der Ausbau nach Amortisation (der fernste berechnete Zeitpunkt überhaupt), nicht der beste sein muss. Es freut mich, dass diese Erkenntnis aus meinem alten (leider inzwischen unrettbar verlorenen) Anti-Amortisationsthread auch unter den aktuellen Bedingungen ihre Gültigkeit behält.


    Auch die Betrachtung der kürzeren Baulisten mit 2, 3 und 4 Minenstufen zeigt schon, dass es hier Unterschiede bei der optimalen Bauliste gibt. Allerdings sehe ich hier das Problem (auch) bei der Ausgangssituation. Für den verwendeten Kurs sind die Deutsynthis eindeutig um 2 Stufen zu klein. Es ist also nicht überraschend, dass diese laut B.o.t. bevorzugt ausgebaut werden sollen. Das wirft die bereits angesprochene Frage auf:


    Ob die gewählten 6 Bauaufträge überhaupt die optimale Auswahl an 6 Aufträgen ist, ist ungewiss.


    B.o.t. kann einem die strategisch richtige Auswahl an Bauprojekten aufgrund der viel zu hohen Anzahl berechenbarer Wege nicht abnehmen. Meiner Meinung nach müsste eigentlich die erste Bauliste bei einem Schnitt von 40/33/35 daher aus diesen Elementen bestehen: M41, M42, K34, K35, D36, D37, D38, D39. Vielleicht ist es auch sinnvoller, die weitere Optimierung erst mit einem Schnitt von 40/33/37 zu beginnen.


    Interessant wäre es auch, die Optimierung nach jeweils 3 gebauten Einheiten zu wiederholen, um zu überprüfen, ob die ursprüngliche Auswahl überhaupt gepasst hat. Bei der 4 Stufen Bauliste...


    D 36, D 37, D 38, M 41, K 34, D 39, M 42, K 35, M 43, K 35, M 44, K 36


    ...sieht man sehr deutlich, dass was mit der ursprünglichen Auswahl an Deutsynthis nicht stimmt. Bei einem fixen Kurs müssen nämlich Met und Deut sich immer abwechseln.


    Dark Sky könntest Du diese Szenarien bitte mal durchspielen, damit man sieht, ob ich mit den Überlegungen auf dem Holzweg bin oder nicht? Ich entschuldige mich auch gleich mal dafür, dass ich das nicht vorher geschnallt habe.


    kfg

    Expos ab 5.7.5
    DM 300-400 500-700 1000-1800

    Code
    1. #1 ExpoP GT KT Metall (k) Flotten (k Struk)
    2. 5M 12k 200 600 120- 600-1200-2400 60-300- 600-1200
    3. 25M 15k 250 750 150- 750-1500-3000 75-375- 750-1500
    4. 50M 18k 300 900 180- 900-1800-3600 90-450- 900-1800
    5. 75M 21k 350 1050 210-1050-2100-4200 105-525-1050-2100
    6. 100M 25k 417 1250 250-1250-2500-5000 125-625-1250-2500

    Dieser Beitrag wurde bereits 2 Mal editiert, zuletzt von kfg ()

  • B.o.t. sagt einem ja nicht was ein sinvolles Ziel ist sondern wie man ein selbst definiertes Ziel möglichst schnell erreicht.Von daher macht eine möglichst lange Liste durchaus Sinn.Ich würde jetzt erwarten daß sich bei 2 sehr langen Listen mit unterschiedlichem Ziel die frühen Stufen nicht unterscheiden.Wenn ich mir dann eine liste für 150-200 Minenstufen berechnen lasse sollte ich das Sinvolle Ziel für realistische 120-130 Stufen ausgegeben bekommen.Vermutlich müsste man nur Robo und Nani im Auge behalten.Da könnte ich mir vorstellen daß die für eine lange Liste zu früh/hoch Ausgebaut werden.

  • Andererseits ist Robo/Nani kritisch.Wenn sich der Ausbau in einer langen Liste rechnet ändern sich die Bauzeiten und damit die Einnahmen.Das ist nicht so viel in Relation zur Gesamtproduktion könnte aber über Schmetterlingseffekte die ganze Liste durcheinander bringen.


    Ich glaube über die Fragestellung könnte man eine ganze Doktorarbeit schreiben.Und im Prinzip ist das ja das aus der Mathematik bekante " Problem des Handlungsreisenden". Wer da eine Praktikable lösung für eine lange Liste findet könnte sogar mit Post aus Stockholm rechnen.

  • schicke Sache Jungs, interesante Überlegungen!


    • gibts das ganze schon als Tool vorgestellt bzw wo auf github findet man das Repo um es mal selber austesten zu können? :)
    • können theoretisch auch von Planet zu Planet abweichende Ausgangssituationen in die Simulation einfließen?

    Prinzipiell lässt sich auch die Astrophysik simulieren. Eine optimale Liste lässt sich jedoch nicht berechnen. Hierfür wäre es notwendig die optimale Liste zu kennen, mit welcher der neue Planet auf den aktuellen Schnitt hochgezogen wird. Diese Liste liegt schlicht nicht vor.

    • Warum liegt diese Liste nicht vor, die Rechenzeit wäre zu hoch? Kannst du ein paar Stichdaten nennen, wie lange das Program auf durchschnittlicher Hardware für die Listen gerechnet hat?


    - Zur Verringerung der Programmlaufzeiten werden für Simulationen in diesem Thread die Prozente nur zwischen 70% und 100% ausprobiert.

    • Was ist damit gemeint? Simulation verschiedener Versorgungseinstellungen?

    Nochmal: wirklich :good:

  • DM booster funde events etc. sind auch zu beachten. ausserdem sobald ein update kommt ist die ganze liste wieder hinfällig. setzt eure zeit doch für was anderes ein. ich war immer top1 mit einem ausbau nach gesundem menschenverstand und intuition. die zeit setzt man besser zum farmen ein, da kommt mehr bei raus.

  • Kurz zu Summit Benuntei_Ger .

    Laut Wikipedia stehen für Deep Learning 3,3 * 10^18 Rechenoperationen pro Sekunde zur Verfügung. Nehmen wir mal an, das wären Baulisten Pro Sekunde.

    Du hast bereits Travelling Salesman angesprochen. In unserem Fall ist die Anzahl an zu testenden Kombinationen für eine Liste der Länge n zwar geringer, da man alle doppelten Listen nur einmal berechnen muss. Die Anzahl bleibt trotzdem unvorstellbar groß.

    Beispiel: Liste mit 81 Einträgen, um von 0 auf M 30, K 26, D 25 zu kommen. Anzahl zu testender Kombinationen: 81! / (30! * 26! * 25!) . Mit obiger Rechenleistung bräuchte man ca 36 Milliarden Jahre zur Berechnung. (https://www.wolframalpha.com/i…F+60+%2F+60+%2F+24+%2F365)


    Auf den Rest kann ich erst am Wochenende eingehen.

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von Dark Sky ()

  • Ich glaube über die Fragestellung könnte man eine ganze Doktorarbeit schreiben.Und im Prinzip ist das ja das aus der Mathematik bekante " Problem des Handlungsreisenden". Wer da eine Praktikable lösung für eine lange Liste findet könnte sogar mit Post aus Stockholm rechnen.

    eher aus berlin (fields-medaille) oder oslo (abelpreis) ;) jedenfalls gäbe es 1 millionen dollar für das lösen eines der millenium-probleme.


    respekt für die mühe dark sky, sehr interessant. theoretisch müsste man ja auch überschlagen/testen können, wieviele elemente in noch akzeptabler zeit berechenbar sind. davon ausgehend kann man sich einen möglichst langfristigen plan bauen und den auch nach jeder ausbaustufe aktualisieren.


    wie kfg schon anmerkte, ist die auswahl der zu berücksichtigenden elemente besonders in kurzen listen zentral. wenn meine deut immer hinterherhinken, dann ändert sich die reihenfolge bei einer stufe tiefer naturgemäß richtung früheren deutausbaus. auch zu dem zeitpunkt unsinnige gebäude werden, wenn vorgegeben, berücksichtigt und es ist nicht klar, ob sie automatisch an das ende der liste gesetzt werden (bsp robos). es wird nicht der ertrag maximiert, sondern die bauzeit minimiert (auch wenn das meist das gleiche ist).

    Uni 41 [Morti] Shukov #1
    Uni 64 ]obSeSSed[ Shukov #1
    Uni 69 [7daYs] Shukov #1
    Cygnus [Fugazi] Tscheb #1

    Oberon [Fugazi] Tscheb #1


    #5 win ogw

  • eher aus berlin (fields-medaille) oder oslo (abelpreis) ;)

    Da bin ich auf der Rundreise wohl einmal falsch abgebogen ^^


    Was die Zielvorgabe angeht.Spätestens nach Dark Skys letzten Posting sollte klar sein daß es nie eine umfassende Simulation eines Relevanten Acc geben wird und das Ergebnis einer betrachtung von wenigen Schritten stark von der Zielvorgabe abhängt.Würde sich etwas ändern wenn man B.o.t. selber das Ziel wählen lassen würde?Man also nicht fragt wie komme ich von diesem Acc am schnellsten zu jenen Gebäuden/Forschungen sondern das ist der Ausgangspunkt,diese Gebäude/Forschungen darfst du nutzen zeig mir den Weg wie ich am schnellsten zu xxx Punkten komme.


    Problematisch wären hier Forschungen die zu lange dauern wenn sie nicht durchgeklickt werden und daß B.o.t. (am ende der Liste ? ) Sinnlose Schritte gehen würde nur um möglichst dicht an die geforderte Punktgrenze zu kommen.

  • JB0urne

    Das Tool ist lediglich Mittel zum Zweck um Ergebnisse zu liefern. Folglich gibt es keinen extra Vorstellungsthread.

    Projektseite: https://github.com/darksky1605/accountsimulator


    Ja, man kann auch unterschiedlich bebaute Planeten verwenden. Optimieren wird dabei allerdings schwer, da die Anzahl an Baukombinationen natürlich steigt. (Man kann entweder angeben "auf jedem Plani eine Stufe Metmine bauen", oder "Auf Planeten xyz eine Stufe Met bauen". Wenn alles gleich ausgebaut ist, kann man ersteres verwenden, was nur 1 Eintrag in der Bauliste ist)


    Laufzeiten mit 6 Kernen / 12 Threads:

    2 met, 2 kris, 2 deut 90 Kombinationen, 0,31 s

    3 met, 3 kris, 3 deut 1680 Kombinationen, 7,91 s

    4 met, 4 kris, 4 deut 34650 Kombinationen 218,09 s


    Baulisten mit 20 Einträgen sind übrigens das theoretische Maximum, dass zur Zeit optimiert werden kann. ( 21! kann nicht in 64-bit Zahl gespeichert werden )


    Mit dem Testen von Prozenten sind die Versorgungseinstellungen gemeint. Nach jedem Gebäude oder Forschung, dass potenziell die Produktion des Accounts verändern kann, werden durch Ausprobieren die besten Prozente bestimmt (höchste DSE Produktion).



    kfg


    Jeweils mit Plasma 16 (jaja zu wenig) 4 Stufen Met Kris Deut simuliert, die ersten drei Einträge der optimalen Liste gebaut und die Simulation neu gestartet.


    Start mit 40,33,35 . 864 crawler fkw 23 50%, etech 23 collector


    D36, D37, D38, M41, K34, D39, M42, K35, M43, K36, M44, K37


    Start mit 40,33,38 . 888 crawler fkw 23 50%, etech 23 collector


    ---------------------M41, K34, D39, M42, K35, D40, M43, K36, D41, M44, K37, D42


    Start mit 41,34,39 . 912 crawler fkw 23 50%, etech 23 collector


    -------------------------------------------M42, K35, D40, M43, K36, D41, M44, D42, K37, M45, K38, D43


    Start mit 42,35,40 . 936 crawler fkw 23 60%, etech 23 collector


    -----------------------------------------------------------------M43, K36, D41, M44, D42, K37, M45, D43, M46, K38, K39, D44


    Start mit 43,36,41 . 960 crawler fkw 23 60%, etech 23 collector


    ---------------------------------------------------------------------------------------M44, D42, K37, M45, D43, M46, K38, D44, M47, K39, K40, D45



    Benuntei_Ger


    Tatsächlich habe ich mir bereits viele Gedanken zu der Bestimmung der optimalen Auswahl gemacht. Parallel zu diesem Simulator hatte ich deshalb auch einen anderen Ansatz ausprobiert, mit dem ich allerdings aus unbekannten Gründen (Bugs, eklige Programmierung,...) nie sinnvolle Ergebnisse erhalten habe.


    Die zugrundeliegende Idee ist es, den Ausbau als Lösung einer Rekurrenzgleichung aufzufassen.

    Das kann man sich wie eine große mehrdimensionale Matrix vorstellen, bei der der Ursprung [0,0,...,0] den aktuelle Accountzustand beschreibt, und die Zelle [x,y,z,...] den Account nach Ausbau von x Stufen Gebäude A, y Stufen Gebäude B,... . Die optimale Bauliste entspricht dann dem "kürzesten" Weg zwischen Ursprung und Zielvorgabe. (Anzahl zu testender Baulisten == Anzahl möglicher Wege). Die Länge eines Weges ist die benötigte Ingamezeit, um das Ziel zu erreichen (oder zu klicken).


    Mit dieser Beschreibung sollte dann klar werden, wie die optimale Auswahl von K Bauoperationen bestimmt werden kann. Diese entspricht dem "kürzesten" Weg mit K Schritten vom Ursprung aus. Man muss dazu das Minimum aus allen Zellen bestimmen, deren Summe der Koordinateneinträgen K ergibt. (Im zweidimensionalen Raum entspricht das dem Minimum auf der K-ten Diagonale, im n-Dimensionalen Raum einer Hyperebene mit Manhattandistanz K zum Ursprung. Im allgemeinen Fall ist es dann auch schon eine Herausforderung, überhaupt die in Frage kommenden Zellen zu berechnen :))


    Hier mal ein Bild als Beispiel mit Met/Kris Ausbau zur Veranschaulichung.

    https://abload.de/img/slide2zfkze.jpg

  • bekommt man dann nicht viele günstige gebäude/forschungen am ende, egal wie sinnvoll die sind? ich glaub um eine zielvorgabe kommt man nicht wirklich herum.


    e: es darf jedenfalls nicht nach anzahl gebäuden optimiert werden. man sollte bei fester zeit nach gesamtress (verbaut und nicht verbaut) optimieren

    Uni 41 [Morti] Shukov #1
    Uni 64 ]obSeSSed[ Shukov #1
    Uni 69 [7daYs] Shukov #1
    Cygnus [Fugazi] Tscheb #1

    Oberon [Fugazi] Tscheb #1


    #5 win ogw

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von zhukov ()

  • Gut aufgepasst! "Zeit" war nun am leichtesten zu erklären. Tatsächlich ist es wohl das schwierigste an diesem Ansatz zu bestimmen, wie entschieden werden soll, welche von zwei Zellen die bessere ist. Nimmt man Produktion pro vergangener Zeit? Oder vergangene Zeit?Oder Produktion pro investierter Ress? Oder Produktion? Oder...

  • die wahl ist wirklich schwieriger als sie erstmal scheint. ich vermute ja suboptimale entscheidungen am ende eines algorithmus lassen sich gar nicht verhindern. vielleicht kann und sollte nur ziel sein möglichst viele effiziente schritte zu gehen. das problem der rechenzeit bleibt aber bestehen. eine große tiefe wird man mit der rekursion nicht erreichen können.

    Uni 41 [Morti] Shukov #1
    Uni 64 ]obSeSSed[ Shukov #1
    Uni 69 [7daYs] Shukov #1
    Cygnus [Fugazi] Tscheb #1

    Oberon [Fugazi] Tscheb #1


    #5 win ogw


  • Für den Moment scheint mir das iterative Herantasten am zielführendsten zu sein. Wenn man die letzten beiden Listen heranzieht, sieht man, dass die Auswahl stur nach M(n+1), K(n+1), D(n+1) suboptimal wird, denn wenn man zwei K hintereinander bauen soll, läuft irgendetwas falsch. Aus der Kombination M43, K36, D41, M44, D42, K37, M45, D43, M46, ... ergibt sich, dass die 1,6fache Baukostensteigerung dafür sorgt, dass man eine Stufe K auslassen muss. Dies muss zwingend bei der Auswahl der nachfolgenden Minenstufen berücksichtigt werden.


    Ich vermute, dass die Berücksichtigung der korrekten Plasmatechstufen (17, 18, 19) die Reihenfolge der zu bauenden Minen ändern würde, da ja die M bevorteilt und die D benachteiligt werden. Sogar Astro 24/25 spielt in diesem Bereich eine Rolle.


    Mit anderen Worten, B.o.t. ist ein sehr wertvolles Werkzeug für die praktische Vorgangsweise beim Accaufbau, aber die Frage, was es sinnvollerweise optimieren soll, muss nach wie vor der User beantworten. Man sieht aber aus dem Beispiel sehr deutlich, dass B.o.t. einem Probleme aufzeigen kann, wenn man die Signale richtig zu lesen weiß. Darüberhinaus wird deutlich, dass man bei zu simplen Modellen (zB nur Minenausbau) leicht den tatsächlich "optimalen" Weg verfehlt. Man muss daher neben den Minen immer auch Crawler, Items, Offis, Forschungen, Energie und Anlagen im Auge behalten.


    Das führt uns zurück auf die eingangs gestellte Frage:


    Ob die gewählten 6 Bauaufträge überhaupt die optimale Auswahl an 6 Aufträgen ist, ist ungewiss.


    Selbst wenn man diese Frage für sich geklärt haben sollte, muss man sich immer noch dessen bewusst sein, dass ein Acc aus viel mehr besteht als nur den hier angegebenen Einheiten. Für einen neuen Plani braucht man normalerweise auch eine weitere Stufe Comptech, manchmal auch zwei, wenn ein zusätzlicher Exposlot freigeschaltet wird. Labore und IGFN müssen erweitert sowie Lager und Flotte aufgestockt werden. Wo also zieht man die Grenze bei den Vereinfachungen? Wichtige Fragen, aber diese sprengen - zugegeben - den Rahmen dieses Themas.


    kfg

    Expos ab 5.7.5
    DM 300-400 500-700 1000-1800

    Code
    1. #1 ExpoP GT KT Metall (k) Flotten (k Struk)
    2. 5M 12k 200 600 120- 600-1200-2400 60-300- 600-1200
    3. 25M 15k 250 750 150- 750-1500-3000 75-375- 750-1500
    4. 50M 18k 300 900 180- 900-1800-3600 90-450- 900-1800
    5. 75M 21k 350 1050 210-1050-2100-4200 105-525-1050-2100
    6. 100M 25k 417 1250 250-1250-2500-5000 125-625-1250-2500
  • Vermutlich müsste man nur Robo und Nani im Auge behalten.Da könnte ich mir vorstellen daß die für eine lange Liste zu früh/hoch Ausgebaut werden.

    Nur, dass du im 6xSpeed Uni mit Nani 6 LJ im Sekundentakt bauen kannst, GTs ab Nani 7, welche sich, vor allem in der Anfangszeit, extrem gut im MP zu Ress umwandeln lassen.


    Jeder Planet mit Nani 6 erzeugt dabei einen Reingewinn von 1,8M Met und 300K Kris pro Stunde, mit GTs und 7er Nani ~800k Met/Kris

    Bei 10 Planeten, was jetzt nicht sonderlich viel ist, wären das 18M Metall/3M Kris. So hoch kannst die Minen garnicht ausbauen, dass die auch nur Ansatzweise diese Werte liefern.


    Ergo ist mMn. alles bis Nani 7, auch im richtigen early Game, absolut Sinnvoll.

    Als nicht-Entdecker ist das sicher schwerer zu realisieren, aber ich hab z.b. vor 2 Wochen in einem Uni angefangen und baue gerade 9x Nani 6 aus (HP hat die schon auf 7), bei aktuell knapp 1.2M Punkten und noch ~500M Ress in GTs.

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von Nirmala ()

  • Ein Ansatz für die Zielauswahl könnte auch die Energieversorgung bieten.Liefert man die Energie für die Minen mit Fussi könnte man die so Wählen daß die Energie möglichst gut ausgenutzt wird.Also auf eine Deutmine verzichten wenn man dafür eine Met und eine Kris versorgen kann oder die Krismine die nur die hälfte der Restenergie braucht zurückstellen und stattdessen eine Deut bauen die die ganze Energie ausschöpft.


    Gerade im Lategame wo es Jahre dauern kann bis die nächste Runde Fussi fällig wird kann das ausreizen der verfügbaren Energie einen ähnlichen Produktionsvorteil bedeuten wie die Optimierung der Bauliste.