commit e571bfeca645df0c2d49e5d9228f426daebaa108
parent 299b5a4459a9366c99ce7a4ed5076797d91971ea
Author: dracuxan <[email protected]>
Date: Mon, 20 Apr 2026 11:13:53 +0530
new: tetris player
Diffstat:
5 files changed, 53 insertions(+), 756 deletions(-)
diff --git a/genetic/.gitignore b/genetic/.gitignore
@@ -23,3 +23,5 @@ genetic-*.tar
/tmp/
.codex
+
+games/
diff --git a/genetic/lib/genetic.ex b/genetic/lib/genetic.ex
@@ -20,7 +20,7 @@ defmodule Genetic do
|> Enum.map(fn chromosome ->
fitness = fitness_function.(chromosome)
age = 1
- %Chromosome{chromosome | fitness: fitness, age: age}
+ %Chromosome{genes: chromosome.genes, fitness: fitness, age: age}
end)
|> Enum.sort_by(& &1.fitness, :desc)
end
diff --git a/genetic/lib/toolbox/selection.ex b/genetic/lib/toolbox/selection.ex
@@ -1,4 +1,5 @@
defmodule Toolbox.Selection do
+ @dialyzer :no_opaque
def elite(population, n) do
population
|> Enum.take(n)
diff --git a/genetic/scripts/tetris.exs b/genetic/scripts/tetris.exs
@@ -0,0 +1,49 @@
+defmodule TetrisInterface do
+ use Agent
+
+ def start_link(path_to_tetris_rom) do
+ int = Alex.new()
+
+ game =
+ int
+ |> Alex.set_option(:display_screen, true)
+ |> Alex.set_option(:sound, true)
+ |> Alex.set_option(:random_seed, 123)
+ |> Alex.load(path_to_tetris_rom)
+
+ Agent.start_link(fn -> game end, name: __MODULE__)
+ end
+end
+
+defmodule Tetris do
+ alias Types.Chromosome
+ @behaviour Problem
+
+ @impl true
+ def genotype do
+ game = Agent.get(TetrisInterface, & &1)
+ genes = Enum.map(1..1000, fn _ -> Enum.random(game.legal_actions) end)
+ %Chromosome{genes: genes, size: 1000}
+ end
+
+ @impl true
+ def fitness_function(chromosome) do
+ game = Agent.get(TetrisInterface, & &1)
+ actions = chromosome.genes
+
+ game =
+ actions
+ |> Enum.reduce(game, fn act, game -> Alex.step(game, act) end)
+
+ reward = game.reward
+ Alex.reset(game)
+ reward
+ end
+
+ @impl true
+ def terminate?(_population, generation), do: generation == 5
+end
+
+TetrisInterface.start_link("/home/dracuxan/elixir/src/genetic/genetic/games/tetris.bin")
+soln = Genetic.run(Tetris, population_size: 10)
+IO.puts("\nbest: #{inspect(soln)}")
diff --git a/genetic/tiger_simulation.dot b/genetic/tiger_simulation.dot
@@ -1,755 +0,0 @@
-strict digraph {
- 949457869[label="[0, 1, 1, 1, 0, 0, 0, 0]"]
- 2536618053[label="[0, 1, 0, 1, 0, 1, 0, 1]"]
- 724171536[label="[1, 0, 1, 0, 1, 1, 0, 0]"]
- 1402067371[label="[0, 1, 0, 1, 1, 1, 0, 0]"]
- 3908895871[label="[0, 0, 1, 0, 1, 0, 0, 1]"]
- 2403915804[label="[0, 1, 1, 1, 1, 1, 1, 1]"]
- 2848633694[label="[1, 0, 1, 1, 1, 1, 1, 0]"]
- 1971595665[label="[1, 1, 0, 1, 1, 1, 0, 1]"]
- 19331105[label="[0, 1, 0, 0, 0, 0, 1, 0]"]
- 677448650[label="[0, 0, 1, 0, 1, 0, 1, 1]"]
- 3937712037[label="[0, 1, 1, 0, 1, 1, 0, 1]"]
- 767075551[label="[1, 1, 0, 1, 0, 1, 1, 0]"]
- 3354606782[label="[0, 1, 0, 0, 0, 1, 0, 1]"]
- 2268642208[label="[0, 0, 1, 1, 0, 0, 1, 0]"]
- 284311100[label="[0, 1, 1, 0, 1, 1, 0, 0]"]
- 4072798414[label="[1, 1, 0, 0, 1, 1, 0, 0]"]
- 1809647678[label="[1, 0, 0, 1, 1, 0, 0, 1]"]
- 443214995[label="[1, 1, 0, 0, 0, 0, 0, 1]"]
- 2445954675[label="[1, 1, 1, 0, 1, 0, 0, 0]"]
- 2457784034[label="[0, 0, 1, 0, 0, 1, 1, 1]"]
- 1389735369[label="[1, 0, 1, 0, 0, 0, 0, 1]"]
- 3026510743[label="[1, 0, 0, 1, 1, 0, 0, 0]"]
- 4171340714[label="[0, 0, 0, 0, 0, 0, 0, 0]"]
- 1099471454[label="[1, 0, 0, 0, 0, 0, 1, 1]"]
- 3513907054[label="[1, 0, 0, 1, 0, 0, 1, 1]"]
- 2587689007[label="[1, 1, 1, 0, 0, 1, 1, 1]"]
- 2925632667[label="[1, 1, 1, 0, 1, 1, 1, 0]"]
- 2057570518[label="[1, 1, 0, 1, 0, 0, 1, 0]"]
- 3257104108[label="[0, 1, 1, 1, 0, 1, 0, 1]"]
- 3335717218[label="[0, 0, 1, 1, 1, 0, 0, 0]"]
- 698173556[label="[0, 1, 1, 0, 0, 1, 1, 1]"]
- 3715967540[label="[1, 1, 0, 0, 1, 0, 0, 1]"]
- 2368887397[label="[0, 0, 0, 0, 0, 1, 1, 1]"]
- 2884901790[label="[0, 1, 0, 1, 0, 0, 0, 1]"]
- 3234209085[label="[1, 1, 1, 1, 0, 1, 0, 1]"]
- 2037827799[label="[1, 0, 0, 1, 0, 0, 0, 0]"]
- 4285881222[label="[1, 1, 0, 1, 0, 1, 0, 0]"]
- 793347728[label="[0, 0, 0, 1, 0, 0, 1, 1]"]
- 2563037542[label="[1, 1, 1, 1, 0, 1, 1, 1]"]
- 2250553917[label="[0, 1, 1, 0, 0, 0, 0, 1]"]
- 1714495371[label="[0, 1, 1, 1, 1, 0, 1, 1]"]
- 3610445940[label="[1, 1, 0, 0, 1, 0, 1, 0]"]
- 3161838376[label="[1, 0, 1, 1, 1, 0, 1, 0]"]
- 2642425121[label="[1, 0, 1, 1, 1, 0, 0, 0]"]
- 587814686[label="[1, 0, 0, 0, 1, 0, 1, 1]"]
- 74531871[label="[1, 1, 0, 0, 0, 1, 0, 0]"]
- 3965625862[label="[1, 1, 1, 0, 1, 1, 0, 0]"]
- 635681421[label="[0, 0, 1, 0, 1, 1, 1, 0]"]
- 3539985169[label="[0, 1, 1, 0, 1, 0, 0, 0]"]
- 3260494834[label="[1, 1, 1, 0, 1, 0, 0, 1]"]
- 1596605361[label="[1, 0, 0, 0, 1, 1, 1, 1]"]
- 496639972[label="[0, 1, 0, 0, 0, 0, 1, 1]"]
- 4127025499[label="[0, 0, 1, 0, 1, 1, 1, 1]"]
- 1476128492[label="[0, 0, 0, 1, 0, 1, 1, 0]"]
- 4058374985[label="[0, 1, 1, 0, 1, 1, 1, 0]"]
- 3385205003[label="[1, 0, 0, 1, 0, 0, 0, 1]"]
- 504513812[label="[1, 1, 1, 0, 0, 0, 1, 1]"]
- 467112377[label="[0, 0, 1, 1, 0, 0, 0, 0]"]
- 3844664360[label="[0, 1, 0, 1, 0, 0, 0, 0]"]
- 2878229955[label="[1, 0, 1, 0, 1, 0, 1, 0]"]
- 1315291317[label="[1, 1, 1, 0, 0, 0, 1, 0]"]
- 1240788070[label="[0, 1, 0, 1, 0, 1, 1, 1]"]
- 512258003[label="[0, 1, 1, 0, 1, 0, 0, 1]"]
- 2059513195[label="[1, 1, 1, 1, 0, 1, 1, 0]"]
- 765970116[label="[0, 0, 1, 0, 1, 0, 1, 0]"]
- 2250372135[label="[0, 1, 0, 1, 0, 0, 1, 0]"]
- 1451784272[label="[1, 0, 1, 0, 1, 0, 0, 1]"]
- 4005480581[label="[0, 0, 1, 0, 0, 1, 1, 0]"]
- 341183630[label="[0, 1, 1, 0, 0, 0, 1, 0]"]
- 1543204776[label="[1, 1, 1, 1, 1, 1, 0, 1]"]
- 2304576397[label="[1, 1, 1, 0, 0, 1, 0, 1]"]
- 3847528191[label="[0, 0, 0, 1, 0, 0, 0, 0]"]
- 449175020[label="[0, 0, 1, 0, 0, 0, 1, 0]"]
- 1687961054[label="[0, 1, 0, 0, 0, 1, 1, 1]"]
- 3682568289[label="[1, 0, 0, 0, 1, 1, 1, 0]"]
- 3594480722[label="[1, 1, 1, 1, 1, 1, 1, 0]"]
- 2101625518[label="[0, 0, 0, 0, 0, 0, 0, 1]"]
- 3358219454[label="[0, 1, 1, 0, 1, 1, 1, 1]"]
- 688080727[label="[1, 0, 1, 0, 1, 1, 0, 1]"]
- 2424212868[label="[1, 1, 0, 0, 0, 0, 1, 0]"]
- 907040973[label="[1, 1, 0, 1, 1, 1, 1, 1]"]
- 3801418391[label="[0, 1, 1, 1, 1, 1, 0, 0]"]
- 3587387457[label="[0, 1, 0, 0, 1, 1, 0, 1]"]
- 4248627782[label="[0, 1, 0, 1, 1, 1, 1, 0]"]
- 1258450967[label="[0, 1, 0, 0, 1, 1, 1, 1]"]
- 3043258635[label="[0, 0, 1, 0, 0, 1, 0, 1]"]
- 128572598[label="[0, 0, 0, 1, 1, 0, 1, 0]"]
- 3980964254[label="[1, 0, 0, 0, 1, 1, 0, 1]"]
- 2343540229[label="[0, 0, 1, 1, 1, 1, 1, 0]"]
- 3730757465[label="[1, 1, 1, 0, 1, 0, 1, 1]"]
- 3041433247[label="[1, 1, 1, 0, 0, 1, 0, 0]"]
- 93601957[label="[1, 0, 0, 0, 1, 0, 0, 1]"]
- 3569664228[label="[1, 0, 0, 1, 0, 1, 1, 1]"]
- 3701305222[label="[1, 1, 0, 1, 1, 1, 0, 0]"]
- 3024132584[label="[1, 0, 1, 1, 1, 1, 0, 0]"]
- 3031670352[label="[1, 1, 0, 0, 1, 0, 1, 1]"]
- 1389186369[label="[0, 0, 1, 1, 0, 1, 0, 1]"]
- 1476137680[label="[0, 0, 0, 1, 1, 1, 0, 0]"]
- 3408895888[label="[1, 1, 0, 1, 1, 0, 0, 1]"]
- 1025807162[label="[1, 1, 1, 0, 0, 0, 0, 0]"]
- 1257748804[label="[1, 0, 1, 0, 1, 1, 1, 1]"]
- 3806784681[label="[1, 1, 0, 1, 0, 0, 1, 1]"]
- 2662161374[label="[0, 0, 1, 1, 0, 1, 1, 0]"]
- 341781252[label="[1, 0, 0, 1, 1, 1, 1, 1]"]
- 2956543858[label="[0, 0, 0, 1, 1, 1, 1, 1]"]
- 4225915748[label="[0, 1, 0, 1, 1, 0, 0, 1]"]
- 4174934612[label="[1, 1, 0, 0, 0, 0, 1, 1]"]
- 616242749[label="[0, 0, 1, 1, 1, 0, 0, 1]"]
- 114033711[label="[0, 0, 0, 1, 0, 1, 0, 1]"]
- 489079066[label="[0, 0, 1, 0, 1, 1, 0, 1]"]
- 3863142590[label="[0, 1, 0, 0, 0, 1, 0, 0]"]
- 730092841[label="[0, 1, 1, 0, 0, 1, 0, 1]"]
- 625166020[label="[0, 1, 0, 0, 0, 0, 0, 1]"]
- 2695800214[label="[0, 0, 0, 0, 1, 0, 1, 1]"]
- 2757872035[label="[1, 1, 1, 1, 1, 1, 1, 1]"]
- 814309891[label="[0, 0, 0, 0, 0, 0, 1, 1]"]
- 2389889247[label="[0, 1, 1, 0, 1, 0, 1, 1]"]
- 3818475453[label="[0, 1, 0, 1, 1, 1, 0, 1]"]
- 4267216582[label="[0, 1, 1, 1, 1, 0, 0, 1]"]
- 2611811393[label="[0, 0, 1, 1, 0, 1, 1, 1]"]
- 4006653452[label="[0, 1, 0, 1, 0, 0, 1, 1]"]
- 3283303280[label="[0, 1, 1, 1, 0, 0, 1, 1]"]
- 566349598[label="[1, 0, 1, 0, 0, 0, 0, 0]"]
- 1102237284[label="[1, 0, 0, 0, 1, 0, 0, 0]"]
- 3886701531[label="[0, 1, 1, 0, 0, 0, 1, 1]"]
- 1281893856[label="[1, 0, 0, 1, 1, 0, 1, 0]"]
- 1807202653[label="[0, 1, 1, 0, 0, 1, 0, 0]"]
- 3653750597[label="[0, 1, 0, 1, 1, 0, 0, 0]"]
- 3932195571[label="[1, 0, 1, 1, 0, 1, 0, 0]"]
- 2614247803[label="[1, 1, 0, 1, 0, 1, 0, 1]"]
- 340839238[label="[1, 1, 1, 0, 1, 1, 0, 1]"]
- 703869277[label="[0, 1, 0, 0, 1, 1, 0, 0]"]
- 1005042913[label="[0, 0, 0, 0, 1, 1, 1, 1]"]
- 2093178660[label="[1, 0, 1, 0, 1, 1, 1, 0]"]
- 3116854283[label="[0, 0, 1, 1, 1, 0, 1, 0]"]
- 269858152[label="[1, 1, 1, 0, 1, 1, 1, 1]"]
- 3720302707[label="[0, 1, 1, 1, 0, 0, 0, 1]"]
- 3992611598[label="[0, 1, 0, 1, 0, 1, 1, 0]"]
- 2694424578[label="[0, 1, 1, 1, 1, 1, 0, 1]"]
- 2210017943[label="[1, 0, 1, 0, 0, 0, 1, 1]"]
- 1947342348[label="[1, 1, 0, 0, 1, 1, 1, 0]"]
- 1594237941[label="[1, 0, 0, 0, 1, 1, 0, 0]"]
- 2577465764[label="[1, 1, 0, 1, 1, 0, 0, 0]"]
- 2021613852[label="[0, 0, 0, 1, 1, 0, 0, 0]"]
- 2576868663[label="[0, 1, 0, 0, 1, 0, 0, 1]"]
- 2929388316[label="[1, 1, 0, 0, 0, 1, 1, 1]"]
- 1211446481[label="[0, 1, 1, 0, 0, 0, 0, 0]"]
- 3956835859[label="[1, 1, 1, 1, 1, 1, 0, 0]"]
- 3164977462[label="[0, 1, 0, 1, 1, 0, 1, 0]"]
- 2675173574[label="[0, 0, 1, 0, 0, 0, 1, 1]"]
- 1744448600[label="[0, 1, 1, 1, 1, 1, 1, 0]"]
- 4040258515[label="[1, 1, 0, 0, 1, 1, 0, 1]"]
- 4204565953[label="[1, 1, 1, 1, 1, 0, 0, 0]"]
- 4280082815[label="[0, 1, 1, 1, 0, 1, 1, 1]"]
- 2359991343[label="[1, 0, 1, 1, 0, 1, 1, 1]"]
- 1669442311[label="[1, 0, 1, 0, 0, 0, 1, 0]"]
- 3372683600[label="[0, 1, 0, 0, 1, 0, 1, 1]"]
- 2698673405[label="[1, 1, 0, 0, 1, 1, 1, 1]"]
- 2001959156[label="[0, 0, 1, 1, 1, 1, 0, 0]"]
- 500051265[label="[1, 0, 0, 1, 1, 1, 1, 0]"]
- 2951794785[label="[1, 0, 0, 0, 1, 0, 1, 0]"]
- 2895857263[label="[0, 1, 1, 1, 0, 1, 0, 0]"]
- 3615109539[label="[0, 1, 1, 1, 0, 0, 1, 0]"]
- 3722414022[label="[1, 1, 0, 1, 0, 0, 0, 1]"]
- 949457869 -> 341183630 [weight=1]
- 949457869 -> 3720302707 [weight=1]
- 2536618053 -> 114033711 [weight=1]
- 2536618053 -> 625166020 [weight=1]
- 2536618053 -> 730092841 [weight=1]
- 2536618053 -> 2536618053 [weight=1]
- 2536618053 -> 2576868663 [weight=1]
- 2536618053 -> 2614247803 [weight=1]
- 2536618053 -> 3257104108 [weight=1]
- 2536618053 -> 4006653452 [weight=1]
- 724171536 -> 1257748804 [weight=1]
- 724171536 -> 4072798414 [weight=1]
- 1402067371 -> 1947342348 [weight=1]
- 1402067371 -> 3818475453 [weight=1]
- 3908895871 -> 512258003 [weight=1]
- 3908895871 -> 635681421 [weight=1]
- 3908895871 -> 677448650 [weight=1]
- 3908895871 -> 1451784272 [weight=1]
- 3908895871 -> 2695800214 [weight=1]
- 3908895871 -> 3408895888 [weight=1]
- 3908895871 -> 3715967540 [weight=1]
- 3908895871 -> 3908895871 [weight=1]
- 2403915804 -> 1258450967 [weight=1]
- 2403915804 -> 1744448600 [weight=1]
- 2403915804 -> 2389889247 [weight=1]
- 2403915804 -> 2403915804 [weight=1]
- 2403915804 -> 2694424578 [weight=1]
- 2403915804 -> 2757872035 [weight=1]
- 2403915804 -> 3587387457 [weight=1]
- 2403915804 -> 4280082815 [weight=1]
- 2848633694 -> 2343540229 [weight=1]
- 2848633694 -> 2878229955 [weight=1]
- 1971595665 -> 1971595665 [weight=1]
- 1971595665 -> 3715967540 [weight=1]
- 19331105 -> 19331105 [weight=1]
- 19331105 -> 625166020 [weight=1]
- 19331105 -> 1389186369 [weight=1]
- 19331105 -> 1669442311 [weight=1]
- 19331105 -> 2951794785 [weight=1]
- 19331105 -> 3844664360 [weight=1]
- 19331105 -> 3863142590 [weight=1]
- 3937712037 -> 284311100 [weight=1]
- 3937712037 -> 340839238 [weight=1]
- 3937712037 -> 730092841 [weight=1]
- 3937712037 -> 1807202653 [weight=1]
- 3937712037 -> 3937712037 [weight=1]
- 767075551 -> 767075551 [weight=1]
- 767075551 -> 3992611598 [weight=1]
- 3354606782 -> 496639972 [weight=1]
- 3354606782 -> 730092841 [weight=1]
- 3354606782 -> 1687961054 [weight=1]
- 3354606782 -> 3234209085 [weight=1]
- 284311100 -> 284311100 [weight=1]
- 284311100 -> 1807202653 [weight=1]
- 284311100 -> 3937712037 [weight=1]
- 284311100 -> 3965625862 [weight=1]
- 4072798414 -> 907040973 [weight=1]
- 4072798414 -> 3031670352 [weight=1]
- 4072798414 -> 3965625862 [weight=1]
- 4072798414 -> 4072798414 [weight=1]
- 443214995 -> 443214995 [weight=1]
- 443214995 -> 625166020 [weight=1]
- 443214995 -> 3354606782 [weight=1]
- 443214995 -> 4174934612 [weight=1]
- 2445954675 -> 269858152 [weight=1]
- 2445954675 -> 284311100 [weight=1]
- 2445954675 -> 340839238 [weight=1]
- 2445954675 -> 1543204776 [weight=1]
- 2445954675 -> 1807202653 [weight=1]
- 2445954675 -> 2445954675 [weight=1]
- 2445954675 -> 2925632667 [weight=1]
- 2445954675 -> 3041433247 [weight=1]
- 2445954675 -> 3234209085 [weight=1]
- 2445954675 -> 3260494834 [weight=1]
- 2445954675 -> 3539985169 [weight=1]
- 2445954675 -> 3730757465 [weight=1]
- 2445954675 -> 3801418391 [weight=1]
- 2445954675 -> 3965625862 [weight=1]
- 2445954675 -> 4204565953 [weight=1]
- 2457784034 -> 698173556 [weight=1]
- 2457784034 -> 1389186369 [weight=1]
- 2457784034 -> 2457784034 [weight=1]
- 2457784034 -> 2611811393 [weight=1]
- 2457784034 -> 3043258635 [weight=1]
- 2457784034 -> 3847528191 [weight=1]
- 1389735369 -> 625166020 [weight=1]
- 1389735369 -> 1669442311 [weight=1]
- 2587689007 -> 698173556 [weight=1]
- 2587689007 -> 1025807162 [weight=1]
- 2587689007 -> 2587689007 [weight=1]
- 2925632667 -> 2925632667 [weight=1]
- 2925632667 -> 3260494834 [weight=1]
- 2925632667 -> 3956835859 [weight=1]
- 2925632667 -> 4058374985 [weight=1]
- 2057570518 -> 449175020 [weight=1]
- 2057570518 -> 2662161374 [weight=1]
- 2057570518 -> 3806784681 [weight=1]
- 3257104108 -> 730092841 [weight=1]
- 3257104108 -> 2250553917 [weight=1]
- 3257104108 -> 2895857263 [weight=1]
- 3257104108 -> 3234209085 [weight=1]
- 3257104108 -> 3257104108 [weight=1]
- 3257104108 -> 3539985169 [weight=1]
- 3257104108 -> 4280082815 [weight=1]
- 3335717218 -> 2642425121 [weight=1]
- 3335717218 -> 3335717218 [weight=1]
- 698173556 -> 698173556 [weight=1]
- 698173556 -> 730092841 [weight=1]
- 698173556 -> 1211446481 [weight=1]
- 698173556 -> 1807202653 [weight=1]
- 698173556 -> 2250553917 [weight=1]
- 698173556 -> 2563037542 [weight=1]
- 698173556 -> 2587689007 [weight=1]
- 698173556 -> 2698673405 [weight=1]
- 698173556 -> 2757872035 [weight=1]
- 698173556 -> 3257104108 [weight=1]
- 698173556 -> 3587387457 [weight=1]
- 698173556 -> 3730757465 [weight=1]
- 698173556 -> 3886701531 [weight=1]
- 698173556 -> 4058374985 [weight=1]
- 698173556 -> 4280082815 [weight=1]
- 3715967540 -> 1971595665 [weight=1]
- 3715967540 -> 2576868663 [weight=1]
- 3715967540 -> 2614247803 [weight=1]
- 3715967540 -> 3715967540 [weight=1]
- 3715967540 -> 4040258515 [weight=1]
- 3715967540 -> 4225915748 [weight=1]
- 2884901790 -> 2457784034 [weight=1]
- 2884901790 -> 3844664360 [weight=1]
- 3234209085 -> 730092841 [weight=1]
- 3234209085 -> 2563037542 [weight=1]
- 3234209085 -> 2587689007 [weight=1]
- 3234209085 -> 3257104108 [weight=1]
- 4285881222 -> 2614247803 [weight=1]
- 4285881222 -> 3610445940 [weight=1]
- 2563037542 -> 504513812 [weight=1]
- 2563037542 -> 1687961054 [weight=1]
- 2563037542 -> 2563037542 [weight=1]
- 2563037542 -> 3234209085 [weight=1]
- 2563037542 -> 3283303280 [weight=1]
- 2563037542 -> 3886701531 [weight=1]
- 2563037542 -> 4280082815 [weight=1]
- 2250553917 -> 625166020 [weight=1]
- 2250553917 -> 698173556 [weight=1]
- 2250553917 -> 730092841 [weight=1]
- 2250553917 -> 1211446481 [weight=1]
- 2250553917 -> 2250553917 [weight=1]
- 2250553917 -> 3257104108 [weight=1]
- 2250553917 -> 3886701531 [weight=1]
- 2250553917 -> 3937712037 [weight=1]
- 1714495371 -> 1714495371 [weight=1]
- 1714495371 -> 1744448600 [weight=1]
- 1714495371 -> 3031670352 [weight=1]
- 1714495371 -> 3615109539 [weight=1]
- 3610445940 -> 1947342348 [weight=1]
- 3610445940 -> 2878229955 [weight=1]
- 2642425121 -> 2642425121 [weight=1]
- 2642425121 -> 3335717218 [weight=1]
- 74531871 -> 767075551 [weight=1]
- 74531871 -> 3041433247 [weight=1]
- 3965625862 -> 284311100 [weight=1]
- 3965625862 -> 340839238 [weight=1]
- 3965625862 -> 1807202653 [weight=1]
- 3965625862 -> 3965625862 [weight=1]
- 635681421 -> 635681421 [weight=1]
- 635681421 -> 4127025499 [weight=1]
- 3539985169 -> 512258003 [weight=1]
- 3539985169 -> 2445954675 [weight=1]
- 3539985169 -> 3539985169 [weight=1]
- 3539985169 -> 3956835859 [weight=1]
- 3260494834 -> 269858152 [weight=1]
- 3260494834 -> 512258003 [weight=1]
- 3260494834 -> 730092841 [weight=1]
- 3260494834 -> 1543204776 [weight=1]
- 3260494834 -> 2304576397 [weight=1]
- 3260494834 -> 2445954675 [weight=1]
- 3260494834 -> 2925632667 [weight=1]
- 3260494834 -> 3257104108 [weight=1]
- 3260494834 -> 3260494834 [weight=1]
- 3260494834 -> 3358219454 [weight=1]
- 3260494834 -> 3956835859 [weight=1]
- 3260494834 -> 3965625862 [weight=1]
- 3260494834 -> 4267216582 [weight=1]
- 1596605361 -> 1005042913 [weight=1]
- 1596605361 -> 1596605361 [weight=1]
- 4127025499 -> 635681421 [weight=1]
- 4127025499 -> 1257748804 [weight=1]
- 4127025499 -> 2001959156 [weight=1]
- 4127025499 -> 4127025499 [weight=1]
- 4127025499 -> 4225915748 [weight=1]
- 4058374985 -> 284311100 [weight=1]
- 4058374985 -> 2445954675 [weight=1]
- 4058374985 -> 3358219454 [weight=1]
- 4058374985 -> 3594480722 [weight=1]
- 504513812 -> 504513812 [weight=1]
- 504513812 -> 1315291317 [weight=1]
- 504513812 -> 2563037542 [weight=1]
- 504513812 -> 3886701531 [weight=1]
- 467112377 -> 566349598 [weight=1]
- 467112377 -> 2268642208 [weight=1]
- 3844664360 -> 19331105 [weight=1]
- 3844664360 -> 698173556 [weight=1]
- 3844664360 -> 3844664360 [weight=1]
- 3844664360 -> 3847528191 [weight=1]
- 2878229955 -> 765970116 [weight=1]
- 2878229955 -> 1451784272 [weight=1]
- 2878229955 -> 2343540229 [weight=1]
- 2878229955 -> 2662161374 [weight=1]
- 2878229955 -> 2878229955 [weight=1]
- 1315291317 -> 341183630 [weight=1]
- 1315291317 -> 504513812 [weight=1]
- 1315291317 -> 1315291317 [weight=1]
- 512258003 -> 730092841 [weight=1]
- 512258003 -> 3260494834 [weight=1]
- 512258003 -> 3358219454 [weight=1]
- 512258003 -> 3539985169 [weight=1]
- 512258003 -> 3801418391 [weight=1]
- 2059513195 -> 767075551 [weight=1]
- 2059513195 -> 3041433247 [weight=1]
- 765970116 -> 765970116 [weight=1]
- 765970116 -> 2343540229 [weight=1]
- 765970116 -> 2878229955 [weight=1]
- 2250372135 -> 2057570518 [weight=1]
- 2250372135 -> 4006653452 [weight=1]
- 1451784272 -> 341781252 [weight=1]
- 1451784272 -> 688080727 [weight=1]
- 1451784272 -> 1451784272 [weight=1]
- 1451784272 -> 1687961054 [weight=1]
- 1451784272 -> 1809647678 [weight=1]
- 1451784272 -> 2093178660 [weight=1]
- 1451784272 -> 2577465764 [weight=1]
- 1451784272 -> 2878229955 [weight=1]
- 1451784272 -> 3026510743 [weight=1]
- 1451784272 -> 3260494834 [weight=1]
- 1451784272 -> 3408895888 [weight=1]
- 1451784272 -> 3908895871 [weight=1]
- 1451784272 -> 4225915748 [weight=1]
- 4005480581 -> 2457784034 [weight=1]
- 4005480581 -> 3844664360 [weight=1]
- 341183630 -> 341183630 [weight=1]
- 341183630 -> 1315291317 [weight=1]
- 341183630 -> 1669442311 [weight=1]
- 341183630 -> 3720302707 [weight=1]
- 341183630 -> 3886701531 [weight=1]
- 341183630 -> 3937712037 [weight=1]
- 1543204776 -> 340839238 [weight=1]
- 1543204776 -> 512258003 [weight=1]
- 1543204776 -> 730092841 [weight=1]
- 1543204776 -> 1543204776 [weight=1]
- 1543204776 -> 2445954675 [weight=1]
- 1543204776 -> 2757872035 [weight=1]
- 1543204776 -> 3956835859 [weight=1]
- 1543204776 -> 4204565953 [weight=1]
- 2304576397 -> 730092841 [weight=1]
- 2304576397 -> 2304576397 [weight=1]
- 2304576397 -> 3041433247 [weight=1]
- 2304576397 -> 3260494834 [weight=1]
- 449175020 -> 1669442311 [weight=1]
- 449175020 -> 2675173574 [weight=1]
- 1687961054 -> 19331105 [weight=1]
- 1687961054 -> 1240788070 [weight=1]
- 1687961054 -> 1451784272 [weight=1]
- 1687961054 -> 1687961054 [weight=1]
- 1687961054 -> 3354606782 [weight=1]
- 1687961054 -> 3587387457 [weight=1]
- 1687961054 -> 4174934612 [weight=1]
- 1687961054 -> 4280082815 [weight=1]
- 3682568289 -> 93601957 [weight=1]
- 3682568289 -> 3682568289 [weight=1]
- 3594480722 -> 1543204776 [weight=1]
- 3594480722 -> 1744448600 [weight=1]
- 3594480722 -> 1947342348 [weight=1]
- 3594480722 -> 2563037542 [weight=1]
- 3594480722 -> 2757872035 [weight=1]
- 3594480722 -> 4058374985 [weight=1]
- 3358219454 -> 269858152 [weight=1]
- 3358219454 -> 284311100 [weight=1]
- 3358219454 -> 512258003 [weight=1]
- 3358219454 -> 3260494834 [weight=1]
- 3358219454 -> 3358219454 [weight=1]
- 3358219454 -> 3539985169 [weight=1]
- 3358219454 -> 3730757465 [weight=1]
- 688080727 -> 1257748804 [weight=1]
- 688080727 -> 1669442311 [weight=1]
- 688080727 -> 3587387457 [weight=1]
- 688080727 -> 3937712037 [weight=1]
- 2424212868 -> 2424212868 [weight=1]
- 2424212868 -> 3932195571 [weight=1]
- 907040973 -> 341781252 [weight=1]
- 907040973 -> 907040973 [weight=1]
- 907040973 -> 2956543858 [weight=1]
- 907040973 -> 3031670352 [weight=1]
- 907040973 -> 3260494834 [weight=1]
- 907040973 -> 3956835859 [weight=1]
- 3801418391 -> 3956835859 [weight=1]
- 3801418391 -> 3965625862 [weight=1]
- 3801418391 -> 4058374985 [weight=1]
- 3801418391 -> 4267216582 [weight=1]
- 3587387457 -> 625166020 [weight=1]
- 3587387457 -> 698173556 [weight=1]
- 3587387457 -> 1258450967 [weight=1]
- 3587387457 -> 2403915804 [weight=1]
- 3587387457 -> 2694424578 [weight=1]
- 3587387457 -> 3587387457 [weight=1]
- 3587387457 -> 3937712037 [weight=1]
- 3587387457 -> 4040258515 [weight=1]
- 4248627782 -> 1258450967 [weight=1]
- 4248627782 -> 2093178660 [weight=1]
- 4248627782 -> 2848633694 [weight=1]
- 4248627782 -> 4225915748 [weight=1]
- 1258450967 -> 489079066 [weight=1]
- 1258450967 -> 1005042913 [weight=1]
- 1258450967 -> 1257748804 [weight=1]
- 1258450967 -> 1258450967 [weight=1]
- 1258450967 -> 1402067371 [weight=1]
- 1258450967 -> 2698673405 [weight=1]
- 1258450967 -> 3587387457 [weight=1]
- 1258450967 -> 3937712037 [weight=1]
- 3043258635 -> 114033711 [weight=1]
- 3043258635 -> 730092841 [weight=1]
- 3043258635 -> 2675173574 [weight=1]
- 3043258635 -> 3257104108 [weight=1]
- 3980964254 -> 688080727 [weight=1]
- 3980964254 -> 1099471454 [weight=1]
- 3980964254 -> 3569664228 [weight=1]
- 3980964254 -> 3818475453 [weight=1]
- 2343540229 -> 2343540229 [weight=1]
- 2343540229 -> 2878229955 [weight=1]
- 3730757465 -> 1258450967 [weight=1]
- 3730757465 -> 2389889247 [weight=1]
- 3730757465 -> 2445954675 [weight=1]
- 3730757465 -> 2757872035 [weight=1]
- 3730757465 -> 3031670352 [weight=1]
- 3730757465 -> 3260494834 [weight=1]
- 3730757465 -> 3283303280 [weight=1]
- 3730757465 -> 3730757465 [weight=1]
- 3730757465 -> 3965625862 [weight=1]
- 3041433247 -> 340839238 [weight=1]
- 3041433247 -> 1807202653 [weight=1]
- 3041433247 -> 2304576397 [weight=1]
- 3041433247 -> 2445954675 [weight=1]
- 3041433247 -> 3041433247 [weight=1]
- 93601957 -> 93601957 [weight=1]
- 93601957 -> 3682568289 [weight=1]
- 3701305222 -> 1402067371 [weight=1]
- 3701305222 -> 2698673405 [weight=1]
- 3024132584 -> 1257748804 [weight=1]
- 3024132584 -> 2001959156 [weight=1]
- 3031670352 -> 677448650 [weight=1]
- 3031670352 -> 907040973 [weight=1]
- 3031670352 -> 2614247803 [weight=1]
- 3031670352 -> 3031670352 [weight=1]
- 3031670352 -> 3610445940 [weight=1]
- 3031670352 -> 3715967540 [weight=1]
- 1389186369 -> 19331105 [weight=1]
- 1389186369 -> 1389186369 [weight=1]
- 1389186369 -> 1451784272 [weight=1]
- 1389186369 -> 2457784034 [weight=1]
- 1389186369 -> 2536618053 [weight=1]
- 1389186369 -> 2611811393 [weight=1]
- 1389186369 -> 2662161374 [weight=1]
- 1389186369 -> 3043258635 [weight=1]
- 1389186369 -> 3992611598 [weight=1]
- 1476137680 -> 1594237941 [weight=1]
- 1476137680 -> 2021613852 [weight=1]
- 3408895888 -> 907040973 [weight=1]
- 3408895888 -> 1451784272 [weight=1]
- 3408895888 -> 1809647678 [weight=1]
- 3408895888 -> 2093178660 [weight=1]
- 3408895888 -> 2577465764 [weight=1]
- 3408895888 -> 3260494834 [weight=1]
- 3408895888 -> 3408895888 [weight=1]
- 3408895888 -> 3908895871 [weight=1]
- 3408895888 -> 4225915748 [weight=1]
- 1025807162 -> 1211446481 [weight=1]
- 1025807162 -> 2587689007 [weight=1]
- 1257748804 -> 907040973 [weight=1]
- 1257748804 -> 1258450967 [weight=1]
- 1257748804 -> 1451784272 [weight=1]
- 1257748804 -> 2093178660 [weight=1]
- 1257748804 -> 2577465764 [weight=1]
- 1257748804 -> 2848633694 [weight=1]
- 1257748804 -> 3024132584 [weight=1]
- 1257748804 -> 3408895888 [weight=1]
- 1257748804 -> 4127025499 [weight=1]
- 1257748804 -> 4225915748 [weight=1]
- 3806784681 -> 2057570518 [weight=1]
- 3806784681 -> 4006653452 [weight=1]
- 4225915748 -> 1451784272 [weight=1]
- 4225915748 -> 3408895888 [weight=1]
- 4225915748 -> 3653750597 [weight=1]
- 4225915748 -> 3844664360 [weight=1]
- 4225915748 -> 3908895871 [weight=1]
- 4225915748 -> 4127025499 [weight=1]
- 4225915748 -> 4225915748 [weight=1]
- 4225915748 -> 4248627782 [weight=1]
- 616242749 -> 3116854283 [weight=1]
- 616242749 -> 4225915748 [weight=1]
- 489079066 -> 489079066 [weight=1]
- 489079066 -> 1005042913 [weight=1]
- 489079066 -> 1258450967 [weight=1]
- 489079066 -> 3937712037 [weight=1]
- 3863142590 -> 3354606782 [weight=1]
- 3863142590 -> 3594480722 [weight=1]
- 730092841 -> 340839238 [weight=1]
- 730092841 -> 730092841 [weight=1]
- 730092841 -> 1807202653 [weight=1]
- 730092841 -> 2304576397 [weight=1]
- 730092841 -> 3937712037 [weight=1]
- 625166020 -> 443214995 [weight=1]
- 625166020 -> 625166020 [weight=1]
- 625166020 -> 1687961054 [weight=1]
- 625166020 -> 2536618053 [weight=1]
- 2757872035 -> 907040973 [weight=1]
- 2757872035 -> 2389889247 [weight=1]
- 2757872035 -> 2403915804 [weight=1]
- 2757872035 -> 2757872035 [weight=1]
- 2757872035 -> 3354606782 [weight=1]
- 2757872035 -> 3594480722 [weight=1]
- 2757872035 -> 3965625862 [weight=1]
- 2757872035 -> 4040258515 [weight=1]
- 2389889247 -> 2389889247 [weight=1]
- 2389889247 -> 2757872035 [weight=1]
- 3818475453 -> 1240788070 [weight=1]
- 3818475453 -> 1971595665 [weight=1]
- 3818475453 -> 2576868663 [weight=1]
- 3818475453 -> 3587387457 [weight=1]
- 3818475453 -> 3720302707 [weight=1]
- 3818475453 -> 3818475453 [weight=1]
- 3818475453 -> 4040258515 [weight=1]
- 3818475453 -> 4225915748 [weight=1]
- 3818475453 -> 4248627782 [weight=1]
- 2611811393 -> 2662161374 [weight=1]
- 2611811393 -> 3806784681 [weight=1]
- 4006653452 -> 1099471454 [weight=1]
- 4006653452 -> 3818475453 [weight=1]
- 3283303280 -> 2675173574 [weight=1]
- 3283303280 -> 3257104108 [weight=1]
- 3283303280 -> 4006653452 [weight=1]
- 566349598 -> 1451784272 [weight=1]
- 566349598 -> 3844664360 [weight=1]
- 1102237284 -> 1594237941 [weight=1]
- 1102237284 -> 2021613852 [weight=1]
- 3886701531 -> 341183630 [weight=1]
- 3886701531 -> 496639972 [weight=1]
- 3886701531 -> 504513812 [weight=1]
- 3886701531 -> 730092841 [weight=1]
- 3886701531 -> 2563037542 [weight=1]
- 3886701531 -> 3720302707 [weight=1]
- 3886701531 -> 3886701531 [weight=1]
- 3886701531 -> 4040258515 [weight=1]
- 3886701531 -> 4280082815 [weight=1]
- 1807202653 -> 284311100 [weight=1]
- 1807202653 -> 730092841 [weight=1]
- 1807202653 -> 1807202653 [weight=1]
- 1807202653 -> 2445954675 [weight=1]
- 1807202653 -> 2694424578 [weight=1]
- 1807202653 -> 3041433247 [weight=1]
- 1807202653 -> 3539985169 [weight=1]
- 1807202653 -> 3965625862 [weight=1]
- 3653750597 -> 2001959156 [weight=1]
- 3653750597 -> 2093178660 [weight=1]
- 3653750597 -> 2577465764 [weight=1]
- 3653750597 -> 3653750597 [weight=1]
- 3653750597 -> 4127025499 [weight=1]
- 3653750597 -> 4225915748 [weight=1]
- 3932195571 -> 2424212868 [weight=1]
- 3932195571 -> 3932195571 [weight=1]
- 2614247803 -> 2536618053 [weight=1]
- 2614247803 -> 2614247803 [weight=1]
- 340839238 -> 340839238 [weight=1]
- 340839238 -> 730092841 [weight=1]
- 340839238 -> 3937712037 [weight=1]
- 340839238 -> 3965625862 [weight=1]
- 703869277 -> 1258450967 [weight=1]
- 703869277 -> 2445954675 [weight=1]
- 1005042913 -> 1005042913 [weight=1]
- 1005042913 -> 1596605361 [weight=1]
- 2093178660 -> 635681421 [weight=1]
- 2093178660 -> 688080727 [weight=1]
- 2093178660 -> 1451784272 [weight=1]
- 2093178660 -> 1947342348 [weight=1]
- 2093178660 -> 2093178660 [weight=1]
- 2093178660 -> 2878229955 [weight=1]
- 2093178660 -> 3408895888 [weight=1]
- 2093178660 -> 4248627782 [weight=1]
- 269858152 -> 269858152 [weight=1]
- 269858152 -> 2445954675 [weight=1]
- 269858152 -> 2925632667 [weight=1]
- 269858152 -> 3260494834 [weight=1]
- 269858152 -> 3358219454 [weight=1]
- 269858152 -> 3730757465 [weight=1]
- 269858152 -> 3965625862 [weight=1]
- 3720302707 -> 341183630 [weight=1]
- 3720302707 -> 3234209085 [weight=1]
- 3720302707 -> 3260494834 [weight=1]
- 3720302707 -> 3283303280 [weight=1]
- 3720302707 -> 3720302707 [weight=1]
- 3720302707 -> 3818475453 [weight=1]
- 3992611598 -> 767075551 [weight=1]
- 3992611598 -> 1389186369 [weight=1]
- 3992611598 -> 2536618053 [weight=1]
- 3992611598 -> 2662161374 [weight=1]
- 3992611598 -> 3992611598 [weight=1]
- 2694424578 -> 1807202653 [weight=1]
- 2694424578 -> 2694424578 [weight=1]
- 2694424578 -> 3260494834 [weight=1]
- 2694424578 -> 3801418391 [weight=1]
- 2210017943 -> 1669442311 [weight=1]
- 2210017943 -> 2675173574 [weight=1]
- 1947342348 -> 1744448600 [weight=1]
- 1947342348 -> 3031670352 [weight=1]
- 1947342348 -> 4040258515 [weight=1]
- 1947342348 -> 4248627782 [weight=1]
- 1594237941 -> 2951794785 [weight=1]
- 1594237941 -> 3385205003 [weight=1]
- 1594237941 -> 3863142590 [weight=1]
- 1594237941 -> 4072798414 [weight=1]
- 2577465764 -> 1451784272 [weight=1]
- 2577465764 -> 2093178660 [weight=1]
- 2577465764 -> 2577465764 [weight=1]
- 2577465764 -> 3026510743 [weight=1]
- 2577465764 -> 3260494834 [weight=1]
- 2577465764 -> 3408895888 [weight=1]
- 2577465764 -> 3653750597 [weight=1]
- 2576868663 -> 2576868663 [weight=1]
- 2576868663 -> 3715967540 [weight=1]
- 2929388316 -> 443214995 [weight=1]
- 2929388316 -> 1687961054 [weight=1]
- 1211446481 -> 698173556 [weight=1]
- 1211446481 -> 1025807162 [weight=1]
- 1211446481 -> 1211446481 [weight=1]
- 1211446481 -> 1807202653 [weight=1]
- 1211446481 -> 2250553917 [weight=1]
- 1211446481 -> 2895857263 [weight=1]
- 1211446481 -> 3886701531 [weight=1]
- 3956835859 -> 284311100 [weight=1]
- 3956835859 -> 1543204776 [weight=1]
- 3956835859 -> 2445954675 [weight=1]
- 3956835859 -> 3260494834 [weight=1]
- 3956835859 -> 3594480722 [weight=1]
- 3956835859 -> 3801418391 [weight=1]
- 3956835859 -> 3956835859 [weight=1]
- 3164977462 -> 3116854283 [weight=1]
- 3164977462 -> 4225915748 [weight=1]
- 2675173574 -> 449175020 [weight=1]
- 2675173574 -> 2210017943 [weight=1]
- 2675173574 -> 2611811393 [weight=1]
- 2675173574 -> 3806784681 [weight=1]
- 1744448600 -> 2403915804 [weight=1]
- 1744448600 -> 3594480722 [weight=1]
- 4040258515 -> 730092841 [weight=1]
- 4040258515 -> 1543204776 [weight=1]
- 4040258515 -> 1947342348 [weight=1]
- 4040258515 -> 2698673405 [weight=1]
- 4040258515 -> 2757872035 [weight=1]
- 4040258515 -> 3587387457 [weight=1]
- 4040258515 -> 3886701531 [weight=1]
- 4040258515 -> 4040258515 [weight=1]
- 4280082815 -> 2403915804 [weight=1]
- 4280082815 -> 2563037542 [weight=1]
- 4280082815 -> 3886701531 [weight=1]
- 4280082815 -> 4280082815 [weight=1]
- 2359991343 -> 688080727 [weight=1]
- 2359991343 -> 2210017943 [weight=1]
- 2359991343 -> 2611811393 [weight=1]
- 2359991343 -> 3569664228 [weight=1]
- 1669442311 -> 566349598 [weight=1]
- 1669442311 -> 2268642208 [weight=1]
- 3372683600 -> 512258003 [weight=1]
- 3372683600 -> 2695800214 [weight=1]
- 2698673405 -> 1257748804 [weight=1]
- 2698673405 -> 1947342348 [weight=1]
- 2698673405 -> 3818475453 [weight=1]
- 2698673405 -> 4072798414 [weight=1]
- 2001959156 -> 2001959156 [weight=1]
- 2001959156 -> 2956543858 [weight=1]
- 2001959156 -> 3024132584 [weight=1]
- 2001959156 -> 3653750597 [weight=1]
- 2001959156 -> 3956835859 [weight=1]
- 2001959156 -> 4127025499 [weight=1]
- 2895857263 -> 2445954675 [weight=1]
- 2895857263 -> 3257104108 [weight=1]
- 3615109539 -> 19331105 [weight=1]
- 3615109539 -> 1714495371 [weight=1]
- 3615109539 -> 3615109539 [weight=1]
- 3615109539 -> 4280082815 [weight=1]
- 3722414022 -> 3385205003 [weight=1]
- 3722414022 -> 4072798414 [weight=1]
-}