我需要解决一个问题。我有 5 台设备。它们都有4种I/O类型。并且有一个目标输入/输出组合。第一步,我想找到设备之间的所有组合,使得所选设备的总 I/O 数量都等于或大于目标值。让我解释:
# Devices=[numberof_AI,numberof_AO,numberof_BI,numberof_BO,price]
Device1=[8,8,4,4,200]
Device1=[16,0,16,0,250]
Device1=[8,0,4,4,300]
Device1=[16,8,4,4,300]
Device1=[8,8,2,2,150]
Target=[24,12,16,8]
Run Code Online (Sandbox Code Playgroud)
也有一些限制。在组合中,最大。设备数量最多为 5 个。
第二步,在找到的组合中,我会选择最便宜的一个。
实际上,我设法用Python中的for循环解决了这个问题。我工作起来很有魅力。但即使我使用 cython 也需要太多时间。
对于此类问题,我还可以从哪些其他选择中受益?