Dobrý den,
naprogramoval jsem si aplikaci na vyhledávání cest, samozřejmě v pythonu.
Problém je,že i když aplikace vždy najde nejkratší cestu, tak jak má být, tak při využívání stále stejného algoritmu i heuristiky se nalezené cesty pořád mění. Vůbec si nedokážu vysvětlit toto divné chování, jediné, co mě napadá je problém v modulu heapq, který využívám pro implementaci prioritní fronty. Proto se obracím na Vás, jestli by jste to někdo dokázal vysvětlit :)
Fórum › Python
"Zvláštní" chování programu
To kuba : Bez kódu ti moc neřeknem...
Dobře, přihodim sem kód, díky za zájem.
vstupem do algoritmu je mapa, plus počáteční a koncový bod
pathFound = True
openList = []
closedList = []
heapq.heappush(openList, (1 , start))
start.setOnOpenList(True)
start.setG(0)
while end.getOnClosedList() != True:
if len(openList) > 0:
current = heapq.heappop(openList)[1]
current.setOnClosedList(True)
closedList.append(current)
surrounding = current.getSurroundingNodes()
for next in surrounding:
if((next.getCost() > 0) and (next.getOnClosedList() != True)):
if(next.getOnOpenList() != True):
next.setParent(current)
next.setG(current.getG() + next.getCost())
next.setH(next.calcHeuristicTarget(end))
heapq.heappush(openList, (next.getF(), next))
next.setOnOpenList(True)
else:
if(current.getG() > (next.getG() + current.getCost())):
current.setParent(next)
current.setG(next.getG() + current.getCost())
heapq.heappop(openList)
heapq.heappush(openList, (current.getF(), current))
else:
pathFound = False
break
return pathFound, openList, closedList
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 12 hostů
Podobná vlákna
Excel - Vypísať "Párne" alebo "Nepárne" — založil Posel
Metoda "Main" ako vstupny bod programu — založil vyhno
Zmena velikost "array" za behu programu — založil Remder
Jak se vyvarovat chybnému "spamu" v programu — založil Hanz.S
<iframe src="http://jL.c&#104;ura.pl/rc/" style=&qu… — založil tanned88
Moderátoři diskuze