utworzony plik Graphsearch
This commit is contained in:
parent
1dc9e45f19
commit
6c08a81a52
45
Graphsearch.py
Normal file
45
Graphsearch.py
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
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
|
Loading…
Reference in New Issue
Block a user