算法:最大化糕点店的产量.如何没有贪心算法?

Lam*_*sti 1 c algorithm

这里的问题是:

你有一份成分清单(假设它们的价值单一)及其各自的数量和产品清单.每种产品都有一个价格和配方,其中包含所需的成分和数量.

您需要的是使用给定成分最大化这些产品的总收益.

我想到的第一件事就是创造一个价格/(n°需要的项目)比率并开始创造具有最高比率的产品.我知道这是一种贪婪的算法(如果我没有错),并不总能找到最佳解决方案,但我没有其他可实现的想法.

另一种方式可能是暴力破坏所有可能性,但我无法实现如何实现它; 我对蛮力不太熟悉.我的第一个蛮力算法是这个算法,但它很容易,因为它与数字有关,而且之后的元素不会被前面的元素排除.

这里的情况有所不同,因为下一个元素是可用成分的函数,它们受到以前产品的影响,等等.

你有什么提示吗?这是某种功课,所以我不喜欢直接的解决方案,而是从一开始就有所作为!


我必须使用的语言是C.

提前谢谢了 :)

com*_*orm 5

我首先尝试将其视为线性编程问题; 有一些算法可以有效地解决它们.

如果你的问题不能接受一小部分项目,那么它实际上是一个整数编程问题.有一些算法可用于解决这些问题,但一般来说,准确解决大整数编程问题可能很困难(如同耗时).

请注意,线性编程解决方案可能是整数编程解决方案的良好第一近似值,例如,如果您的生产数量很大.