在1000个地点中,250个地点有资格设立商店。我想要选择这250个地区中的5个地方,这样它可以最大化来自所选地点的社区的利润总和,并且这些地点相距至少5英里。给出了人们从一个地方到另一个地方旅行的意愿(定义该地点的邻居)
我尝试过整数编程,但在定义目标函数时遇到了问题。任何可以解决这个问题的聚类/优化技术?
编辑:
假设:
目标:
最大化5个集群的利润,其中每个集群包含一个选定的位置以及人们愿意前往所选位置的所有位置。
约束:
答案 0 :(得分:2)
受限制的完整枚举应该针对此问题大小执行:
您正在处理的问题是: http://en.m.wikipedia.org/wiki/Quadratic_assignment_problem
接近这些的经典启发式是分支和绑定,遗传,退火。完整的枚举将用于验证启发式是否能够在小问题规模上有效地接近全局最小值。
答案 1 :(得分:0)
如果我正确理解您的问题,您需要以下内容:
让变量Li
代表被选中的位置i
。 (i = 1..250)
让Si = {Lj for all j such that distance(Li, Lj) <= 5 miles}
让Ci
为常量,表示Li
约束是:
Sum Si <= 1
Li = 1 or 0
Sum(Li for all i) == 5
目标函数是
最大化Sum(Li*Ci for all i)