PSO Implementation (in Ruby)
> gen 1, fitness=0.10732377938785477
> gen 2, fitness=0.008043798087950995
> gen 3, fitness=0.008043798087950995
> gen 4, fitness=0.008043798087950995
> gen 5, fitness=0.008043798087950995
> gen 6, fitness=0.008043798087950995
> gen 7, fitness=0.008043798087950995
> gen 8, fitness=0.008043798087950995
> gen 9, fitness=0.008043798087950995
> gen 10, fitness=0.008043798087950995
> gen 11, fitness=0.008043798087950995
> gen 12, fitness=0.008043798087950995
> gen 13, fitness=0.008043798087950995
> gen 14, fitness=0.008043798087950995
> gen 15, fitness=0.008043798087950995
> gen 16, fitness=0.008043798087950995
> gen 17, fitness=0.008043798087950995
> gen 18, fitness=0.008043798087950995
> gen 19, fitness=0.008043798087950995
> gen 20, fitness=0.008043798087950995
> gen 21, fitness=0.008043798087950995
> gen 22, fitness=0.008043798087950995
> gen 23, fitness=0.008043798087950995
> gen 24, fitness=0.008043798087950995
> gen 25, fitness=0.008043798087950995
> gen 26, fitness=0.008043798087950995
> gen 27, fitness=0.008043798087950995
> gen 28, fitness=0.008043798087950995
> gen 29, fitness=0.008043798087950995
> gen 30, fitness=0.008043798087950995
> gen 31, fitness=0.008043798087950995
> gen 32, fitness=0.008043798087950995
> gen 33, fitness=0.008043798087950995
> gen 34, fitness=0.008043798087950995
> gen 35, fitness=0.008043798087950995
> gen 36, fitness=0.008043798087950995
> gen 37, fitness=0.008043798087950995
> gen 38, fitness=0.008040353298287386
> gen 39, fitness=0.008040353298287386
> gen 40, fitness=0.008040353298287386
> gen 41, fitness=0.0033875006805440437
> gen 42, fitness=0.0033875006805440437
> gen 43, fitness=0.0033875006805440437
> gen 44, fitness=0.0033875006805440437
> gen 45, fitness=0.0033875006805440437
> gen 46, fitness=0.0033875006805440437
> gen 47, fitness=0.0033875006805440437
> gen 48, fitness=0.0033875006805440437
> gen 49, fitness=0.0033875006805440437
> gen 50, fitness=0.0033875006805440437
> gen 51, fitness=0.0033875006805440437
> gen 52, fitness=0.0033875006805440437
> gen 53, fitness=0.0033875006805440437
> gen 54, fitness=0.0033875006805440437
> gen 55, fitness=0.0033875006805440437
> gen 56, fitness=0.0033875006805440437
> gen 57, fitness=0.0033875006805440437
> gen 58, fitness=0.0033875006805440437
> gen 59, fitness=0.0033875006805440437
> gen 60, fitness=0.0033875006805440437
> gen 61, fitness=0.0033875006805440437
> gen 62, fitness=0.0033875006805440437
> gen 63, fitness=0.0033875006805440437
> gen 64, fitness=0.0033875006805440437
> gen 65, fitness=0.0033875006805440437
> gen 66, fitness=0.0033875006805440437
> gen 67, fitness=0.0033875006805440437
> gen 68, fitness=0.0033875006805440437
> gen 69, fitness=0.0033875006805440437
> gen 70, fitness=0.0033875006805440437
> gen 71, fitness=0.0033875006805440437
> gen 72, fitness=0.0033875006805440437
> gen 73, fitness=0.0033875006805440437
> gen 74, fitness=0.0033875006805440437
> gen 75, fitness=0.0033875006805440437
> gen 76, fitness=0.0033875006805440437
> gen 77, fitness=0.0033875006805440437
> gen 78, fitness=0.0033875006805440437
> gen 79, fitness=0.0033875006805440437
> gen 80, fitness=0.0033875006805440437
> gen 81, fitness=0.0033875006805440437
> gen 82, fitness=0.0033875006805440437
> gen 83, fitness=0.0033875006805440437
> gen 84, fitness=0.0033875006805440437
> gen 85, fitness=0.0033875006805440437
> gen 86, fitness=0.0033875006805440437
> gen 87, fitness=0.0033875006805440437
> gen 88, fitness=0.0033875006805440437
> gen 89, fitness=0.0033875006805440437
> gen 90, fitness=0.0033875006805440437
> gen 91, fitness=0.0033875006805440437
> gen 92, fitness=0.0033875006805440437
> gen 93, fitness=0.0033875006805440437
> gen 94, fitness=0.0033875006805440437
> gen 95, fitness=0.0033875006805440437
> gen 96, fitness=0.0033875006805440437
> gen 97, fitness=0.0033875006805440437
> gen 98, fitness=0.0033875006805440437
> gen 99, fitness=0.0033875006805440437
> gen 100, fitness=0.0033875006805440437
done! Solution: f=0.0033875006805440437, s=[0.05632502572719389, -0.014662610864883185]