【发布时间】:2019-06-06 09:22:00
【问题描述】:
我需要解决一个优化问题,其中租户必须根据首选位置和邻居占用房屋。
这是输入:
n 个房子:h1,h2,...,hn, m 个租户:t1,t2,...,tm
选择: 每个租户必须根据优先级 1-第一优先级、2-第二优先级、3-第三优先级选择最多 3 个位置。 每个租户必须根据优先级选择最多 3 个邻居 1-第一优先级、2-第二优先级、3-第三优先级(也可以是不居住的人...)
例如: t1 想住在房子里: 最高优先级(1):h12 中优先级 (2):h5 最低优先级(3):h3
t1 希望以下内容成为他的邻居: 最高优先级 (1):t5 中等优先级 (2):t15 最低优先级 (3):t6
- 对于所需位置和邻居之间的平衡,可以考虑(非强制性)一个加权因子,例如,对于希望他的朋友对他关闭但不关心他的房子将在哪里的租户来说,0 位置和 1 个邻居位于,或 1 个位置和 0 个邻居用于想要高优先级位置且不关心他的邻居是谁的租户(0.5 个位置和 0.5 个邻居用于希望算法平等平衡其选择的租户)
我正在寻找一种优化算法来提供最佳解决方案(如果存在),以便根据输入占用所需房屋中的租户。 这是什么类型的问题?优化?解决此类问题的最佳方法是什么?线性规划? 注意:可以更改输入以简化解决方案或让算法更可靠地收敛。
我如何数学公式化: (1)表示房屋(生成树?)的房屋位置邻近关系,如何表示距离较近或较远的房屋? (2) 具有优先级的相邻关系(租户想住在 X 旁边但不想住在 Y 旁边)? 如何将这些条件/约束写成方程式?
我需要一个好的起点,学术论文,想法,文档,如何解决这个问题。
非常感谢您的帮助!
我可以使用 Matlab、Python 或任何编码语言/平台来测试想法。
【问题讨论】:
-
我已经使用混合整数规划模型来解决类似的问题。
-
这不完全符合您的问题,但您可能会发现 stable roommates problem 的方法和目标函数很有帮助。
标签: algorithm optimization combinatorics linear-programming