回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我想用Python解决一个问题(就像一个编程谜语)。这不是一个练习或任何与此相关的事情,而是我想找到一个解决办法。在</p>
<p>问题描述:</p>
<ul>
<li>假设我的公司有10个不同的工作岗位。在</li>
<li>每个位置都有几个不同的子位置。例如(攻击性,放松,正常)。但是,每个职位的子职位并不相同。其他有1个,其他有2个,其他3个。在</li>
<li>我有20个人,每个职位都有他们的表现分数。在</li>
</ul>
<p>企业生产的最终得分将是每个岗位的得分之和。我想找到得分最高的组合。在</p>
<p>一些想法:</p>
<ul>
<li>因为就业人数不会少于所有的人。在</li>
<li>我不能让两个人处于同一位置。在</li>
<li><strong>我的第一次尝试</strong>是在每个人中取最高分,然后逐一填补所有职位。但这最终带来了一个问题。类似于旅行推销员的问题。在</li>
</ul>
<p>那么,我的下一个选择是什么?有没有Python实现的想法?在</p>
<p>编辑:更多关于Python的细节</p>
<pre><code>positionslist = [pos1, pos2, pos3, pos4, pos5, pos6, pos7, pos8, pos9, pos10]
subpositions = {"pos1":["A","B"], "pos2":["B","C"],"pos3":["A","B","C"],"pos4":["A"],"pos5":["A","B"],"pos6":["A","B","C"],"pos7":["B"],"pos8":["C"],"pos9":["A","C"],"pos10":["A"]
peoplelist = [{"pos1 A":15,"pos1 B": 8, "pos2 B": 2, "pos2 C": 4, "po3 A": 2, "pos3 B":5...}, {"pos1 A":1, "pos1 B":23,"pos2 B":11,.....},.........]
#run the code
print "best combination:" result
best combination:
pos1 B, person 3, score 23
pos2 C, person 5, score 11
pos3 A, person 18, score ..
pos4
pos5
pos6
pos7
pos8
pos9
pos10
Total Score: ....
</code></pre>
<p>如前所述,我在伪代码中的实现是:</p>
^{pr2}$
<p>然而,这类似于旅行商问题,最终得到的组合不是最高的。在</p>