【问题标题】:Resource Allocation Algorithm with Constraints有约束的资源分配算法
【发布时间】:2019-02-19 19:06:59
【问题描述】:

我知道存在一些算法来解决我的问题,但我在命名它和相关的解决方案时遇到了问题。 这是我的问题:

  • 我有一套装有钱的钱包
  • 我有一套 P 项目,我可以花我的钱
  • 每个钱包 w 有一个金额 M,我只能将这笔钱花在几个项目上,而且只有特定金额
  • 每个项目 p 需要一笔钱 d

目标:最大限度地分配我的钱包资金,以便我可以为我的大部分项目提供资金。

另外,我宁愿让我的所有项目获得 95% 的资助,而不是让一些项目获得 100% 的资助而其他项目获得 0% 的资助。

所以我猜想最小化的函数是所有 (d-(分配给这个项目的所有资金))² 的总和,假设我没有足够的钱来资助我的所有项目

示例:

我的第一个钱包里有 100 欧元,我可以在项目 1 上花费 70%,在项目 3 上花费 20%,在项目 3 上花费 10%

我的第二个钱包有 200 欧元,我可以将 30% 用于项目 1,50% 用于项目 2,20% 用于项目 3。

关于我的项目:

  1. 项目 1 至少需要 120 欧元
  2. 项目 2 至少需要 100 欧元
  3. 项目 3 至少需要 110 欧元

感谢您的帮助!

【问题讨论】:

  • 请按照您创建此帐户时的建议阅读并遵循帮助文档中的发布指南。 On topichow to ask... the perfect question 在此处申请。 StackOverflow 不是设计、编码、研究或教程资源。但是,如果您遵循您在网上找到的任何资源,进行诚实的编码尝试并遇到问题,那么您将有一个很好的示例可以发布。
  • 您的规范将问题简化为货币金额的简单线性组合。目前给出的问题描述似乎只需要简单的代数分析,而不是特殊的算法。

标签: algorithm resources allocation schedule


【解决方案1】:

您可以将其表述为最大流量问题。将源顶点连接到钱包对应的顶点,其中每条弧的容量就是钱包中的货币数量。将项目对应的顶点连接到汇顶点,其中每条弧的容量是该项目所需的金额。使用弧线将钱包连接到项目,弧线的容量反映了该钱包中可用于该项目的金额。

处理分段二次目标有点棘手。幸运的是,它是凸的,所以我敢打赌你可以使用二次规划求解器来获得良好的效果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多