Skip to content
Snippets Groups Projects
Commit 9c66b87d authored by Lars Wiebach's avatar Lars Wiebach
Browse files

Lib updated

parent d6311963
No related branches found
No related tags found
No related merge requests found
...@@ -21,10 +21,10 @@ def getDistance(lat1,lon1,lat2,lon2): ...@@ -21,10 +21,10 @@ def getDistance(lat1,lon1,lat2,lon2):
def cost_function(sample,permutation): def cost_function(sample,permutation):
cost = 0 cost = 0
for i in range(0, len(permutation)-1): for i in range(0, len(permutation)-1):
lat1 = sample[permutation[i]][1] lat1 = sample['Breitengrad_DEC'][sample.index[permutation[i]]]
lon1 = sample[permutation[i]][2] lon1 = sample['Laengengrad_DEC'][sample.index[permutation[i]]]
lat2 = sample[permutation[i+1]][1] lat2 = sample['Breitengrad_DEC'][sample.index[permutation[i+1]]]
lon2 = sample[permutation[i+1]][2] lon2 = sample['Laengengrad_DEC'][sample.index[permutation[i+1]]]
cost += math.ceil(getDistance(lat1,lon1,lat2,lon2)) cost += math.ceil(getDistance(lat1,lon1,lat2,lon2))
return cost return cost
...@@ -39,7 +39,7 @@ def swap(liste, x, y): ...@@ -39,7 +39,7 @@ def swap(liste, x, y):
return liste return liste
def add_pos_vel(p1,v): def add_pos_vel(p1,v):
p2=p1 p2=p1.copy()
for i in v: for i in v:
p2 = swap(p2,i[0],i[1]) p2 = swap(p2,i[0],i[1])
return p2 return p2
...@@ -51,11 +51,13 @@ def sub_pos(p1,p2): ...@@ -51,11 +51,13 @@ def sub_pos(p1,p2):
v =list() v =list()
temp1=0 temp1=0
temp2=0 temp2=0
p1_copy = p1.copy()
p2_copy = p2.copy()
for i in range(len(p1)): for i in range(len(p1)):
if(p1[i]!=p2[i]): if(p1_copy[i]!=p2_copy[i]):
temp1=p1[i] temp1=p1_copy[i]
temp2=p2[i] temp2=p2_copy[i]
swap(p1,p1[i],p2[i]) swap(p1_copy,p1_copy[i],p2_copy[i])
v.append((temp1,temp2)) v.append((temp1,temp2))
return v return v
...@@ -63,4 +65,5 @@ def multipl_coeff_vel(c,v): ...@@ -63,4 +65,5 @@ def multipl_coeff_vel(c,v):
newLen = int(np.floor(c*len(v))) newLen = int(np.floor(c*len(v)))
v2 = v[:newLen] v2 = v[:newLen]
return v2 return v2
\ No newline at end of file
...@@ -44,6 +44,8 @@ def pso (n, pop, sample, c1=1/3, c2=1/3, c3=1/3, abort = 50): ...@@ -44,6 +44,8 @@ def pso (n, pop, sample, c1=1/3, c2=1/3, c3=1/3, abort = 50):
# Main-Loop # Main-Loop
for i in range(abort): for i in range(abort):
# Calculate new velocity and position for each particle # Calculate new velocity and position for each particle
for p in population: for p in population:
...@@ -65,11 +67,17 @@ def pso (n, pop, sample, c1=1/3, c2=1/3, c3=1/3, abort = 50): ...@@ -65,11 +67,17 @@ def pso (n, pop, sample, c1=1/3, c2=1/3, c3=1/3, abort = 50):
p.local_attractor_cost=p.cost p.local_attractor_cost=p.cost
if(p.cost<global_attractor_cost): if(p.cost<global_attractor_cost):
print(global_attractor)
print(global_attractor_cost)
global_attractor=p.position global_attractor=p.position
global_attractor_cost = p.cost global_attractor_cost = p.cost
print(global_attractor) print(global_attractor)
print(global_attractor_cost)
print("\n")
......
No preview for this file type
No preview for this file type
No preview for this file type
...@@ -25,11 +25,5 @@ df_set = pd.DataFrame(columns=df.columns) ...@@ -25,11 +25,5 @@ df_set = pd.DataFrame(columns=df.columns)
samp = df.sample(100) samp = df.sample(100)
for i in staedte_liste: for i in staedte_liste:
df_set=df_set.append(df.loc[df['Staedte']==i]) df_set=df_set.append(df.loc[df['Staedte']==i])
b = df_set.drop(['Unnamed: 0', 'Breitengrad', 'Laengengrad'], axis=1)
a = b.values.tolist() pso.pso(len(df_set),40,sample=df_set,abort = 50)
\ No newline at end of file
print(a)
pso.pso(len(a),40,sample=a,abort = 50)
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment