Commit 8d6e62be authored by Vít Novotný's avatar Vít Novotný
Browse files

added test outputs for examples 3.4_13--3.6_17

parent 6a8842fd
...@@ -17,10 +17,22 @@ def depth_first_search(start_node): ...@@ -17,10 +17,22 @@ def depth_first_search(start_node):
for node1 in move_anyY(node): for node1 in move_anyY(node):
paths.append(Cons(node1, path)) paths.append(Cons(node1, path))
def is_goal(_): def is_goal(x):
# zavisi na resenem problemu # zavisi na resenem problemu
return False return x == "E"
graph = dict(A=["B", "E", "F"],
B=["C"], F=["C"],
C=["D"],
D=["E"])
def move_anyY(x): def move_anyY(x):
# zavisi na resenem problemu # zavisi na resenem problemu
yield x if x in graph:
for y in graph[x]:
yield y
# demonstracni vypis
if __name__ == "__main__":
print("Depth-First Search")
print("Volani next(solution('A')) : %s" % next(solution('A')))
Depth-First Search
Volani next(solution('A')) : ['E', 'D', 'C', 'F', 'A']
...@@ -15,10 +15,22 @@ def depth_first_search(akumulator_path, node): ...@@ -15,10 +15,22 @@ def depth_first_search(akumulator_path, node):
for path in depth_first_search(akumulator_path1, node1): for path in depth_first_search(akumulator_path1, node1):
yield path yield path
def is_goal(_): def is_goal(x):
# zavisi na resenem problemu # zavisi na resenem problemu
return False return x == "E"
graph = dict(A=["B", "E", "F"],
B=["C"], F=["C"],
C=["D"],
D=["E"])
def move_anyY(x): def move_anyY(x):
# zavisi na resenem problemu # zavisi na resenem problemu
yield x if x in graph:
for y in graph[x]:
yield y
# demonstracni vypis
if __name__ == "__main__":
print("Depth-First Search")
print("Volani next(solution('A')) : %s" % next(solution('A')))
Depth-First Search
Volani next(solution('A')) : ['E', 'D', 'C', 'B', 'A']
...@@ -18,10 +18,26 @@ def depth_first_search(start_node, max_depth): ...@@ -18,10 +18,26 @@ def depth_first_search(start_node, max_depth):
for node1 in move_anyY(node): for node1 in move_anyY(node):
paths.append((Cons(node1, path), remaining_depth-1)) paths.append((Cons(node1, path), remaining_depth-1))
def is_goal(_): def is_goal(x):
# zavisi na resenem problemu # zavisi na resenem problemu
return False return x == "E"
graph = dict(A=["B", "E", "F"],
B=["C"], F=["C"],
C=["D"],
D=["E"])
def move_anyY(x): def move_anyY(x):
# zavisi na resenem problemu # zavisi na resenem problemu
yield x if x in graph:
for y in graph[x]:
yield y
# demonstracni vypis
if __name__ == "__main__":
print("Depth-First Search")
print("Volani next(solution('A')) : %s" % next(solution('A')))
print("Volani next(depth_first_search('A', 3)) : %s" % \
next(depth_first_search('A', 3)))
print("Volani next(depth_first_search('A', 4)) : %s" % \
next(depth_first_search('A', 4)))
Depth-First Search
Volani next(solution('A')) : ['E', 'D', 'C', 'F', 'A']
Volani next(depth_first_search('A', 3)) : ['E', 'A']
Volani next(depth_first_search('A', 4)) : ['E', 'D', 'C', 'F', 'A']
...@@ -17,10 +17,26 @@ def depth_first_search(akumulator_path, node, remaining_depth): ...@@ -17,10 +17,26 @@ def depth_first_search(akumulator_path, node, remaining_depth):
remaining_depth-1): remaining_depth-1):
yield path yield path
def is_goal(_): def is_goal(x):
# zavisi na resenem problemu # zavisi na resenem problemu
return False return x == "E"
graph = dict(A=["B", "E", "F"],
B=["C"], F=["C"],
C=["D"],
D=["E"])
def move_anyY(x): def move_anyY(x):
# zavisi na resenem problemu # zavisi na resenem problemu
yield x if x in graph:
for y in graph[x]:
yield y
# demonstracni vypis
if __name__ == "__main__":
print("Depth-First Search")
print("Volani next(solution('A')) : %s" % next(solution('A')))
print("Volani next(depth_first_search(Nil, 'A', 3)) : %s" % \
next(depth_first_search(Nil, 'A', 3)))
print("Volani next(depth_first_search(Nil, 'A', 4)) : %s" % \
next(depth_first_search(Nil, 'A', 4)))
Depth-First Search
Volani next(solution('A')) : ['E', 'D', 'C', 'B', 'A']
Volani next(depth_first_search(Nil, 'A', 3)) : ['E', 'A']
Volani next(depth_first_search(Nil, 'A', 4)) : ['E', 'D', 'C', 'B', 'A']
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
from linked_lists import LinkedList, Cons, Nil from linked_lists import LinkedList, Cons, Nil
def solution(node): def solution(node):
for path in breadth_first_search(LinkedList(LinkedList(node))): for path in breadth_first_search(LinkedList([LinkedList(node)])):
yield path yield path
def breadth_first_search(paths): def breadth_first_search(paths):
...@@ -23,14 +23,6 @@ def breadth_first_search(paths): ...@@ -23,14 +23,6 @@ def breadth_first_search(paths):
for path in breadth_first_search(paths1): for path in breadth_first_search(paths1):
yield path yield path
def is_goal(_):
# zavisi na resenem problemu
return False
def move_anyY(x):
# zavisi na resenem problemu
yield x
def append(xs, ys): def append(xs, ys):
if xs == Nil: if xs == Nil:
return ys return ys
...@@ -43,3 +35,23 @@ def member(x, xs): ...@@ -43,3 +35,23 @@ def member(x, xs):
if x == xs.head: if x == xs.head:
return True return True
return member(x, xs.tail) return member(x, xs.tail)
def is_goal(x):
# zavisi na resenem problemu
return x == "E"
graph = dict(A=["B", "E", "F"],
B=["C"], F=["C"],
C=["D"],
D=["E"])
def move_anyY(x):
# zavisi na resenem problemu
if x in graph:
for y in graph[x]:
yield y
# demonstracni vypis
if __name__ == "__main__":
print("Breadth-First Search")
print("Volani next(solution('A')) : %s" % next(solution('A')))
Breadth-First Search
Volani next(solution('A')) : ['E', 'A']
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment