- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
Note: this question is tagged both language-agnostic and python as my primary concern is finding out the algorithm to implement the solution to the problem, but information on how to implement it efficiently (=executing fast!) in python are a plus.
游戏规则:
An
),另一个是B 代理 (Bn
)。 Sn
)可以被占用。问题:
我正在尝试找到一种高效方法来计算A
代理的最佳可能移动,其中“最佳可能移动”是指最大化或最小化占用团队 B
占用的相同位置的机会。 B
队的行动是事先不知道的。
示例场景:
这个场景故意是微不足道的。它只是为了说明游戏机制。
A1 can occupy S1, S2
A2 can occupy S2, S3
B1 can occupy S1, S2
在这种情况下,解决方案很明显:A1 → S1
和 A2 → S2
是保证满足 B1
的选项 [as B1
无法避免占用S1
或S2
],而A2→S3
和A1→随机(S1, S2)
是能够最大程度避免 B1
的机会。
现实生活场景:
在现实场景中,插槽可能有数百个,每个团队中的代理人可能有几十个。到目前为止,我尝试的天真实现的困难在于,我基本上考虑了团队 B
的每组可能的 Action ,并为 A
。因此,我的计算时间呈指数增长。
不过,我不确定这是一个只能通过“蛮力”解决的问题。即使是这种情况,我也想知道:
如果最佳蛮力解决方案必然呈指数增长(时间方向)。
如果有一种方法可以计算出局部最优的非最优解。
谢谢!
最佳答案
两个团队的成员和插槽定义了一个三方图 A-S-B
,边由可能的移动给出。由插槽和仅一个团队的成员组成的二分图很有趣;将这些 A-S
称为团队 A 成员的图形,将这些称为 S-B
用于团队 B 成员。您可以使用 S-B
图为槽位赋值,然后使用 S-A
图选择能够最大化或最小化 A 队值(value)的 Action 。
An appropriate choice for the value of a slot is the likelihood of finding a member of team B in that slot.因此,团队 A 的一组移动的值是插槽值的总和,即,将找到团队 B 成员的预期插槽数。请注意,团队成员的移动不是独立的,因此两个阶段都存在一些挑战。
给定槽的值,为 A 队选择移动成为一个标准问题:assignment problem .这与 missingno 的答案中建议的最大二分匹配有关,但需要考虑插槽的值;可以给边缘赋予等于边缘入射的槽的值的权重,最大加权二分匹配等同于分配问题。使用标准算法来解决(或近似)这部分问题。
那么我们如何给槽赋值呢?我建议只为 B 队的成员生成随机移动,计算插槽被占用的频率,然后将计数除以您考虑的样本移动数。从这个问题中并不清楚生成一组随机 Action 有多难;假设每个团队成员都可以选择留在原地,只需按随机顺序为每个成员随机选择移动即可轻松完成。
两个阶段的一个简化因素是,有一种简单的方法可以将问题分解为独立的子问题。二分图的连接组件显示哪些团队成员可以以干扰其他人的方式移动,例如,如果团队成员在棋盘的不同部分分成两组,则可以独立对待这些组。这适用于两个阶段,即使用 S-B
图对槽进行概率评估,并优化 A-S
图中的分配。当然,如果任何组件足够小,您总是可以枚举可能性并精确地解决子问题。
关于python - 逻辑游戏 : maximising (or minimising) the chances for two agents to meet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8340372/
我目前有一个带有 2 个 Jpanel 的简单 Java GUI,即 panel1 和 panel 2。panel1 用于图像显示和标签显示,它可以正常工作。 面板 2 用于显示 JTable 中的数
嗨,首先我意识到这不是一个直接的编程问题,因为它与数据更多相关,所以如果它需要公平地去其他地方。 我正在尝试从 Maximizer CRM 系统中提取电子邮件消息文本以进行迁移。此信息似乎驻留在 AM
这个问题在这里已经有了答案: JFrame in full screen Java (14 个答案) 关闭 9 年前。 我一直是 OS X 上的 Java 应用程序,还没有机会在不同的地方进行全面测
对于我的网络应用程序中的 JPEG 图像传输,我正在考虑使用 Amazon S3(或 Amazon Cloudfront 如果结果证明是更好的选择)但有两个,可能是相反的, 要求: 图片是私有(pri
Note: this question is tagged both language-agnostic and python as my primary concern is finding out
我一直无法确定这个问题的原因,所以无法展示测试用例,相反,我将我的代码缩小到一个页面,该页面仍然包含错误但没有太多额外内容。 这是链接: http://www.richard-walsh.limewe
我是一名优秀的程序员,十分优秀!