コード例 #1
0
def test3():
    maxinrange = 2 
    maxoutrange = 4
    set1 = [i+1 for i in xrange(maxinrange)]
    set2 = [i+4 for i in xrange(maxoutrange)]
    edges = [(1,4,3),(1,5,4),(2,4,1),(2,6,3),(2,7,10)]
    m = BipartiteMatching(set1,set2,edges,[5 for i in xrange(maxinrange)],[5 for i in xrange(maxoutrange)])
    start = time.clock()
    res = m.match()
    end = time.clock()
    print res
    assert res[1] == [(1, 5), (2, 4)]
    print "Elaspsed Time = ",end-start,"seconds"
コード例 #2
0
def test_with_capacities():
    maxinrange = 2 
    maxoutrange = 4
    set1 = [i+1 for i in xrange(maxinrange)]
    set2 = [i+4 for i in xrange(maxoutrange)]
    edges = [(1,4,4),(1,5,2),(2,5,1),(2,6,2),(1,7,10)]
    capacities = [2,1]
    m = BipartiteMatching(set1,set2,edges,[10 for i in xrange(maxinrange)],[10 for i in xrange(maxoutrange)], capacities)
    start = time.clock()
    res = m.match()
    end = time.clock()
    print res
    assert res[1] == [(1, 4), (1, 5), (2, 6)]
    print "Elaspsed Time = ",end-start,"seconds"
コード例 #3
0
def test3():
    maxinrange = 2
    maxoutrange = 4
    set1 = [i + 1 for i in xrange(maxinrange)]
    set2 = [i + 4 for i in xrange(maxoutrange)]
    edges = [(1, 4, 3), (1, 5, 4), (2, 4, 1), (2, 6, 3), (2, 7, 10)]
    m = BipartiteMatching(set1, set2, edges, [5 for i in xrange(maxinrange)],
                          [5 for i in xrange(maxoutrange)])
    start = time.clock()
    res = m.match()
    end = time.clock()
    print res
    assert res[1] == [(1, 5), (2, 4)]
    print "Elaspsed Time = ", end - start, "seconds"
コード例 #4
0
def test_with_capacities():
    maxinrange = 2
    maxoutrange = 4
    set1 = [i + 1 for i in xrange(maxinrange)]
    set2 = [i + 4 for i in xrange(maxoutrange)]
    edges = [(1, 4, 4), (1, 5, 2), (2, 5, 1), (2, 6, 2), (1, 7, 10)]
    capacities = [2, 1]
    m = BipartiteMatching(set1, set2, edges, [10 for i in xrange(maxinrange)],
                          [10 for i in xrange(maxoutrange)], capacities)
    start = time.clock()
    res = m.match()
    end = time.clock()
    print res
    assert res[1] == [(1, 4), (1, 5), (2, 6)]
    print "Elaspsed Time = ", end - start, "seconds"
コード例 #5
0
def test(maxinrange = 3 ,maxoutrange = 2,deg = 1):
    print "test"
    set1 = [i for i in xrange(maxinrange)]
    set2 = [i+3 for i in xrange(maxoutrange)]
    edges = []
    for ni in set1:
        prevconnect = []
        for d in xrange(deg):
            newid = set2[randint(0,maxoutrange-1)]
            if not newid in prevconnect: # check for not connecting 2 times the same elements
                edges.append((ni,newid,uniform(0,10)))
                prevconnect.append(newid)
    print edges
    print set1,set2
    m = BipartiteMatching(set1,set2,edges,[20 for i in xrange(maxinrange)],[20 for i in xrange(maxoutrange)])
    print "Debut Matching" 
    start = time.clock()
    res = m.match()
    print res
    end = time.clock()
    print "Elaspsed Time = ",end-start,"seconds"
    print "Matching"
コード例 #6
0
def test(maxinrange=3, maxoutrange=2, deg=1):
    print "test"
    set1 = [i for i in xrange(maxinrange)]
    set2 = [i + 3 for i in xrange(maxoutrange)]
    edges = []
    for ni in set1:
        prevconnect = []
        for d in xrange(deg):
            newid = set2[randint(0, maxoutrange - 1)]
            if not newid in prevconnect:  # check for not connecting 2 times the same elements
                edges.append((ni, newid, uniform(0, 10)))
                prevconnect.append(newid)
    print edges
    print set1, set2
    m = BipartiteMatching(set1, set2, edges, [20 for i in xrange(maxinrange)],
                          [20 for i in xrange(maxoutrange)])
    print "Debut Matching"
    start = time.clock()
    res = m.match()
    print res
    end = time.clock()
    print "Elaspsed Time = ", end - start, "seconds"
    print "Matching"