利润取决于分配的多对一分配问题

问题描述

很抱歉在短时间内提出了类似的问题。此问题与 my previous post 类似,但略有不同。

对于M 个任务和N 个人,这仍然是一个多对一匹配问题。每个任务只能分配给一个人,一个人可以获得多个任务。但是,分配任务时有三种不同的收益,一种是针对任务本身,一种是针对获得任务的人,一种是针对整体收益。所有三个利润都可以是正的也可以是负的。只有当任务和人的总利润都是正数时,才可以将任务分配给一个人。此外,任务和人员的利润取决于分配给人员的任务组合。目标是最大化总利润。

例如,如果任务i被分配给j,我们表示G={ij}。那么,任务得到PG->i,人得到PG->j,整体收益为PG=P G->j+PG->i。如果是这种情况,PG->j、PG->i 和 PG 必须为正。否则,赋值失败。

一个例子:如果我们有两个任务 ii+1一个j,我们可以有可能的分配: G1={i,j},G2={i+1,j} 和 G3={ii+1j}。假设 PG1->j,PG1->i,PG1、PG2->i+1、PG2 为正,而 PG2->j 为负,则有以下赋值:

  1. 仅将任务 i 分配给人员 j
  2. 如果 PG3-,则将任务 ii+1 分配给人员 j >j > 0 和 PG3 > PG1。注意 PG3->j 不等于 PG2->j+PG1->j 和 PG3 不等于 PG1 + PG2.

注意:将任务i+1分配给j是不可能的,因为PG2->j

"PG3 不等于 PG1 + P G2" 表示我们每次尝试给一个人分配一个加法任务时都需要重新计算利润(和我之前帖子的问题不同) .我们仍然可以通过贪心算法获得次优解。但是,我想知道这是否是一个 np-hard 问题,因为似乎获得最佳解决方案的唯一方法是对所有组合进行全面搜索,这表明计算开销非常高。

除了对所有组合进行全搜索之外,是否还有多项式时间算法可以解决这个问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)