def test_checkMsgsFromNeighbors(self): # 1 - wezel nie moze przystapic, bo jakis jego sasiad o wyzszym stopniu sie zaznaczyl # 2 - wezel moze przystapic, bo co ma sasiadow o wyzszym stopniu, ale nie zaznaczonych # 3 - wezel nie moze przystapic, bo ma sasiada o tym samym stopniu z wyzszym ID ktory sie zaznaczyl # 4 - wezel moze przystapic, bo ma sasiada o tym samym stopniu, ale nie zaznaczonego # 1: node = Node(5) node.memory['neighbors_cp'] = [0] msg = Message(0, 5, {'is_marked':'marked', 'degree':2}) alg = FastMIS(None) result = alg.checkMsgsFromNeighbors(node, [msg]) self.failUnless(result == False)
def compute(): MIN = 50 MAX =5000 step = 500 repetitions = 100 adjMatrix = [] alg = None network = None tempCommSum = 0 commTimes = [] tempAlgSum = 0 algTimes = [] for n in range(MIN, MAX, step): tempCommSum = 0 tempAlgSum = 0 for k in range(repetitions): adjMatrix = getPlanarGraph(n) network = Network(adjMatrix) alg = FastMIS(network) alg.execute() print k tempAlgSum += alg.roundCounter tempCommSum += network.algCommRoundCounter print n, 'time: ', datetime.now() commTimes.append(tempCommSum/float(repetitions)) algTimes.append(tempAlgSum/float(repetitions)) fileName = '/home/julka/100_reps/fast_MIS_planar_graph_comm.txt' save(commTimes, fileName) fileName = '/home/julka/100_reps/fast_MIS_planar_graph_alg.txt' save(algTimes, fileName)
def test_checkIfUndecidedExists(self): adjacencyMatrix = getUnitDiskGraph(10) network = Network(adjacencyMatrix) alg = FastMIS(network) alg.initiate() result = alg.checkIfUndecidedExists() self.failUnless(result == True) # zmiana stanow wezlow for node in network.ndList: node.memory['state'] = 'in_MIS' result = alg.checkIfUndecidedExists() self.failUnless(result == False) network.ndList[8].memory['state'] = 'unmarked' result = alg.checkIfUndecidedExists() self.failUnless(result == True)
def test_execute(self): adjacencyMatrix = getUnitDiskGraph(200) network = Network(adjacencyMatrix) alg = FastMIS(network) alg.execute() # self.drawGraph(network.ndList, adjacencyMatrix) # sprawdzenie wlasnosci wyliczonego MIS self.checkIfMISisCorrect(network.ndList) # graf Yao adjacencyMatrix = getYaoGraph(15, 6) network = Network(adjacencyMatrix) alg = FastMIS(network) alg.execute() self.drawGraph(network.ndList, adjacencyMatrix) # sprawdzenie wlasnosci wyliczonego MIS self.checkIfMISisCorrect(network.ndList) # graf planarny adjacencyMatrix = getPlanarGraph(10) network = Network(adjacencyMatrix) alg = FastMIS(network) alg.execute() self.drawGraph(network.ndList, adjacencyMatrix) # sprawdzenie wlasnosci wyliczonego MIS self.checkIfMISisCorrect(network.ndList)