将销售人员分配到不同的城市计划

时间:2015-08-18 10:25:42

标签: python algorithm dynamic-programming

我正在研究将8名销售人员分配到8个不同城市的问题,这些城市以下列格式表示。

https://github.com/apache/hive/blob/3b6825b5b61e943e8e41743f5cbf6d640e0ebdf5/shims/0.20S/src/main/java/org/apache/hadoop/hive/shims/Hadoop20SShims.java#L579

该列代表销售人员,行代表城市。

1)分配的条件是: 1)每人只有一个城市 2)一旦城市被分配了销售人员,行和列以及对角城市就不能分配给另一个人

我无法从记忆中重新创建一个例子,对不起,但城市和销售人员的代表是正确的。

我想避免类似销售人员的行或列,我可以使用python中的排列,它会给我一组不同的城市而不会重叠,从那里我可以检查对角线值。

这是我的尝试。

import collections
import itertools

def display (l):
    list_count = 0
    k = ''
    for i in l:
        print i 
        list_count = list_count + 1
        if list_count != len(l):
            k = k + ','



cities =  [1,2,3,4,5,6,7,8]
sales  = [1,2,3,4,5,6,7,8]

print_list = []

count = 0

for i in itertools.permutations([1,2,3,4,5,6,7,8],8): 
    print_list.append(i)
    if count == 2:
        display(print_list)
        #print print_list
        #print '\n'
        for j in range(8):
            print_list.pop()
        count = 0



    count = count + 1

我被困在如何检查销售人员是否与另一位销售人员处于对角线位置,如果有人可以扩展我的方法,那将是很好的,想要任何其他解释,会有所帮助,我想要python,因为我在练习在它。

0 个答案:

没有答案