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.0033875006805440437done! Solution: f=0.0033875006805440437, s=[0.05632502572719389, -0.014662610864883185]