This repository was archived by the owner on Sep 12, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdecoder.py
More file actions
59 lines (53 loc) · 1.65 KB
/
Copy pathdecoder.py
File metadata and controls
59 lines (53 loc) · 1.65 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
56
57
58
59
import numpy as np
def getFitness(el, bidsValue, goodsNumber, bids):
element = el.copy()
for x in range(0, len(element)):
saving = [x, element[x]]
element[x] = saving
element.sort(reverse=True, key=lambda x: x[1])
markedGoods = np.zeros(goodsNumber)
fitness = 0
for x in element:
flag = False
for y in bids[x[0]]:
if markedGoods[y] == 1:
flag = True
if not flag:
fitness += bidsValue[x[0]]
for y in bids[x[0]]:
markedGoods[y] = 1
return round(fitness, 5)
def getFitnessLocalSearch(vector, bids, bidsValue, goodsNumber):
fitness = 0
markedGoods = np.zeros(goodsNumber)
for x in vector:
flag = False
for y in bids[x]:
if markedGoods[y] == 1:
flag = True
if not flag:
fitness += bidsValue[x]
for y in bids[x]:
markedGoods[y] = 1
return round(fitness, 5)
def getFitnessAndStats(el, bidsValue, goodsNumber, bids):
element = el.copy()
for x in range(0, len(element)):
saving = [x, element[x]]
element[x] = saving
element.sort(reverse=True, key=lambda x: x[1])
list = []
markedGoods = np.zeros(goodsNumber)
fitness = 0
for x in element:
flag = False
for y in bids[x[0]]:
if markedGoods[y] == 1:
flag = True
if not flag:
fitness += bidsValue[x[0]]
#list.append(bids[x[0]])
list.append(bids.index(bids[x[0]]))
for y in bids[x[0]]:
markedGoods[y] = 1
return round(fitness, 5), list