有具有以下正量的来源:并且有具有以下正量的目的地:. 众所周知. 每个源都将使用其体积来填充一个或多个目的地。如果一个来源填满一个目的地,我们支付为了它。如果满了我们支付的目的地为了它。问题是使用来源填充目的地,以使价格尽可能低。
我需要帮助提出解决问题的算法。
坦率地说,我在这里很迷茫,无法想出至少比遍历所有可能的填充物并选择价格最低的算法更好的算法。
我思考的事情是按升序对源进行排序,然后逐个取源,但我无法证明这种方法的正确性。
有具有以下正量的来源:并且有具有以下正量的目的地:. 众所周知. 每个源都将使用其体积来填充一个或多个目的地。如果一个来源填满一个目的地,我们支付为了它。如果满了我们支付的目的地为了它。问题是使用来源填充目的地,以使价格尽可能低。
我需要帮助提出解决问题的算法。
坦率地说,我在这里很迷茫,无法想出至少比遍历所有可能的填充物并选择价格最低的算法更好的算法。
我思考的事情是按升序对源进行排序,然后逐个取源,但我无法证明这种方法的正确性。
让您的决策变量为和, 在哪里是生产者生产的数量发送给消费者.是一个二进制变量,如果生产者为 1向消费者发送任何东西, 否则为 0。
您的目标是最小化成本函数:
通常,整数程序要求您使用分支定界算法。但是,由于这个问题中唯一的整数变量被限制为二进制变量,我相信你可以把作为连续并使用线性规划求解器解决问题。
如果您对用于求解线性程序的算法特别感兴趣,您应该搜索“Dantzig 单纯形算法”,这是解决中等到中等大小的线性程序的最常用方法。对于更大规模的问题,“内点”求解器往往比基于单纯形的求解器执行得更好。