-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathplotter_dot_diversity.py
More file actions
55 lines (48 loc) · 7.63 KB
/
plotter_dot_diversity.py
File metadata and controls
55 lines (48 loc) · 7.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import matplotlib.pyplot as plt
# mutation before crossover 9 rounds
fitnesses = [
[0.060098706249532785, 1.8048513214852618e-05, 0.018055976300312842, 1.1639417860113215, 0.08486505017505162, 0.39243330986109287, 0.003434509755994287, 0.15695146990449793, 0.2885575118882561, 0.23270895406862277, 0.2841799392924568, 0.1082450369844673, 0.34002800107661096, 0.33728891520754034, 0.0001370696169499695],
[0.00012080942073634533, 0.525556657490705, 0.6181731505586809, 0.0457743763025534, 0.28381227652297236, 0.17677314300357921, 0.22839372988208312, 0.8705096561427941, 0.5462136793420685, 0.3545674949078348, 0.08477258970223323, 0.5750232106605268, 0.1845476358685637, 0.5533441672521435, 0.0002066243025887304],
[0.29768997880767606, 0.6406503154903425, 0.0006263840966893745, 0.12413984038015888, 0.8414079360466497, 0.1324992019003506, 9.6383418472972e-05, 0.5809273718719554, 0.16502753511701665, 2.1751616644336974e-05, 5.540934868187837e-05, 0.28257059997105616, 0.19168587286156363, 0.23542030056086558, 0.00026950202912054964],
[0.00013505817591599688, 8.02974121296366e-05, 4.524198423820163e-05, 0.5373687958133408, 0.05253935020784083, 9.844380243426592e-05, 0.00011693425729591713, 0.0001002166155614258, 0.7300168617886261, 6.242579589625183e-05, 0.00011172453741311293, 0.004095599858125608, 0.3112754810805692, 4.4498939914444696e-05, 0.00019651232232638317],
[0.00014803748862362204, 0.7146090007811977, 0.8153291787956564, 0.00026088913851316875, 0.0, 0.0001524642023362741, 0.00021866717774109444, 0.00019785623041759537, 1.334056570556392, 1.128054875158371, 0.42897813665031065, 0.49556489785694685, 0.1910643197339087, 0.00021330606332227404, 0.00011696944209169596],
[8.957986293894115e-05, 0.7540312292313056, 0.00011350898418719837, 0.00015834616564366802, 1.2771456121737554, 7.642280218626692e-05, 0.663319754289851, 7.777238406099915e-05, 0.0005140807794830392, 0.0, 0.717423177045996, 0.00010921347178030746, 0.0034293500124927003, 0.00021413405035862511, 3.8420812297586e-05],
[0.718960534991578, 5.140881501036702e-05, 0.435419990697752, 8.720348104736635e-05, 8.533487778537419e-05, 0.404389105736521, 0.5631704936854702, 0.5336948775844845, 0.00021867942762232026, 0.00011248602115677828, 0.0054624137132719104, 1.1264356975067686, 0.6863363066661403, 0.576828657751163, 0.0007071179932783874],
[0.00018512342658967516, 0.0032798917686100836, 0.140967678959524, 1.0351415201301242, 6.07656815802631e-05, 0.8963828767033867, 0.006297638404514525, 0.00023323281387924099, 0.001898076634887177, 0.00030806639399500114, 5.948909238536318e-05, 0.0017544066541932038, 0.0016644714794376183, 0.0020250989679733325, 0.0031089731981572746],
[0.00563204527083449, 8.518460855194927e-05, 0.5324176007553236, 0.0012386590551331659, 8.863696478593183e-05, 8.213331236953747e-05, 1.951294059321132e-05, 9.504557767453774e-05, 0.0001973697057093229, 0.000191554560702078, 0.0002773896380690934, 0.0024232673940101815, 0.0001876221617456174, 0.00022647775926891341, 0.0013298464706175705],
[0.00015121024561197432, 0.00020452664460554, 5.9551913625244773e-05, 0.0005904843611133505, 0.0017078294902362944, 0.0003192002665436778, 0.00024124325135380074, 0.004564229511709824, 0.0002898134031063244, 0.0003749558493676069, 0.00012315067131487157, 0.003794593937015458, 0.0002769902346886143, 0.00020115510557974908, 0.008211867885052864],
[0.00011155271215962182, 0.0003593210597622076, 0.000275047847361361, 0.001044186664690332, 0.0004277654227284528, 0.0002455243768975336, 0.00010065877431781635, 0.019859197619850125, 0.00820527786180007, 0.0023759366642875186, 0.0011100177007118352, 0.00018900042239062688, 0.001096190897215546, 0.001009563876679716, 0.004545167849222379],
[1.716095999938443e-05, 0.0002230735311277552, 0.002328310647617589, 0.006537094318544513, 0.00010552976717191871, 0.0002287282913968469, 5.845339812699125e-05, 0.00010451251191716707, 0.0001473418250297, 0.00010557009173371141, 0.0019918785390392914, 0.00017984714586358544, 0.00017121213844395827, 0.00010730897224113279, 0.0017149697986861426],
[0.008384532367036167, 0.00021044587855458327, 0.00020925659658996436, 0.00021751271154814853, 7.968903357583085e-05, 0.00020998665102039136, 6.878546347725064e-05, 0.0008907624454291404, 0.00014011603896928982, 0.00024152190420031352, 0.00014754475782186737, 7.236800645880804e-05, 0.00010954235147440973, 0.00023148428385829335, 0.005602534394584231],
[7.662779977047773e-05, 0.00014244783192011738, 0.0026575849718536056, 0.00020766344399864676, 0.003815729750401739, 0.004022229776052847, 0.00014000253575679997, 0.00020201299182108997, 0.0009238347384819029, 0.0006558310635312598, 9.123257914579859e-05, 0.00011942137105445162, 6.347163783691618e-05, 6.937149136727897e-05, 0.0007361773477279788],
[0.0029887763550360135, 5.0143863771042963e-05, 0.0001116228464331527, 0.0001537351209561033, 0.00011324542634782104, 9.484300230436076e-05, 4.253484821344716e-05, 0.0019759210039605383, 0.00016984434916810908, 0.00010287742245049884, 0.0004238064417443757, 0.00017126078611589225, 0.00011992969636164484, 0.0010090970051560369, 0.0001922151859548355],
[5.844638077405695e-05, 9.255404235208139e-05, 8.442595980490768e-05, 0.00015723356773033226, 0.00012318193686267548, 3.524517814877563e-05, 0.00018141834577549906, 0.0003292422519937228, 0.00011603737255769318, 0.00011546463798945779, 0.000159063294965599, 0.0002754438781708795, 0.010715632866945435, 0.00012845626525369365, 0.00013229728786892095],
[0.0003419226884673288, 7.072908333694641e-05, 0.00031709072691928623, 0.00036362861290158166, 0.00011095069073465025, 0.0015025751212778232, 8.785398468331255e-05, 0.00012399795995384624, 0.0003393313290021395, 0.00017502153254443878, 0.00013584177782616656, 0.003927050587459598, 2.6964811197476577e-05, 0.0013197582380145084, 0.00040954786991316897],
[0.029680343191771087, 0.00013365863364046842, 0.00014132644060438888, 0.00012582557220580749, 0.00010327457394626092, 8.47086352844058e-05, 2.5804810867557922e-05, 0.0005765419709109484, 0.00014141498617017877, 7.150049223586271e-05, 0.004390531593847496, 4.449540311683922e-05, 0.0002503567987354762, 4.176930653208828e-05, 5.9555067372573376e-05],
[0.02374836976881813, 0.001646072880164993, 0.0005128802008779194, 0.029354481922775264, 0.00018983028196060275, 0.00035162936120404893, 0.0, 0.0005152314684226712, 0.00019791038582284, 0.00014269332463449783, 0.0002540903581761705, 0.00012530940896815707, 0.000334996731714106, 0.00026640315622948753, 0.00023224385279314551],
[0.00018413947281980067, 0.00025722456563864504, 2.8830828330012952e-05, 0.0001500794160729642, 0.0001436516012657169, 0.0036435305946948865, 0.0001406797464758944, 0.00028341068954864545, 0.00024202978848042645, 3.964128806548191e-05, 7.41109452435597e-05, 0.00012957134072075267, 0.0002335311759414487, 0.0001868676618904049, 0.0003338021851385628]
]
fig, ax = plt.subplots()
for i, sublist in enumerate(fitnesses):
ax.scatter([i]*len(sublist), sublist, color='purple')
# Set the labels and title
ax.set_xlabel('Generations')
ax.set_ylabel('Fitness')
ax.set_title('Dot Plot of Evolutionary Algorithm')
ax.legend()
# Display the plot
plt.show()
# calculate the average distance between the points for each generation
# for each sublist, we iterate through every possible pair of points and calculate the distance between them (absolute value)
average_distances = []
for sublist in fitnesses:
total_distance = 0
for i in range(len(sublist)):
for j in range(i+1, len(sublist)):
total_distance += abs(sublist[i] - sublist[j])
average_distances.append(total_distance / (len(sublist) * (len(sublist)-1) / 2))
plt.plot(average_distances)
plt.xlabel('Generation')
plt.ylabel('Average Distance between members of the generations')
plt.title('Diversity of the Population')
plt.show()