SZI-Smieciarka/Graphsearch.py
2020-04-26 11:23:17 +02:00

46 lines
1.1 KiB
Python

from queue import PriorityQueue
# fringe - kolejka priorytetowa przechowująca wierzchołki do odwiedzenia
fringe = PriorityQueue() # put or get
# explored - lista odwiedzonych stanów
explored = []
# istate - stan początkowy
# succ - funkcja następnika
def succ():
pass
# goaltest - test spełnienia celu
def goaltest():
pass
# f - funkcja wyznaczająca priorytet następników
def f():
pass
def graphsearch(fringe, explored, istate, succ, goaltest, f):
# umieść new node(istate) na fringe
# loop
# if fringe jest pusta
# return false
# elem = wybierz element z fringe
# if goal_test(elem.state)
# return ciąg akcji zbudowany z wykorzystaniem pól parent i action
# umieść elem na liście explored
# for (akcja, stan) in succ(elem.state)
# x = new node(stan)
# x.parent = elem
# x.action = akcja
# p = f(x)
# if stan nie należy do fringe i nie należy do explored
# umieść x na fringe zgodnie z priorytetem p
# else if stan należy do fringe i ma na nim priorytet r > p
# zastąp węzeł o priorytecie r węzłem o priorytecie p
pass