Commit 5aee3fb3 authored by johann dreo's avatar johann dreo
Browse files

fix: number of dimensions

parent 23994e2b
...@@ -8,11 +8,12 @@ from . import x,y,pb ...@@ -8,11 +8,12 @@ from . import x,y,pb
# Objective functions # Objective functions
######################################################################## ########################################################################
def cover_sum(sol, domain_width, sensor_range): def cover_sum(sol, domain_width, sensor_range, dim):
"""Compute the coverage quality of the given array of bits.""" """Compute the coverage quality of the given array of bits."""
assert(0 < sensor_range <= math.sqrt(2)) assert(0 < sensor_range <= math.sqrt(2))
assert(0 < domain_width) assert(0 < domain_width)
assert(len(sol)>0) assert(dim > 0)
assert(len(sol) >= dim)
domain = np.zeros((domain_width,domain_width)) domain = np.zeros((domain_width,domain_width))
sensors = to_sensors(sol) sensors = to_sensors(sol)
cov = pb.coverage(domain, sensors, sensor_range*domain_width) cov = pb.coverage(domain, sensors, sensor_range*domain_width)
......
...@@ -21,11 +21,12 @@ def to_sensors(sol): ...@@ -21,11 +21,12 @@ def to_sensors(sol):
return sensors return sensors
def cover_sum(sol, domain_width, sensor_range): def cover_sum(sol, domain_width, sensor_range, dim):
"""Compute the coverage quality of the given vector.""" """Compute the coverage quality of the given vector."""
assert(0 < sensor_range <= domain_width * math.sqrt(2)) assert(0 < sensor_range <= domain_width * math.sqrt(2))
assert(0 < domain_width) assert(0 < domain_width)
assert(len(sol)>0) assert(dim > 0)
assert(len(sol) >= dim)
domain = np.zeros((domain_width,domain_width)) domain = np.zeros((domain_width,domain_width))
sensors = to_sensors(sol) sensors = to_sensors(sol)
cov = pb.coverage(domain, sensors, sensor_range*domain_width) cov = pb.coverage(domain, sensors, sensor_range*domain_width)
......
...@@ -93,7 +93,8 @@ if __name__=="__main__": ...@@ -93,7 +93,8 @@ if __name__=="__main__":
val,sol = algo.greedy( val,sol = algo.greedy(
make.func(num.cover_sum, make.func(num.cover_sum,
domain_width = the.domain_width, domain_width = the.domain_width,
sensor_range = the.sensor_range), sensor_range = the.sensor_range,
dim = d * the.nb_sensors),
make.init(num.rand, make.init(num.rand,
dim = d * the.nb_sensors, dim = d * the.nb_sensors,
scale = the.domain_width), scale = the.domain_width),
...@@ -108,7 +109,8 @@ if __name__=="__main__": ...@@ -108,7 +109,8 @@ if __name__=="__main__":
val,sol = algo.greedy( val,sol = algo.greedy(
make.func(bit.cover_sum, make.func(bit.cover_sum,
domain_width = the.domain_width, domain_width = the.domain_width,
sensor_range = the.sensor_range), sensor_range = the.sensor_range,
dim = d * the.nb_sensors),
make.init(bit.rand, make.init(bit.rand,
domain_width = the.domain_width, domain_width = the.domain_width,
nb_sensors = the.nb_sensors), nb_sensors = the.nb_sensors),
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment