How to use setHeuristic method in fMBT

Best Python code snippet using fMBT_python

Node.py

Source:Node.py Github

copy

Full Screen

...17 #depending on the number of received parameters18 #if a node is received (just 1 single argument)19 if len(args) == 1: 20 self.setCost(args[0].getCost())21 self.setHeuristic(args[0].getHeuristic())22 self.setEvaluation(args[0].getEvaluation())23 self.setParent(args[0].getParent())24 self.setNextNode(args[0].getNextNode())25 self.setListSatellites(args[0].getListSatellites())26 self.setListObservations(args[0].getListObservations())27 28 #receiving 3 paremeters: parentNode, list of satellites and list of observations29 if len(args) == 3:30 self.setParent(args[0])31 self.setListSatellites(args[1])32 self.setListObservations(args[2])33 #COMPUTE HEURISTIC34 #------------------------------------------------------------------------------------------------------------------------------ 35 #method that computes the heuristic36 #it receives the final node to where to the heuristics will be calculated and 37 #the heuristic function that will be employed. There are two options: Manhattan and Hamming distance38 def computeHeuristic(self, finalNode, heuristicType):39 self.setHeuristic(0)40 if(heuristicType == "manhattan"): #Manhattan distance41 for satellite in self.__listSatellites:42 for observation in self.__listObservations:43 self.setHeuristic(abs(satellite.getPosition() - observation.getPosition()) + abs(satellite.getBand() - observation.getBand()))44 elif(heuristicType == "hamming"): #Hamming distance45 for n in range(len(finalNode.getListSatellites())):46 if (self.getListSatellites()[n] != finalNode.getListSatellites()[n]):47 self.setHeuristic(self.getHeuristic() +1 )48 49 50 51 #EQUALS52 #------------------------------------------------------------------------------------------------------------------------------ 53 #method that checks if the information from another node is equal to the one we have54 def equals (self,otherNode):55 #print("In method equals, observations: {0} {1}".format(len(self.__listObservations), range(len(self.__listObservations))))56 #checking that the lists of observations are equal, but looping through through them57 for x in range(len(self.__listObservations)):58 if (self.__listObservations[x].getIdNumber() != otherNode.getListObservations()[x].getIdNumber()59 or self.__listObservations[x].getBand() != otherNode.getListObservations()[x].getBand()60 or self.__listObservations[x].getPosition() != otherNode.getListObservations()[x].getPosition()61 or self.__listObservations[x].getMeasured() != otherNode.getListObservations()[x].getMeasured()):62 return False63 #checking that the lists of satellites are equal, but looping through through them64 #print("In method equals, satellites: {0} {1}".format(len(self.__listObservations), range(len(self.__listObservations))))65 for x in range(len(self.__listSatellites)):66 if (self.__listSatellites[x].getIdNumber() != otherNode.getListSatellites()[x].getIdNumber()67 or self.__listSatellites[x].getBand() != otherNode.getListSatellites()[x].getBand()68 or self.__listSatellites[x].getPosition() != otherNode.getListSatellites()[x].getPosition()69 or self.__listSatellites[x].getEnergy() != otherNode.getListSatellites()[x].getEnergy() ):70 return False71 return True #otherwise, they are equal, so "true" is returned 72 73 #COMPUTE EVALUATION74 #------------------------------------------------------------------------------------------------------------------------------ 75 76 #method that executes the evaluation function of the problem for the node77 def computeEvaluation(self):78 self.__evaluation = self.__cost + self.__heuristic79 80 #SETTERS81 #------------------------------------------------------------------------------------------------------------------------------ 82 83 def setCost(self, cost):84 self.__cost = cost85 def setHeuristic(self, heuristic):86 self.__heuristic = heuristic87 def setEvaluation(self, evaluation):88 self.__evaluation = evaluation89 def setParent(self, parent):90 self.__parent = parent91 def setNextNode(self, nextNodeList):92 self.__nextNodeList = nextNodeList93 def setListSatellites (self, satellites):94 self.__listSatellites = satellites95 def setListObservations (self, observations):96 self.__listObservations = observations97 98 #GETTERS99 #------------------------------------------------------------------------------------------------------------------------------ ...

Full Screen

Full Screen

Graph.py

Source:Graph.py Github

copy

Full Screen

...5 self.name = node_name6 self.heuristic = 07 self.posX = posX8 self.posY - posY9 def setHeuristic(self, goal):10 self.heuristic = math.sqrt(math.pow((self.posX - goal.posX),2) + math.pow((self.posY - goal.posY),2))11class Edge:12 def __init__(self, node1, node2, weight):13 self.node1 = node1.name14 self.node2 = node2.name15 self.weight = weight16class Graph:17 def __init__(self):18 self.graf = {}19 self.Node = {}20 def addEdge(self, froms, goals, weight):21 if (froms not in self.graf):22 self.graf[froms] = {}23 if (goals not in self.graf):24 self.graf[goals] = {}25 self.graf[froms][goals] = weight26 self.graf[goals][froms] = weight27 def getHeuristic(self, node):28 return self.Node[node][2]29 30 def getPos(self, node):31 return self.Node[node][0], self.Node[node][1]32 33 def addNode(self, nama, posX, posY):34 if (nama in self.Node.keys()):35 return36 self.Node[nama] = [posX, posY, 0]37 def setHeuristic(self, goals):38 for item in self.Node.keys():39 self.Node[item][2] = math.sqrt(math.pow((self.Node[item][0] - self.Node[goals][0]),2) + math.pow((self.Node[item][1] - self.Node[goals][1]),2))40'''41g1 = Graph()42g1.addNode('A', 40, 23)43g1.addNode('B', 23, 44)44g1.addNode('C', 74, 55)45g1.addNode('D', 24, 45)46g1.addEdge('A', 'B', 5)47g1.addEdge('B', 'C', 3)48g1.setHeuristic('C')49a1 = Astar()...

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run fMBT automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful