【发布时间】:2014-03-19 13:02:16
【问题描述】:
我一直在尝试解决这个线性规划问题。
您想创建一个包含特征 F 列表的网站,这些特征有 n 个元素长。每个特性都有一个对应的值,表示实现它需要多长时间。由于您不知道如何编程,因此您寻求 m 程序员朋友的帮助。你的每个朋友都有三个属性 Preferences:(他们喜欢编程的特性列表,这是 F 的一个子集) 小时数:他们愿意工作的时间 成本:他们每小时收取的金额 请注意,如果您的朋友使用了他们不喜欢的功能,他们只会向您收费。
总结 对于 i = 0 到 n,
F(i) = 第 i 个特征
Ti = 编程第 i 个特征所需的时间
对于 i = 0 到 m,
M(i) = ith 程序员
P(i) = ith 程序员的首选功能
C(i) = $/hr 第 i 个程序员将因开发他不喜欢的功能而收费
h(i) = 第 i 个程序愿意工作的小时数 我们需要提出一个线性规划公式,它将
完成所有功能或找出是否不可能
最小化成本
到目前为止,我所做的线性规划问题通常是农民想要种植 2 种作物。所以这对我来说真的很新而且很难。 我的方法是为每个程序员设置一组不等式,但这里的主要问题是,对于某些功能,他们不收费,而有些功能却收费。我不确定如何正确地将其纳入配方中。另外,要记住的一点是,程序员可以在一个功能上工作一个小时,然后离开,让另一个程序员接手
【问题讨论】:
-
在编程世界中,您正在制作一个关于线程和时间管理的算法。我会谷歌搜索如何优化变量的线程。例如:线程 1 可能最擅长计算图形,因为它可以访问 GPU,而线程 2 可能有很多内存,允许它存储大型集合等。这 2 个线程会使相应的任务更重,并且只会选择在其他没有繁重任务的情况下,它喜欢计算
-
你需要的变量是 x(i, j),我在功能 j 上工作了多少程序员。
-
好的,你能再解释一下吗,因为我还没有见过这样声明的变量。我猜约束是 x = 0 和所有 x 的总和 >= 所有 Ti 的总和但我仍然觉得我错过了如何以最佳方式将每个程序员分配给他的功能
-
因为“一个程序员可以在一个功能上工作一个小时,然后离开它,让另一个程序员接手”,从这个词的通常意义上来说,这并不是你正在寻找的真正的任务.下一步是确定一个可行的目标。
标签: algorithm linear-programming