Ejemplo n.º 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"
Ejemplo n.º 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"
Ejemplo n.º 3
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"