Hoi Tweakers.
Recent heb ik het bordspel Push Fight leren kennen. Het is een abstract bordspel voor twee spelers waarbij het doel is om een stuk van je tegenstander van het bord te duwen. Het bord is klein genoeg dat het praktisch mogelijk is om het hele spel door te rekenen.
Ik probeer nu voor elke mogelijke positie kan bepalen wie wint (en hoe). Voor zover ik weet is dit nog nooit door iemand gedaan. Hiervoor is een redelijke hoeveelheid rekenkracht nodig, en ik ben benieuwd of iemand me wil helpen bij het doorrekenen?
Ik heb al een plan hoe ik alles kan doorrekenen. Het begint met een eerste fase, waarbij voor alle 401,567,166,000 mogelijke stellingen wordt berekend of er een winnende zet is, of niet. In latere fases moet dat uitgebreid worden naar stellingen die te winnen zijn in 2 of meer zetten. Ik heb al een solver geschreven voor de eerste fase (broncode op Github).
De eerste fase (fase 0) bestaat uit 7429 chunks die elk een uitvoerbestand van 6.8 MB opleveren. Het duurt ongeveer 1 minuut per chunk (met een quad core CPU) waardoor het voor mij ongeveer 6 dagen zou duren om deze fase te voltooien. Dit proces kan makkelijk gedistribueerd worden. Vandaar dat ik op zoek ben naar mensen die een deel van de uitvoer willen berekenen en het resultaat naar mij willen uploaden.
edit: Inmiddels zijn we een paar fasen verder. Scroll naar de bodem van het topic voor de huidige stand van zaken!
Wat heb je nodig?
Door van alle stellingen de uitkomst te berekenen kunnen we de optimale strategie berekenen voor beide spelers. Ook kunnen we b.v. berekenen of speler 1 of speler 2 winst kan afdwingen, of dat het spel in remise eindigt (bij optimaal spel van beide spelers).
Heeft het ook nog enig maatschappelijk nut?
Nee.
Heeft iemand zin om te helpen?
Samenvatting van de resultaten tot nu toe:
Recent heb ik het bordspel Push Fight leren kennen. Het is een abstract bordspel voor twee spelers waarbij het doel is om een stuk van je tegenstander van het bord te duwen. Het bord is klein genoeg dat het praktisch mogelijk is om het hele spel door te rekenen.
Ik probeer nu voor elke mogelijke positie kan bepalen wie wint (en hoe). Voor zover ik weet is dit nog nooit door iemand gedaan. Hiervoor is een redelijke hoeveelheid rekenkracht nodig, en ik ben benieuwd of iemand me wil helpen bij het doorrekenen?
Ik heb al een plan hoe ik alles kan doorrekenen. Het begint met een eerste fase, waarbij voor alle 401,567,166,000 mogelijke stellingen wordt berekend of er een winnende zet is, of niet. In latere fases moet dat uitgebreid worden naar stellingen die te winnen zijn in 2 of meer zetten. Ik heb al een solver geschreven voor de eerste fase (broncode op Github).
De eerste fase (fase 0) bestaat uit 7429 chunks die elk een uitvoerbestand van 6.8 MB opleveren. Het duurt ongeveer 1 minuut per chunk (met een quad core CPU) waardoor het voor mij ongeveer 6 dagen zou duren om deze fase te voltooien. Dit proces kan makkelijk gedistribueerd worden. Vandaar dat ik op zoek ben naar mensen die een deel van de uitvoer willen berekenen en het resultaat naar mij willen uploaden.
edit: Inmiddels zijn we een paar fasen verder. Scroll naar de bodem van het topic voor de huidige stand van zaken!
Wat heb je nodig?
- Een beetje moderne PC (ik gebruik een quad core Intel CPU). Een redelijk hoeveelheid RAM helpt (denk: minimaal 8GB, idealiter minstens 16 GiB).
- Linux of Windows als OS (ik ontwikkel op Linux, maar ik compileer de solver ook voor Windows)
- Genoeg bandbreedte om invoer bestanden te downloaden (~3 GB per fase, gecomprimeerd) en de resultaten te uploaden (ongeveer 2.5 MB per chunk, gecomprimeerd).
- Genoeg schijfruimte om de invoer en uitvoerbestanden op te slaan (100-200 GB).
Door van alle stellingen de uitkomst te berekenen kunnen we de optimale strategie berekenen voor beide spelers. Ook kunnen we b.v. berekenen of speler 1 of speler 2 winst kan afdwingen, of dat het spel in remise eindigt (bij optimaal spel van beide spelers).
Heeft het ook nog enig maatschappelijk nut?
Nee.
Heeft iemand zin om te helpen?
Samenvatting van de resultaten tot nu toe:
Fase | Onbepaald | Verloren | Gewonnen | Nieuw verloren | Nieuw gewonnen |
---|---|---|---|---|---|
-1 | 401.567.165.352 | 648 | 0 | 648 | 0 |
0 | 60.779.916.660 | 648 | 340.787.248.692 | 0 | 340.787.248.692 |
1 | 54.546.852.886 | 6.233.064.422 | 340.787.248.692 | 6.233.063.774 | 0 |
2 | 37.780.557.416 | 6.233.064.422 | 357.553.544.162 | 0 | 16.766.295.470 |
3 | 34.837.304.642 | 9.176.317.196 | 357.553.544.162 | 2.943.252.774 | 0 |
4 | 29.666.435.732 | 9.176.317.196 | 362.724.413.072 | 0 | 5.170.868.910 |
5 | 27.888.385.386 | 10.954.367.542 | 362.724.413.072 | 1.778.050.346 | 0 |
6 | 25.632.393.438 | 10.954.367.542 | 364.980.405.020 | 0 | 2.255.991.948 |
7 | 24.512.388.568 | 12.074.372.412 | 364.980.405.020 | 1.120.004.905 | 0 |
8 | 23.255.798.284 | 12.074.372.412 | 366.236.995.304 | 0 | 1.256.590.284 |
10 | 21.713.847.582 | 12.816.540.474 | 367.036.777.944 | 742.168.062 | 799.782.640 |
12 | 20.639.324.942 | 13.339.114.688 | 367.588.726.370 | 522.574.214 | 551.948.426 |
14 | 19.793.983.428 | 13.759.271.414 | 368.013.911.158 | 420.156.726 | 425.184.788 |
16 | 19.039.824.268 | 14.149.521.144 | 368.377.820.588 | 390.249.730 | 363.909.430 |
18 | 18.434.317.480 | 14.461.603.082 | 368.671.245.438 | 312.081.938 | 293.424.850 |
20 | 17.998.132.092 | 14.685.061.622 | 368.883.972.286 | 223.458.540 | 212.726.848 |
22 | 17.699.545.846 | 14.831.345.732 | 369.036.274.422 | 146.284.110 | 152.302.136 |
24 | 17.474.516.838 | 14.942.516.496 | 369.150.132.666 | 111.170.764 | 113.858.244 |
26 | 17.310.522.604 | 15.022.875.636 | 369.233.767.760 | 80.359.140 | 83.635.094 |
28 | 17.185.509.474 | 15.083.910.952 | 369.297.745.574 | 61.035.316 | 63.977.814 |
30 | 17.081.557.558 | 15.137.192.422 | 369.348.416.020 | 53.281.470 | 50.670.446 |
32 | 16.991.731.644 | 15.180.817.806 | 369.394.616.550 | 43.625.384 | 46.200.530 |
34 | 16.916.463.452 | 15.217.757.052 | 369.432.945.496 | 36.939.246 | 38.328.946 |
36 | 16.851.338.398 | 15.253.531.202 | 369.462.296.400 | 35.774.150 | 29.350.904 |
38 | 16.802.533.774 | 15.277.462.920 | 369.487.169.306 | 23.931.718 | 24.872.906 |
40 | 16.750.077.176 | 15.301.255.914 | 369.515.832.910 | 23.792.994 | 28.663.604 |
42 | 16.701.027.140 | 15.327.096.436 | 369.539.042.424 | 25.840.522 | 23.209.514 |
44 | 16.663.048.812 | 15.345.782.968 | 369.558.334.220 | 18.686.532 | 19.291.796 |
46 | 16.625.288.850 | 15.364.843.234 | 369.577.033.916 | 19.060.266 | 18.699.696 |
48 | 16.586.488.724 | 15.385.369.328 | 369.595.307.948 | 20.526.094 | 18.274.032 |
50 | 16.546.438.186 | 15.408.160.720 | 369.612.567.094 | 22.791.392 | 17.259.146 |
52 | 16.526.520.448 | 15.418.450.462 | 369.622.195.090 | 10.289.742 | 9.627.996 |
54 | 16.510.605.646 | 15.427.042.426 | 369.629.517.928 | 8.591.964 | 7.322.838 |
56 | 16.500.941.464 | 15.431.805.464 | 369.634.419.072 | 4.763.038 | 4.901.144 |
58 | 16.492.304.068 | 15.435.860.504 | 369.639.001.428 | 4.055.040 | 4.582.356 |
60 | 16.482.863.948 | 15.441.092.770 | 369.643.209.282 | 5.232.266 | 4.207.854 |
62 | 16.475.337.704 | 15.445.519.518 | 369.646.308.778 | 4.426.748 | 3.099.496 |
64 | 16.471.705.988 | 15.447.854.422 | 369.647.605.590 | 2.334.904 | 1.296.812 |
66 | 16.469.560.908 | 15.448.833.876 | 369.648.771.216 | 979.454 | 1.165.626 |
68 | 16.467.411.440 | 15.450.226.486 | 369.649.528.074 | 1.392.610 | 756.858 |
70 | 16.465.715.126 | 15.451.132.328 | 369.650.318.546 | 905.842 | 790.472 |
72 | 16.465.146.904 | 15.451.480.676 | 369.650.538.420 | 348.348 | 219.874 |
74 | 16.464.611.746 | 15.451.599.994 | 369.650.954.260 | 119.318 | 415.840 |
76 | 16.462.008.820 | 15.452.880.740 | 369.652.276.440 | 1.280.746 | 1.322.180 |
78 | 16.455.661.852 | 15.455.949.448 | 369.655.554.700 | 3.068.708 | 3.278.260 |
80 | 16.449.556.976 | 15.459.110.592 | 369.658.498.432 | 3.161.144 | 2.943.732 |
82 | 16.444.816.482 | 15.462.601.346 | 369.659.748.172 | 3.490.754 | 1.249.740 |
84 | 16.443.306.216 | 15.463.551.602 | 369.660.308.182 | 950.256 | 560.010 |
86 | 16.442.726.646 | 15.463.824.106 | 369.660.615.248 | 272.504 | 307.066 |
88 | 16.442.564.530 | 15.463.913.276 | 369.660.688.194 | 89.170 | 72.946 |
90 | 16.442.524.222 | 15.463.935.024 | 369.660.706.754 | 21.748 | 18.560 |
92 | 16.442.485.622 | 15.463.946.068 | 369.660.734.310 | 11.044 | 27.556 |
94 | 16.442.467.882 | 15.463.954.238 | 369.660.743.880 | 8.170 | 9.570 |
96 | 16.442.465.774 | 15.463.956.176 | 369.660.744.050 | 1.938 | 170 |
98 | 16.442.465.774 | 15.463.956.176 | 369.660.744.050 | 0 | 0 |
[ Voor 113% gewijzigd door Soultaker op 28-06-2022 18:01 ]