【发布时间】:2014-06-25 01:52:51
【问题描述】:
我有一个现实世界的问题,我认为需要对我关心的数据数组进行某种比简单排序更大的优化。我将在下面概述问题:
我有一个由不同设备组成的数据集,每个设备都有属性 A 和 B。A 和 B 不相互依赖,但是,我想以特定方式打包其中 3 个设备。
选择的 3 个设备之间的 A 值应该彼此相似。
B 值也应该彼此相似。
例如,在这个数据中,有:
250 台设备(A 和 B 各有一个值)
A 的 90 个唯一值
B 的 36 个唯一值
最终,这些设备应该三包在一起,分别在 A 值和 B 值之间取得良好的平衡。对于每个属性,如果没有包含每个标准的相同值的三元组,也可以使用相邻的 bin。
我想将这些设备分成 3 个包,因为在限制条件下可以有尽可能多的包。
所以我的问题是:这是一个什么样的组合问题,有什么方法可以在 Python 中实现它?非常感谢有关这些类型问题的任何资源,因为我对这个引人入胜的主题相当陌生。
如果解释的任何部分不清楚,请告诉我,我会尽力澄清。谢谢!
为清晰起见进行编辑: 以下是一些示例数据:
DeviceNumber = [1,2,3,4,5,6]
A = [0.3, 0.3, 0.4, 0.2, 0.3, 0.4]
B = [0.02, 0.04, 0.03, 0.02, 0.02, 0.03]
我希望它对它进行分组,以便
模块 1 将具有设备 1、4、5
模块 2 将具有设备 2、3、6
让我们假设 A 和 B 的数据是正态分布的。
我想我正在尝试将 A 值和 B 值之间的差异最小化,并找到将它们按三组分组的方法。
编辑 2: 所以,数据在起作用,而我现在不在,但这里有一些图表,我用 12 台设备绘制了 A 和 B 的值分布
多个设备具有相同的 A 值。这些设备之间也可能具有相似的 B 值。如果是这样,我想将其中三个放在一起,删除它们,然后重复检查值和分组。随着匹配的减少,我想扩大我的分组搜索条件。
我希望这能解决更多问题。再次感谢迄今为止的所有反馈!
【问题讨论】:
-
如何定义 3 个唯一值之间的相似性?
-
对于唯一值,相似是什么意思? A 和 B 的唯一值在总共 250 个中的分布有多均匀? A & B 的所有值都有效吗?尺寸有问题吗?
-
分布相当正常,所有值都有效。这些值是每个设备的固有属性。你指的是什么尺寸?我试图通过对原始帖子的编辑来进一步澄清。
-
我指的是 a&b 的所有组合以及包装物品的物理尺寸。
-
也许包装对我来说不是最好的术语,我的意思是值 a 和 b 是我的约束,我必须选择 3 个设备(具有这两个独立值)来打包垃圾桶。因此,本身并没有大小,而是 a 值与 b 值一致性的次要目标之间的相对一致性。
标签: python algorithm optimization