dspace.jaist.ac.jp · we know that in the eld of arti cial intelligence, the automatic path nd-ing...

74
Japan Advanced Institute of Science and Technology JAIST Repository https://dspace.jaist.ac.jp/ Title Investigation and Specification of Path Finding Algorithms [��] Author(s) �, Citation Issue Date 2019-03 Type Research Paper Text version author URL http://hdl.handle.net/10119/15923 Rights Description Supervisor:Kazuhiro Ogata, ��,

Upload: others

Post on 12-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Japan Advanced Institute of Science and Technology

JAIST Repositoryhttps://dspace.jaist.ac.jp/

TitleInvestigation and Specification of Path Finding

Algorithms [課題研究報告書]

Author(s) 楊, 子

Citation

Issue Date 2019-03

Type Research Paper

Text version author

URL http://hdl.handle.net/10119/15923

Rights

DescriptionSupervisor:Kazuhiro Ogata, 先端科学技術研究科, 修

士(情報科学)

Page 2: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Master’s Research Project Report

Investigation and Specification of Path Finding Algorithms

1710282 Yang Zi

Supervisor Kazuhiro OgataMain Examiner Kazuhiro Ogata

Examiners Kunihiko HiraishiToshiaki AokiMasato Suzuki

Graduate School of Advanced Science and TechnologyJapan Advanced Institute of Science and Technology

(Information Science)

March 2019

Page 3: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Acknowledgements

I would like to express my gratitude to all those who helped me during thewriting of this Master project report. I gratefully acknowledge the help of mysupervisor, Prof. Ogata Kazuhiro, who has offered me valuable suggestionsin studies, In the preparation of the report he has spent much time providingme with inspiring advice. Without his patient instruction, the completion ofthis thesis would not have been possible.

I also have to thank my parents who have always been helping me out ofdifficulties and supporting with a word of complaint.

I should finally like to thank all of my friends who helped me a lot inJAIST.

Page 4: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Contents

1 Introduction 11.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Aim and Contribution . . . . . . . . . . . . . . . . . . . . . . 11.3 Significance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.4 Report Outline . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Preliminaries 32.1 Kripke Structure and Linear Temporal Logic . . . . . . . . . . 32.2 Dijkstra: A Path Finding Algorithm . . . . . . . . . . . . . . 62.3 Maude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3 Proposed Model 123.1 Real World Situation . . . . . . . . . . . . . . . . . . . . . . . 123.2 Formalized to Simplified Model . . . . . . . . . . . . . . . . . 12

4 Model Checking of Dijkstra 154.1 Initial State and Goal . . . . . . . . . . . . . . . . . . . . . . . 154.2 The Pattern of Dijkstra . . . . . . . . . . . . . . . . . . . . . 164.3 Formalizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164.4 Rewrite Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . 324.5 Finding all paths and model checking . . . . . . . . . . . . . . 33

5 More Tests 405.1 The 2nd graph . . . . . . . . . . . . . . . . . . . . . . . . . . 405.2 The 3rd graph . . . . . . . . . . . . . . . . . . . . . . . . . . . 415.3 The 4th graph . . . . . . . . . . . . . . . . . . . . . . . . . . . 425.4 The 5th graph . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

6 Discussion 456.1 Summarized diagram of the report . . . . . . . . . . . . . . . 456.2 Writting with Maude code . . . . . . . . . . . . . . . . . . . . 45

3

Page 5: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

6.3 Model checking . . . . . . . . . . . . . . . . . . . . . . . . . . 45

7 Conclusion 48

8 Appendix 508.1 Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508.2 Path found . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528.3 All path found from the 32 nodes . . . . . . . . . . . . . . . . 55

4

Page 6: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Abstract

An automatic driving car is a smart car that senses the road environmentthrough an in-vehicle sensing system, automatically plans driving routes, andcontrols the vehicle to reach a predetermined target.

It uses the onboard sensor to sense the surrounding environment of thevehicle and controls the steering and speed of the vehicle based on the road,vehicle position and obstacle information obtained by the perception so thatthe vehicle can travel safely and reliably on the road.

One of the most important technologies for automatic driving cars is theautomatic pathfinding algorithm, which decides the path the car is going, wecan use some diagrams to represent the real world situation, which has somenodes to represent some cross of the road, using cost to represent the distanceof the road, and then we have a start node and a goal, using pathfindingalgorithm, we can know the shortest path from the start node to the goal.There are many different pathfinding algorithms, one of which is the Dijkstrashortest path algorithm.

To verify the reliability of these algorithms, model checking is required.To check if they can enjoy some desired properties. model checking is givinga model of a system, automatically check whether this model enjoys someproperties. Typically, one has hardware or software systems in mind, whereasthe specification contains safety requirements such as the absence of dead-locks and similar critical states that can cause the system to crash. Modelchecking is a technique for automatically verifying correctness properties offinite-state systems.

This paper show a case of pathfinding algorithms Dijkstra, after formal-izing Dijkstra to state machine and feed into Maude, we can see the statetransition, and then we can do model checking using some desired properties.

Page 7: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

List of Figures

2.1 Kripke structure . . . . . . . . . . . . . . . . . . . . . . . . . . 32.2 LTL temporal operators . . . . . . . . . . . . . . . . . . . . . 42.3 Next operator . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.4 Finally operator . . . . . . . . . . . . . . . . . . . . . . . . . . 52.5 Globally operator . . . . . . . . . . . . . . . . . . . . . . . . . 52.6 Until operator . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.7 Dijkstra step0 . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.8 Dijkstra step1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.9 Dijkstra step2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.10 Dijkstra step3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.11 Dijkstra step4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.12 Dijkstra step5 . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.13 Dijkstra step6 . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.14 Maude display . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.1 Real World Model . . . . . . . . . . . . . . . . . . . . . . . . . 133.2 Dijkstra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4.1 Nodes Visited 1 . . . . . . . . . . . . . . . . . . . . . . . . . . 164.2 Nodes Visited 2 . . . . . . . . . . . . . . . . . . . . . . . . . . 164.3 Nodes Visited 3 . . . . . . . . . . . . . . . . . . . . . . . . . . 174.4 Nodes Visited 4 . . . . . . . . . . . . . . . . . . . . . . . . . . 174.5 Nodes Visited 5 . . . . . . . . . . . . . . . . . . . . . . . . . . 174.6 Nodes Visited 6 . . . . . . . . . . . . . . . . . . . . . . . . . . 174.7 Nodes Visited 7 . . . . . . . . . . . . . . . . . . . . . . . . . . 174.8 Nodes Visited 8 . . . . . . . . . . . . . . . . . . . . . . . . . . 174.9 Nodes Visited 9 . . . . . . . . . . . . . . . . . . . . . . . . . . 184.10 Nodes Visited 10 . . . . . . . . . . . . . . . . . . . . . . . . . 184.11 Nodes Visited 11 . . . . . . . . . . . . . . . . . . . . . . . . . 184.12 Nodes Visited 12 . . . . . . . . . . . . . . . . . . . . . . . . . 184.13 Nodes Visited 13 . . . . . . . . . . . . . . . . . . . . . . . . . 184.14 Nodes Visited 14 . . . . . . . . . . . . . . . . . . . . . . . . . 18

1

Page 8: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

4.15 Nodes Visited 15 . . . . . . . . . . . . . . . . . . . . . . . . . 194.16 Nodes Visited 16 . . . . . . . . . . . . . . . . . . . . . . . . . 194.17 Nodes Visited 17 . . . . . . . . . . . . . . . . . . . . . . . . . 194.18 Nodes Visited 18 . . . . . . . . . . . . . . . . . . . . . . . . . 194.19 Nodes Visited 19 . . . . . . . . . . . . . . . . . . . . . . . . . 194.20 Nodes Visited 20 . . . . . . . . . . . . . . . . . . . . . . . . . 194.21 Nodes Visited 21 . . . . . . . . . . . . . . . . . . . . . . . . . 204.22 Nodes Visited 22 . . . . . . . . . . . . . . . . . . . . . . . . . 204.23 Nodes Visited 23 . . . . . . . . . . . . . . . . . . . . . . . . . 204.24 Nodes Visited 24 . . . . . . . . . . . . . . . . . . . . . . . . . 204.25 Nodes Visited 25 . . . . . . . . . . . . . . . . . . . . . . . . . 204.26 Nodes Visited 26 . . . . . . . . . . . . . . . . . . . . . . . . . 204.27 Nodes Visited 27 . . . . . . . . . . . . . . . . . . . . . . . . . 214.28 Nodes Visited 28 . . . . . . . . . . . . . . . . . . . . . . . . . 214.29 Nodes Visited 29 . . . . . . . . . . . . . . . . . . . . . . . . . 214.30 Nodes Visited 30 . . . . . . . . . . . . . . . . . . . . . . . . . 214.31 Nodes Visited 31 . . . . . . . . . . . . . . . . . . . . . . . . . 214.32 Nodes Visited 32 . . . . . . . . . . . . . . . . . . . . . . . . . 214.33 Nodes Visited 33 . . . . . . . . . . . . . . . . . . . . . . . . . 224.34 Nodes Visited 34 . . . . . . . . . . . . . . . . . . . . . . . . . 224.35 Nodes Visited 35 . . . . . . . . . . . . . . . . . . . . . . . . . 224.36 Nodes Visited 36 . . . . . . . . . . . . . . . . . . . . . . . . . 224.37 Nodes Visited 37 . . . . . . . . . . . . . . . . . . . . . . . . . 224.38 Nodes Visited 38 . . . . . . . . . . . . . . . . . . . . . . . . . 224.39 Nodes Visited 39 . . . . . . . . . . . . . . . . . . . . . . . . . 234.40 Nodes Visited 40 . . . . . . . . . . . . . . . . . . . . . . . . . 234.41 Nodes Visited 41 . . . . . . . . . . . . . . . . . . . . . . . . . 234.42 Nodes Visited 42 . . . . . . . . . . . . . . . . . . . . . . . . . 234.43 Nodes Visited 43 . . . . . . . . . . . . . . . . . . . . . . . . . 234.44 Nodes Visited 44 . . . . . . . . . . . . . . . . . . . . . . . . . 234.45 Nodes Visited 45 . . . . . . . . . . . . . . . . . . . . . . . . . 244.46 Nodes Visited 46 . . . . . . . . . . . . . . . . . . . . . . . . . 244.47 Nodes Visited 13 . . . . . . . . . . . . . . . . . . . . . . . . . 244.48 Nodes Visited 48 . . . . . . . . . . . . . . . . . . . . . . . . . 244.49 Nodes Visited 49 . . . . . . . . . . . . . . . . . . . . . . . . . 244.50 Nodes Visited 50 . . . . . . . . . . . . . . . . . . . . . . . . . 244.51 Nodes Visited 51 . . . . . . . . . . . . . . . . . . . . . . . . . 254.52 Nodes Visited 52 . . . . . . . . . . . . . . . . . . . . . . . . . 254.53 Nodes Visited 53 . . . . . . . . . . . . . . . . . . . . . . . . . 254.54 Nodes Visited 54 . . . . . . . . . . . . . . . . . . . . . . . . . 254.55 Nodes Visited 55 . . . . . . . . . . . . . . . . . . . . . . . . . 25

2

Page 9: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

4.56 Nodes Visited 56 . . . . . . . . . . . . . . . . . . . . . . . . . 254.57 Nodes Visited 57 . . . . . . . . . . . . . . . . . . . . . . . . . 264.58 Nodes Visited 58 . . . . . . . . . . . . . . . . . . . . . . . . . 264.59 Nodes Visited 59 . . . . . . . . . . . . . . . . . . . . . . . . . 264.60 Nodes Visited 60 . . . . . . . . . . . . . . . . . . . . . . . . . 264.61 Nodes Visited 61 . . . . . . . . . . . . . . . . . . . . . . . . . 264.62 Nodes Visited 62 . . . . . . . . . . . . . . . . . . . . . . . . . 264.63 Nodes Visited 63 . . . . . . . . . . . . . . . . . . . . . . . . . 274.64 Finding All Path . . . . . . . . . . . . . . . . . . . . . . . . . 344.65 All path found 1 . . . . . . . . . . . . . . . . . . . . . . . . . 364.66 All path found 2 . . . . . . . . . . . . . . . . . . . . . . . . . 364.67 Path found by first RL . . . . . . . . . . . . . . . . . . . . . . 37

5.1 The 2nd graph . . . . . . . . . . . . . . . . . . . . . . . . . . 405.2 The 3rd graph . . . . . . . . . . . . . . . . . . . . . . . . . . . 425.3 The 4th graph . . . . . . . . . . . . . . . . . . . . . . . . . . . 435.4 The 4th graph . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

6.1 Work done in this report . . . . . . . . . . . . . . . . . . . . . 466.2 Model checking procedure . . . . . . . . . . . . . . . . . . . . 47

Page 10: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Chapter 1

Introduction

1.1 Overview

We have many pathfinding algorithms used in variety of autonomous robotsuch as rescue robot, which is developed to save people during heavy disastersuch as fire, earthquake, nuclear radiation, as we all know, the scene of thoseenvironments are complex and very dangerous, and its difficult to rescuewith human beings, rescue robot is small and smart so that they can replacehuman to take part in some rescue mission that human can’t. And sucha rescue robot needs a pathfinding algorithm to find a perfect path. Andsuch a path must be trustworthy and stable, the goal of this thesis is tofind a pathfinding algorithm and do model checking to check whether thisalgorithm enjoys some properties.

The navigation modular is designed for an autonomous robot to searchdisaster environment. Object points are generated, then robot obtains anoptimal path from starting point to target point by global path planningalgorithm, such as Dijkstra.

Such a pathfinding algorithm is very important for the automatic robot,and it is also important to find out whether this algorithm is trustworthy.

1.2 Aim and Contribution

The paper reports on a case of Dijkstra, a pathfinding algorithm, after for-malize it to a state machine, we can the states transition and it is specifiedas a state machine in Maude so that the Maude search command and theMaude LTL model checker can be used to check some properties of Dijkstra.

1

Page 11: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

1.3 Significance

We know that in the field of artificial intelligence, the automatic pathfind-ing algorithm has been widely concerned as an effective way to improve therobot’s efficiency. At present, in the field of artificial automation, auto-matic pathfinding algorithm has been studied by many scholars, and newautomatic pathfinding algorithms emerge in endlessly. However, after theauthor’s research and investigation found that researchers in this field arecurrently limited to the calculation and research of automatic algorithms,but Whether the automatic algorithm itself is feasible and reliable is notstudied by scholars.

However, it is worth noting that only researching the automatic pathfind-ing algorithm and related robots cannot completely solve the damage prob-lem of mobile robots. We should strengthen the detection of the reliabilityof the automatic pathfinding algorithm. Because only the high reliability ofthe automatic pathfinding algorithm can effectively reduce the damage of therobot, making the robot move more stable and efficient.

Through this report’s research on automatic pathfinding algorithm, Theauthor wants to achieve the detection of the effectiveness of various automaticpathfinding algorithms, in order to find and develop a reliable automaticpathfinding algorithm, the best detection means, the manual automation ismore stable, more Good service to humans.

1.4 Report Outline

The rest of this report is organized as follows:Chapter. 2 PreliminriesIntroduces some preliminaries, such as state machine, invariant, Kripke

structure and LTL, Dijkstra and Maude.Chapter. 3 Proposed ModelThis chapter shows a real-world model, and formalizes such model as a

graph.Chapter. 4 Model Checking of DijkstraThis chapter formalizes Dijkstra to state machine, and do model checking.Chapter. 5 More TestsThis chapter uses more test to do model checking.Chapter. 6 DiscussionThis chapter is to discuss the result.Chapter. 7 ConclusionThis chapter is the conclusion.

2

Page 12: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Chapter 2

Preliminaries

2.1 Kripke Structure and Linear Temporal

Logic

A Kripke structure K is 〈S, I, T, P, L〉, where S is a set of states, I ⊆ S isthe set of initial states, T ⊆ S×S is a total binary relation over S, P is a setof atomic propositions and L is a labeling function whose type is S → 2P .Each element (s, s′) ∈ T is called a state transition from s to s′ and T maybe called the state transitions (with respect to K). For a state s ∈ S, L(s) isthe set of atomic propositions that hold in s. A path π is an infinite sequences0, . . . , si, si+1, . . . of states such that si ∈ S and (si, si+1) ∈ T for each i. Letπi be si, si+1, . . . and π(i) be si. Let P be the set of all paths. π is called acomputation if π(0) ∈ I. Let C be the set of all computations.

Figure 2.1: Kripke structure

The syntax of a formula ϕ in LTL for K is ϕ ::= > | p | ¬ϕ | ϕ ∧ ϕ | ©ϕ | ϕ U ϕ, where p ∈ P . Let F be the set of all formulas in LTL for K.An arbitrary path π ∈ P of K and an arbitrary LTL formula ϕ ∈ F of K,K, π |= ϕ is inductively defined as K, π |= >, K, π |= p iff p ∈ L(π(0)),

3

Page 13: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

K, π |= ¬ϕ1 iff K, π 6|= ϕ1, K, π |= ϕ1 ∧ ϕ2 iff K, π |= ϕ1 and K, π |= ϕ2,K, π |= ©ϕ1 iff K, π1 |= ϕ1, and K, π |= ϕ1 U ϕ2 iff there exists a naturalnumber i such that K, πi |= ϕ2 and for all natural numbers j < i, K, πj |= ϕ1,where ϕ1 and ϕ2 are LTL formulas. Then, K |= ϕ iff K, π |= ϕ for eachcomputation π ∈ C of K. The temporal connectives © and U are called thenext connective and the until connective, respectively. The other logical andtemporal connectives are defined as usual as follows: ⊥ , ¬>, ϕ1 ∨ ϕ2 ,¬(¬ϕ1∧¬ϕ2), ϕ1 ⇒ ϕ2 , ¬ϕ1∨ϕ2, ♦ϕ , > U ϕ, and �ϕ , ¬(♦¬ϕ). Thetemporal connectives ♦ and � are called the eventually connective and thealways connective, respectively.

State machines and their properties can be used to formalize varioussystems and their requirements. Systems verification can then be conductedby theorem proving that state machines enjoy properties.

A state predicate p is invariant w.r.t.M iff (∀ s ∈ R) p (s).A state predicate p can be interpreted as a set P of states s.t.(∀ s ∈ P)

p(s) and (∀ s /∈ P) ¬p(s) .

Figure 2.2: LTL temporal operators

In unary operators oφ, ♦ φ, �φ:oφ is next opeartor that φ has to hold at next state.Like Fig. 2.3♦ φ is finally operator that φ eventually has to hold (somewhere on the

subsequent path).

4

Page 14: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Figure 2.3: Next operator

Like Fig. 2.4

Figure 2.4: Finally operator

�φ is globally operator that φ has to hold on the entire subsequent path.Like Fig. 2.5

Figure 2.5: Globally operator

In binary operators such as φ U ψ:φ U ψ is until operator that φ has to hold at least until ψ becomes true,

which must hold at the current or a future position.Like Fig. 2.6

Figure 2.6: Until operator

Here:♦ϕ , > U ϕ�ϕ , ¬(♦¬ϕ)Are most important formulas used to check two properties, when checking

some property such as ”whether Dijkstra always halts”, we can use the firstformula. the until operator U is if ϕ never true, then ♦ ϕ returns false, ifthere is a case such that ϕ always true at some point, then ♦ ϕ returns true.

The second formula can be used to check some property such as ”whetherpath found by Dijkstra is one of the shortest paths”, � ϕ means ϕ has tobe true until and including the point where False first becomes true; if Falsenever becomes true, ϕ must remain true forever.

5

Page 15: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

This project report is using such two formulas to check the two propertiesmentioned above.

2.2 Dijkstra: A Path Finding Algorithm

Dijkstra’s algorithm is an algorithm for finding the shortest paths betweennodes in a graph.

Here is a demo for Dijkstra see Fig. 2.7:There are 6 nodes in this graph, each node has some neighbors, and the

cost from one node to another is given, if n0 is the initial node and n5 is thefinal node, we can use some pathfinding algorithms like Dijkstra to find ashortest path from n0 to n5.

We suppose there are two sets S and U, set S contains the nodes which arevisited, set U contains the nodes which are not visited. If a node’s shortestpath is found from the initial node, we can add it to set U, when there is noelement in set S, the algorithm is finished.

initially, we have S = {n0,n1,n2,n3,n4,n5}, U = {}.

Figure 2.7: Dijkstra step0

Fig. 2.8 First, since the n0 is the initial node, the which shortest path is0, so we add this node to set U, and mark it as visited. In this graph, greenrepresents visited. and we can know the cost from node n0 to node n1 andnode n2, for the rest nodes, we mark the cost as infinity. and we choose asmallest cost which is n1, we mark n1 as visited, and the shortest path fromn0 to n1 is n0=⇒n1, cost is 1. Now set S = {n1,n2,n3,n4,n5}, U = {n0}.

Fig. 2.9 Then we start to visit node n1, and we update the cost from n1 ton2 and n1 to n3, if the updated cost is smaller than current cost, we use theupdated cost, if the updated cost is bigger or equal than the current cost, wedon’t update it, so the cost from n0 to n1 to n2 is 2, smaller than the currentcost from n0 to n2, so the current path from n0 to n2 is n0=⇒n1=⇒n2, thecost is 2, and current cost of n3 is infinity, n0 to n1 to n3 is 4, 4 is smaller

6

Page 16: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

(2).png

Figure 2.8: Dijkstra step1

than inifity, so we update the path from n0 to n3 is n0=⇒n1=⇒n3. Thenwe choose a smallest cost in current nodes, which is n2, then we mark n2 asvisited. Now set S = {n2,n3,n4,n5}, U = {n0,n1}.

(3).png

Figure 2.9: Dijkstra step2

Fig. 2.10 continue, now the shortest path from n0 to n3 is n0=⇒n1=⇒n3,cost is 4, we mark n3 as visited. Now set S = {n3,n4,n5}, U = {n0,n1,n2}.

(4).png

Figure 2.10: Dijkstra step3

Fig. 2.11 continue, we start to visit n3, we can update the path from n0to n5, and the cost from n0 to n5 is 6, now the shortest path from n0 to n4 is

7

Page 17: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

n0=⇒n1=⇒n2=⇒n4, cost is 4, we mark n4 as visited. Now set S = {n4,n5},U = {n0,n1,n2,n3}.

(5).png

Figure 2.11: Dijkstra step4

Fig. 2.12 continue, New cost from n0 to n4 to n5 is 7 so we don’t updatethe cost from n0 to n5, so we mark n5 as visited. Now set S = {n5}, U ={n0,n1,n2,n3,n4}.

(6).png

Figure 2.12: Dijkstra step5

Fig. 2.13 continue, now the shortest path from n0 to n5 is n0=⇒n1=⇒n3=⇒n5,cost is 6, the shortest path is found, Now set S = {}, U = {n0,n1,n2,n3,n4,n5},algorithm ends.

This is the description of Dijkstra’s algorithm:step1: Mark the selected initial node n0 with a current cost of 0 and the

rest with infinity.step2: Set the non-visited node with the smallest current cost as the

current node ni.step3: For each neighbor N of your current node ni: add the current cost

of ni with the weight of the edge connecting ni-N. If it’s smaller than thecurrent cost of N, set it as the new current cost of N.

step4: Mark the current node ni as visited.step5: If there are still non-visited nodes, go to step 2.

8

Page 18: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

(7).png

Figure 2.13: Dijkstra step6

2.3 Maude

Maude[1] is a rewriting logic-based specification and programming languageequipped with model checking facilities (the Maude search command and theMaude LTL model checker)and A direct successor of OBJ3 which has manyexcellent functionalities:

Fast Associative-Commutative (AC) rewritingModel checking facilitiesMeta-programming facilitiesWhich can be used in specifications of states machines that can be model

checked, the search command can search all the states to see if it fits thedesired property. The Maude LTL model checker verifies LTL properties ofstate machines.

Fig. 2.14 is the display screen of Maude.This is an example Maude module of natural numbers:fmod NAT issort Nat .op 0 : ->Nat .op s : Nat ->Nat .op + : Nat Nat ->Nat .vars N M : Nat .eq 0 + N = N .eq s(M) + N = s(M + N) .endfmThis module introduces a sort called Nat, and three operators, two equa-

tions.op 0 : ->Nat . means constant 0 is a natural number.The second op s : Nat ->Nat . means s is a function which from a natural

number to a natural number.

9

Page 19: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Figure 2.14: Maude display

op + : Nat Nat ->Nat . means the SUM of two natural numbers is

10

Page 20: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

still a natural number. The underline means we can replace it with differentnatural number.

vars N M : Nat . we define N M both are natural numbers.Equation eq 0 + N = N . defines any SUM of natual number and 0 is

such natural number.Equation eq s(M) + N = s(M + N) . means the SUM of two natural

number s(M) and N will be s(M + N) which is also a natural number.Maude[5] sets out to solve a different set of problems than ordinary im-

perative languages like C, Java. It is a formal reasoning tool, which can helpus verify that things are ”as they should”, and show us why they are not ifthis is the case. Which means we can formalize some existing algorithms into Maude language, and find some properties and do model checking.

We can use Maude search command to search all the reachable states, tolook for some states that we want to.

11

Page 21: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Chapter 3

Proposed Model

3.1 Real World Situation

In the real world, there are streets and buildings. We can make the cross ofthe street as node, so the map of a place can be modified to some nodes andthe distance between nodes. see Fig. 3.1

3.2 Formalized to Simplified Model

Then we can consider such model more simple, only nodes and the dis-tance/cost between nodes.

Fig. 3.2 Suppose there are 64 nodes in a graph, n0 is the start node, n63is the goal, the number between nodes is the cost from one node to the other,if we want to know the shortest cost from node n0 to node n63, we shoulduse some pathfinding algorithm such as Dijkstra.

Such model can be used to check some pathfinding algorithms like Dijk-stra’s property, but we have to formalize Dijkstra as a state machine, andthen we can use some Model checker to check some properties.

12

Page 22: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Figure 3.1: Real World Model

13

Page 23: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Figure 3.2: Dijkstra

14

Page 24: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Chapter 4

Model Checking of Dijkstra

4.1 Initial State and Goal

In order to model check the pathfinding algorithm such Dijkstra, we needto formalize it to a state machine. A state machine consists of initial state,state transition and states. so we need an initial state, here according to thegraph, there are two neighbors of n0, and the cost from n0 to n1 is 1, thecost from n0 to n8 is 1, so we can write like this:

(node[n0]: 0,(<n1,1 ><n8,1 >),empty,n0)Obviously, the cost from n0 to n0 is 0, so the first number is 0, <n1,1

><n8,1 >represents the cost from node[ni] to node n1 is 1, the cost fromnode[n0] to node n8 is 1, empty means none of n1 and n8 is visited, thelast n0 means the shortest path from n0 to node[ni], currently node[ni] isnode[n0], so the shortest path is n0. There are 64 nodes in this graph, therest of this initial state nodes will be shown in Chapter. 8

Maude is equipped with the search command that can search all thereachable states from a given state to see if enjoys the property, if we givesuch initial state based on the graph:

(node[n0]: 0,(<n1,1 ><n8,1 >),empty,n0)(node[n1]: oo,(<n2,2 ><n9,1 >),empty,nil)(node[n2]: oo,(<n3,1 ><n10,2 >),empty,nil)(node[n3]: oo,(<n4,1 ><n11,1 >),empty,nil)(node[n4]: oo,(<n5,1 ><n12,2 >),empty,nil)(node[n5]: oo,(<n6,2 ><n13,2 >),empty,nil)(node[n6]: oo,(<n7,2 ><n14,1 >),empty,nil)...(node[n60]: oo,(<n61,2 >),empty,nil)(node[n61]: oo,(<n62,2 >),empty,nil)

15

Page 25: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

(node[n62]: oo,(<n63,1 >),empty,nil)(node[n63]: oo,empty,empty,nil)For all of the initial states, we can see Chapter. 8Now we have an initial state, the next we need is a goal, we can make a

goal like this:op goal? : NId ->Bool .var NI : NId .eq goal?(n63) = true .eq goal?(NI) = false [owise] .NId is node ID, and n63 = goal is true, which means n63 is our goal.

4.2 The Pattern of Dijkstra

These figures Fig. 4.1 to Fig. 4.62 are showing the pattern of searching everynodes and finding a shortest path.

Figure 4.1: Nodes Visited 1 Figure 4.2: Nodes Visited 2

4.3 Formalizing

In order to formalize Dijkstra to state machine, some definitions are needed.This is how to achieve it step by step,

� First we have to define some basic:

fmod NAT+INF is

pr NAT .

16

Page 26: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Figure 4.3: Nodes Visited 3 Figure 4.4: Nodes Visited 4

Figure 4.5: Nodes Visited 5 Figure 4.6: Nodes Visited 6

Figure 4.7: Nodes Visited 7 Figure 4.8: Nodes Visited 8

17

Page 27: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Figure 4.9: Nodes Visited 9 Figure 4.10: Nodes Visited 10

Figure 4.11: Nodes Visited 11 Figure 4.12: Nodes Visited 12

Figure 4.13: Nodes Visited 13 Figure 4.14: Nodes Visited 14

18

Page 28: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Figure 4.15: Nodes Visited 15 Figure 4.16: Nodes Visited 16

Figure 4.17: Nodes Visited 17 Figure 4.18: Nodes Visited 18

Figure 4.19: Nodes Visited 19 Figure 4.20: Nodes Visited 20

19

Page 29: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Figure 4.21: Nodes Visited 21 Figure 4.22: Nodes Visited 22

Figure 4.23: Nodes Visited 23 Figure 4.24: Nodes Visited 24

Figure 4.25: Nodes Visited 25 Figure 4.26: Nodes Visited 26

20

Page 30: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Figure 4.27: Nodes Visited 27 Figure 4.28: Nodes Visited 28

Figure 4.29: Nodes Visited 29 Figure 4.30: Nodes Visited 30

Figure 4.31: Nodes Visited 31 Figure 4.32: Nodes Visited 32

21

Page 31: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Figure 4.33: Nodes Visited 33 Figure 4.34: Nodes Visited 34

Figure 4.35: Nodes Visited 35 Figure 4.36: Nodes Visited 36

Figure 4.37: Nodes Visited 37 Figure 4.38: Nodes Visited 38

22

Page 32: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Figure 4.39: Nodes Visited 39 Figure 4.40: Nodes Visited 40

Figure 4.41: Nodes Visited 41 Figure 4.42: Nodes Visited 42

Figure 4.43: Nodes Visited 43 Figure 4.44: Nodes Visited 44

23

Page 33: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Figure 4.45: Nodes Visited 45 Figure 4.46: Nodes Visited 46

Figure 4.47: Nodes Visited 13 Figure 4.48: Nodes Visited 48

Figure 4.49: Nodes Visited 49 Figure 4.50: Nodes Visited 50

24

Page 34: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Figure 4.51: Nodes Visited 51 Figure 4.52: Nodes Visited 52

Figure 4.53: Nodes Visited 53 Figure 4.54: Nodes Visited 54

Figure 4.55: Nodes Visited 55 Figure 4.56: Nodes Visited 56

25

Page 35: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Figure 4.57: Nodes Visited 57 Figure 4.58: Nodes Visited 58

Figure 4.59: Nodes Visited 59 Figure 4.60: Nodes Visited 60

Figure 4.61: Nodes Visited 61 Figure 4.62: Nodes Visited 62

26

Page 36: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Figure 4.63: Nodes Visited 63

sorts Inf NatInf .

subsorts Nat Inf <NatInf .

op oo : ->Inf [ctor] .

var N : Nat .

eq N <oo = true .

eq oo <N = false .

eq oo <oo = false .

eq N >oo = false .

eq oo >N = true .

eq oo >oo = false .

eq oo + N = oo .

27

Page 37: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

eq oo + oo = oo .

endfm

This is to define some basics, every natural number is smallerthan infinity, infinity is equal to infinity, and the SUM of anynatural number and infinity is infinity.

� Then we have to define lists:

fmod LIST {D :: TRIV} is

sort List{D} .

subsort D$Elt <List{D} .

op nil : ->List{D} [ctor] .

op -> : List{D} List{D} ->List{D} [ctor assoc id: nil] . endfm

The list module is to describe the path, and connect the nodeswith ”->”.

� Next we have to define a module NNPAIR.

fmod NNPAIR is

pr NID .

pr NAT .

sort NNPair .

op < , >: NId Nat ->NNPair [ctor] .

endfm

This module combines natural number and node ID as a pair,which can help us to build an initial state such as <n1,1 >.

� Next we have to define a module SOUP:

fmod SOUP {D :: TRIV} is

sort Soup{D} .

subsort D$Elt <Soup{D} .

op empty : ->Soup{D} [ctor] .

op : Soup{D} Soup{D} ->Soup{D} [ctor assoc comm id: empty] .

op \in : D$Elt Soup{D} ->Bool .

var E : D$Elt .

var S : Soup{D} .

28

Page 38: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

eq E \in empty = false .

eq E \in E S = true .

eq E \in S = false [owise] .

endfm

� Next we have to define a module NNIDLPAIR:

fmod NNIDLPAIR is

pr NAT .

pr SOUP{NIdList} .

sort NNIDLPair .

op < , >: Nat List{NId} ->NNIDLPair [ctor] .

endfm

This module combines natural number and list of node IDtogether, like <1,n1->n2>.

� Next we need to define a module NNIDLPSOUP:

fmod NNIDLPSOUP is

pr SOUP{NNIDLPair} .

op add : Soup{NNIDLPair} NId Nat ->Soup{NNIDLPair} .

op extract : Soup{NNIDLPair} ->Soup{NNIDLPair} .

op extract’ : Soup{NNIDLPair} Soup{NNIDLPair} ->Soup{NNIDLPair}.

var NI : NId .

vars W D D’ : Nat .

vars L L’ : List{NId} .

vars Ls Ls’ : Soup{NNIDLPair} .

eq add(empty,NI,W) = <W,NI >.

eq add(<D,L >,NI,W) = <D + W,L ->NI >.

eq add(<D,L ><D’,L’ >Ls,NI,W) = <D + W,L ->NI >add(<D’,L’>Ls,NI,W) .

eq extract(Ls) = extract’(Ls,empty) .

eq extract’(empty,Ls’) = Ls’ .

eq extract’(<D,L >Ls,empty) = extract’(Ls,<D,L >) .

29

Page 39: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

ceq extract’(<D,L >Ls,<D’,L’ >Ls’) = extract’(Ls,<D,L >) if D <D’.

ceq extract’(<D,L >Ls,<D’,L’ >Ls’) = extract’(Ls,<D’,L’ >Ls’) if D>D’ .

ceq extract’(<D,L>Ls,<D’,L’>Ls’) = extract’(Ls,<D,L><D’,L’>Ls’)if D = D’ .

endfm

This module has three functions: add, extract, extract’:

Add is built to add the cost and the path from a node to a path together,for example, there is one path n1 - >n2 and the cost is 2, the node isn3, the cost from n2 to n3 is 3, so after add, it will be n1 - >n2 - >n3,and the cost becomes 5.

Extract is to extract a Nat+Node ID List pair to itself and empty.

Extract’ is to find a smallest Nat+Node ID List, which is built to finda shortest path for some nodes, for example, if we have some thing likethis:

<1,n1->n2>, <2,n3->n4>, <3,n4->n5>, <4,n5->n6>

After the function Extract’, we will get only one Nat+Node ID List,which is <1,n1->n2>.

� Next we need to define a module MINQUEUE:

fmod MINQUEUE is

pr NNPAIR .

sort MQueue .

op empq : ->MQueue [ctor] .

op | : NNPair MQueue ->MQueue [ctor] .

op enq : MQueue NNPair ->MQueue .

op del : MQueue NId ->MQueue .

vars D D’ : Nat .

vars NI NI’ : NId .

var Q : MQueue .

eq enq(empq,<NI’,D’ >) = <NI’,D’ >| empq .

eq enq(<NI’,D >| Q,<NI’,D’ >)

= (if D <D’ then <NI’,D >| Q else enq(Q,<NI’,D’ >) fi) .

30

Page 40: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

eq enq(<NI,D >| Q,<NI’,D’ >)

= (if D’ <D then <NI’,D’ >| <NI,D >| del(Q,NI’)

else <NI,D >| enq(Q,<NI’,D’ >) fi)

[owise] .

eq del(empq,NI’) = empq .

eq del(<NI’,D >| Q,NI’) = Q .

eq del(<NI,D >| Q,NI’) = <NI,D >| del(Q,NI’) [owise] .

endfm

There are two functions in module MINQUEUE:

Function enq is to sort the Nat+Node ID pairs based on the numberof Nat from bigger to smaller, left to right.

Function deq is given a node id, delete the Nat+Node ID pair who ownsuch node id.

� Next is to define OCOMP:

fmod OCOMP is

pr SOUP{NNPair} .

pr NNIDLPSOUP .

pr MINQUEUE .

pr GSTATUS .

pr NAT+INF .

sort OComp .

op (node[ ]: , , , ) : NId NatInf Soup{NNPair} Soup{NNPair} List{NId}->OComp [ctor] .

op (gstat: ) : GStat ->OComp [ctor] .

op (path: ) : NNIDLPair ->OComp [ctor] .

op (mq: ) : MQueue ->OComp [ctor] .

endfm

OCOMP means observable components, which combined nodeid, natural number, node id+ natural number pair, list of nodeid. This is built to make us observe the elements.

31

Page 41: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

4.4 Rewrite Rules

After we defined what we want, we can write the rewrite rules of Dijk-stra.

The states transition of Dijkstra are specified as the following rewriterules:

rl [fin] : (gstat: fin) OCs =⇒ (gstat: fin) OCs .

crl [goal] : (gstat: nFin) (mq: (<NI,D”’ >| Q)) (path: (<D”,L” >))(node[NI]: D,NNPs1,NNPs2,L) OCs

=⇒ (gstat: fin) (mq: (<NI,D”’ >| Q)) (path: (<D,L >)) (node[NI]:D,NNPs1,NNPs2,L) OCs

if goal?(NI) .

Above rewrite rule is when goal is found, but when goal is not found,there will be 4 situations.

Because for a node ni, new current cost will be smaller orequal and big with current cost, and such node ni is visited ornot visited, so totally there will be 4 rewrite rules like this:

crl [srch1] : (gstat: nFin) (mq: (<NI,D” >| Q)) (node[NI]: D,<NI’,W>NNPs1,NNPs2,L) (node[NI’]: D’,NNPs1’,NNPs2’,L’) OCs

=⇒ (gstat: nFin) (mq: enq(<NI,D” >| Q,<NI’,D + W >)) (node[NI]:D,NNPs1,<NI’,W >NNPs2,L) (node[NI’]: D + W,NNPs1’,NNPs2’,L->NI’) OCs

if D + W <D’ /\ NNPs1 =/= empty .

Here ”D + W” represents new current cost, ”D’” representscurrent cost, if NNPs1 is empty, means such node is visited, sothis condition means new current cost is smaller than currentcost, and such node is not been visited yet.

crl [srch2] : (gstat: nFin) (mq: (<NI,D” >| Q)) (node[NI]: D,<NI’,W>NNPs1,NNPs2,L) (node[NI’]: D’,NNPs1’,NNPs2’,L’) OCs

=⇒ (gstat: nFin) (mq: enq(Q,<NI’,D + W>)) (node[NI]: D,NNPs1,<NI’,W>NNPs2,L) (node[NI’]: D + W,NNPs1’,NNPs2’,L ->NI’) OCs

if D + W <D’ /\ NNPs1 = empty .

This condition means new current cost is smaller than currentcost, and such node has been visited.

crl [srch3] : (gstat: nFin) (mq: (<NI,D” >| Q)) (node[NI]: D,<NI’,W>NNPs1,NNPs2,L) (node[NI’]: D’,NNPs1’,NNPs2’,L’) OCs

32

Page 42: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

=⇒ (gstat: nFin) (mq: (<NI,D” >| Q)) (node[NI]: D,NNPs1,<NI’,W>NNPs2,L) (node[NI’]: D’,NNPs1’,NNPs2’,L’) OCs

if not (D + W <D’) /\ NNPs1 =/= empty .

This condition means new current cost is bigger or equal thancurrent cost, and such node is not been visited yet.

crl [srch4] : (gstat: nFin) (mq: (<NI,D” >| Q)) (node[NI]: D,<NI’,W>NNPs1,NNPs2,L) (node[NI’]: D’,NNPs1’,NNPs2’,L’) OCs

=⇒ (gstat: nFin) (mq: Q) (node[NI]: D,NNPs1,<NI’,W >NNPs2,L)(node[NI’]: D’,NNPs1’,NNPs2’,L’) OCs

if not (D + W <D’) /\ NNPs1 = empty .

This condition means new current cost is bigger or equal thancurrent cost, and such node has been visited.

we can see that if our system module is such that the set of statesreachable from the initial state is finite, we can use Maude’s searchcommand and Maude’s model checker for linear temporal logic (LTL)as decision procedures to verify some properties.

And then we can use the search command to search all reachable states.Then we can know the shortest path from the initial node n0 to goaln63:

search [1] in DIJKSTRA64 : init =⇒* (gstat: fin) OCs .

Then we can get such states transition:

see Chapter. 8.

4.5 Finding all paths and model checking

Now we need to find all paths to prove the path we found is the shortestpath.

In order to do that, we need a new module to find all paths.mod ALLPF isinc CONFIG2 .vars NI NI’ : NId .vars D D’ N N’ W : Nat .var NS’ : NStat .vars NNPs1 NNPs2 NNPs1’ NNPs2’ : Soup{NNPair} .vars NLs NLs’ : Soup{NNIDLPair} .var OCs : Soup{OComp2} .

33

Page 43: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Above are some definitions, after are rewrite rules.rl [fin] : {(gstat2: fin) OCs} =>{(gstat2: fin) OCs} . — makes T total.crl [done] : {(gstat2: nFin) OCs} =>{(gstat2: fin) OCs} if done?({OCs})

.rl [srch0] : {(gstat2: nFin) (node[NI]: visited,0,NNPs1,NNPs2,NLs) OCs}=>{(gstat2: nFin) (node[NI]: done,0,NNPs1,NNPs2,NLs) OCs} .rl [srch1] : {(gstat2: nFin) (node[NI]: done,0,<NI’,W>NNPs1,NNPs2,NLs)

(node[NI’]: notYet,s(N’),NNPs1’,NNPs2’,NLs’) OCs}=>{(gstat2: nFin) (node[NI]: done,0,NNPs1,<NI’,W>NNPs2,NLs) (node[NI’]:

visited,N’,NNPs1’,NNPs2’,add(NLs,NI’,W)) OCs} .crl [srch2] : {(gstat2: nFin) (node[NI]: done,0,<NI’,W>NNPs1,NNPs2,NLs)(node[NI’]: NS’,s(N’),NNPs1’,NNPs2’,NLs’) OCs}=>{(gstat2: nFin) (node[NI]: done,0,NNPs1,<NI’,W >NNPs2,NLs)(node[NI’]: NS’,N’,NNPs1’,NNPs2’,NLs’ add(NLs,NI’,W)) OCs}if NS’ =/= notYet .endmEvery node has input or output or both, we count every input

of a node, and then when finish calculate one input of a node, thenumber of input will decrease 1, and the path will be recorded, theprogram will finish until each number of node is decreased to 0,which means every path from each node is found.

Now we use such rewrite rules to search all paths from n0 to n63, but Iencountered a problem, the amount of calculation is too large, I have waitedseveral hours in front of the computer, but it still cannot get the paths, theprogram is fine, I checked it a lot times, so I have to make it half, the newgraph is like this.Fig. 4.5

Figure 4.64: Finding All Path

34

Page 44: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Now n31 is the goal, then we can use such search command:search [1] in ALLPF : init =>* {(gstat2: fin) (node[n31]: done,0,empty,NNPs2,NLs)

OCs} .done means all paths to this node are found.Then we can get such result:Solution 1 (state 209433) states: 209434 rewrites: 17407556 in 161168ms

cpu (161634ms real) (108008 rewrites/second)OCs –>(node[n0]: done,0,empty,<n1,1 ><n8,1 >,<0,n0 >)(node[n1]: done,0, empty,<n2,2 ><n9,1 >,<1,n0 ->n1 >)(node[n2]: done,0,empty,<n3,1 ><n10,2 >,<3,n0 ->n1 ->n2 >)(node[n3]: done,0,empty,<n4,1 ><n11,1 >,<4,n0 ->n1 ->n2 ->n3 >)(node[n4]: done,0,empty,<n5,1 ><n12,2 >,<5,n0 ->n1 ->n2 ->n3 ->n4

>)(node[n5]: done,0,empty,<n6,2 ><n13,2 >,<6, n0 ->n1 ->n2 ->n3 ->n4

->n5 >)...For all results, please see Chapter. 8As we can see, if there are 32 nodes on the graph, the calculation time

is 161168ms, which is less than 3 minutes, and the time of calculation isexponential growth, which means every single node we add, the calculationtime will grow very fast, so all paths of 64 node will not be found in a shorttime, in this case I just show the situation which is 32 nodes in the graph.

For this graph, there are 32 nodes, and the number of paths from noden0 to node n31 is

The number of paths from n0 to n31 which cost is 13:2The number of paths from n0 to n31 which cost is 14:26The number of paths from n0 to n31 which cost is 15:38The number of paths from n0 to n31 which cost is 16:32The number of paths from n0 to n31 which cost is 17:16The number of paths from n0 to n31 which cost is 18:6Total number:120So there are totally 120 paths from node n0 to node n31, and the the

number of shortest paths is 2, which means there are 2 shortest paths fromnode n0 to node n31, the path is:

35

Page 45: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

13,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n6 ->n14 ->n15 ->n23 ->n3113,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n13 ->n14 ->n15 ->n23 ->n31When we use the first module to search the shortest path, it will get such

result:node[n31]: 13,empty,empty,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n6 ->n14

->n15 ->n23 ->n31We can see these paths more clearly by observing the graph:

Figure 4.65: All path found 1

Figure 4.66: All path found 2

Two blue lines are paths found by second RL.one red line is path found by first RL.Fig. 4.65 shows the first path found by second RL.Fig. 4.66 shows the second path found by second RL.Fig. 4.67 show the path found by first RL.

36

Page 46: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Figure 4.67: Path found by first RL

As we can see from the graph, Fig. 4.65 and Fig. 4.67 is the same path,which means the path found by the first RL is one of the shortest paths.

After we found all paths from node n0 to node n31, we can manually findthe shortest paths, and then use them to do model checking.

Then we can do model-checking to check some properties, in order to domodel checking, we need to define two new modules:

mod DIJKSTRA-PREDS ispr DIJKSTRA .inc SATISFACTION .subsort Config <State .ops fin isSPath : ->Prop .op sPaths : ->Soup{NNIDLPair} .var OCs : Soup{OComp} .var D : Nat .var L : List{NId} .var PROP : Prop .Above are some defenitions.eq sPaths = ( <13,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n6 ->n14 ->n15 -

>n23 ->n31 ><13,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n13 ->n14 ->n15 ->n23->n31 >) .

Those paths are shortest paths from which I extracted fromanother rewrite rule.

eq {(gstat: fin) OCs} |= fin = true .eq {(path: (<D,L >)) OCs} |= isSPath = (<D,L >

in sPaths) .eq {OCs} |= PROP = false [owise] .

37

Page 47: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

endmmod DIJKSTRA-CHECK isinc DIJKSTRA-PREDS .inc MODEL-CHECKER .inc LTL-SIMPLIFIER .ops halt correct : ->Formula .eq halt = <>fin .Here <>fin means true until fin is true, if fin is always false,

this will return false, so if Dijkstra never halts, it will return false,if Dijkstra always halts, it will return true.

eq correct = [](fin -><>isSPath) .Here what after [] must always be true, otherwise will return

false, if what Dijkstra found is one of the shortest paths, this willreturns true

endmThis module means there are two properties that can be model checked.The first property is whether Dijkstra always halts.The second property is the path found by Dijkstra is one of the

shortest paths.

And we can do model checking to confirm that:red in DIJKSTRA64-CHECK : modelCheck(init,halt) .This command is to model check the first property, whether Dijkstra

always halt.After using this command, we can get such result:red in DIJKSTRA64-CHECK : modelCheck(init,halt) .Advisory: reparsing module DIJKSTRA64-CHECK due to changes in

imported modules.Advisory: reparsing module DIJKSTRA64-PREDS due to changes in

imported modules.reduce in DIJKSTRA64-CHECK : modelCheck(init, halt) .rewrites: 14083 in 65ms cpu (68ms real) (214696 rewrites/second)result Bool: true

True means Dijkstra always halt.

red in DIJKSTRA64-CHECK : modelCheck(init,correct) .This command is to model check the second property, is the path found

by Dijkstra is one of the shortest paths.red in DIJKSTRA64-CHECK : modelCheck(init,correct) .reduce in DIJKSTRA64-CHECK : modelCheck(init, correct) .

38

Page 48: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

rewrites: 14131 in 76ms cpu (79ms real) (184304 rewrites/second)result Bool: trueAnd also true, which means the path found by Dijkstra is one of the

shortest paths.

39

Page 49: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Chapter 5

More Tests

I used more graphs to do model checking these two properties.

5.1 The 2nd graph

Figure 5.1: The 2nd graph

After using Dijkstra, we can find such shortest path:path: <5,n0 ->n2 ->n5 ->n3 >After finding all paths, we can know there are 3 shortest paths in this

graph.<5,n0 ->n2 ->n5 ->n3 ><5,n0 ->n2 ->n1 ->n4 ->n3 >

40

Page 50: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

<5,n0 ->n2 ->n5 ->n1 ->n4 ->n3 >After model checking, I got such result:

red in DIJKSTRA-CHECK : modelCheck(init,halt) .Advisory: reparsing module DIJKSTRA-CHECK due to changes in im-

ported modules.Advisory: reparsing module DIJKSTRA-PREDS due to changes in im-

ported modules.reduce in DIJKSTRA-CHECK : modelCheck(init, halt) .rewrites: 477 in 0ms cpu (1ms real) (715142 rewrites/second)result Bool: true

red in DIJKSTRA-CHECK : modelCheck(init,correct) .reduce in DIJKSTRA-CHECK : modelCheck(init, correct) .rewrites: 497 in 2ms cpu (3ms real) (198800 rewrites/second)result Bool: true

Which means Dijkstra always halts, and path found by Dijkstra is one ofthe shortest paths.

5.2 The 3rd graph

After using Dijkstra, we can find such shortest path:<60,n1 ->n4 ->n3 ->n5 >After finding all paths, we can know there are 1 shortest paths in this

graph.<60,n1 ->n4 ->n3 ->n5 >After model checking, I got such result:

red in DIJKSTRA-CHECK : modelCheck(init,halt) .Advisory: reparsing module DIJKSTRA-CHECK due to changes in im-

ported modules.Advisory: reparsing module DIJKSTRA-PREDS due to changes in im-

ported modules.reduce in DIJKSTRA-CHECK : modelCheck(init, halt) .rewrites: 406 in 0ms cpu (1ms real) (408040 rewrites/second)result Bool: true

red in DIJKSTRA-CHECK : modelCheck(init,correct) .reduce in DIJKSTRA-CHECK : modelCheck(init, correct) .

41

Page 51: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Figure 5.2: The 3rd graph

rewrites: 426 in 1ms cpu (2ms real) (264267 rewrites/second)result Bool: true

Which means Dijkstra always halts, and path found by Dijkstra is one ofthe shortest paths.

5.3 The 4th graph

After using Dijkstra, we can find such shortest path:<21,n1 ->n9 ->n10 ->n11 ->n5 >After finding all paths, we can know there are 1 shortest paths in this

graph.<21,n1 ->n9 ->n10 ->n11 ->n5 >After model checking, I got such result:red in DIJKSTRA-CHECK : modelCheck(init,halt) .

42

Page 52: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Figure 5.3: The 4th graph

Advisory: reparsing module DIJKSTRA-CHECK due to changes in im-ported modules.

Advisory: reparsing module DIJKSTRA-PREDS due to changes in im-ported modules.

reduce in DIJKSTRA-CHECK : modelCheck(init, halt) .rewrites: 873 in 2ms cpu (3ms real) (377595 rewrites/second)result Bool: true

red in DIJKSTRA-CHECK : modelCheck(init,correct) .reduce in DIJKSTRA-CHECK : modelCheck(init, correct) .rewrites: 893 in 2ms cpu (5ms real) (369008 rewrites/second)result Bool: true

Which means Dijkstra always halts, and path found by Dijkstra is oneof the shortest paths.

5.4 The 5th graph

This is the graph I used in demonstrating Dijktra, let’s do model checking:After using Dijkstra, we can find such shortest path:<6,n0 ->n1 ->n3 ->n5 >

43

Page 53: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Figure 5.4: The 4th graph

After finding all paths, we can know there are 1 shortest paths in thisgraph.

<6,n0 ->n1 ->n3 ->n5 >After model checking, I got such result:

red in DIJKSTRA-CHECK : modelCheck(init,halt) .Advisory: reparsing module DIJKSTRA-CHECK due to changes in im-

ported modules.Advisory: reparsing module DIJKSTRA-PREDS due to changes in im-

ported modules.reduce in DIJKSTRA-CHECK : modelCheck(init, halt) .rewrites: 279 in 1ms cpu (1ms real) (254794 rewrites/second)result Bool: true

red in DIJKSTRA-CHECK : modelCheck(init,correct) .reduce in DIJKSTRA-CHECK : modelCheck(init, correct) .rewrites: 299 in 1ms cpu (2ms real) (157368 rewrites/second)result Bool: true

Which means Dijkstra always halts, and path found by Dijkstra is one ofthe shortest paths.

44

Page 54: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Chapter 6

Discussion

6.1 Summarized diagram of the report

The diagram Fig. 6.1 shows what I have done in this research project.Real World Streets: Imagine some real-world situation.Simple Model: To make such situation simpler by formalizing it to a

graph with nodes and costs.Some Pathfinding Algorithms Like Dijkstra: Use some pathfinding

algorithms like Dijkstra.Formalize to State Machine: To formalize Dijkstra to state machine.Model Checking: After formalizing such algorithms to state machine,

use Search command to check whether such algorithm enjoys a property.

6.2 Writting with Maude code

First, we make the Maude code based on Dijkstra’ algorithm, then we cantest the Maude code here is any bug or not. If we find any bug, we shouldcheck the code and rebuild it, We can modeling based on some propertiessuch as Finite-state model extractions, Simplifications, Restrictions. Finally,we can do model checking here is an error or correct.

6.3 Model checking

The diagram Fig. 6.2 demonstrates the procedure of model checking, aftertesting the Maude code, we can do model checking by using search commandand some properties, in this case, we use search command to search all statesthat whether the shortest path is found, so the counterexample is the shortest

45

Page 55: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Figure 6.1: Work done in this report

path, but if there is no conterexample is found, that means something iswrong, because obviously, this graph must have a shortest path from n0 ton63, if there is not, means no shortest path from n0 to n63, so there haveto be something wrong with the Maude code, so we have to build the codeagain, until a counterexample is found.

46

Page 56: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Figure 6.2: Model checking procedure

47

Page 57: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Chapter 7

Conclusion

We have described the importance of pathfinding algorithms of autonomousrobots/cars, and we have described state machines in a formal specificationby Maude, we described state machine, invariant, Kripke structure and LTL,and then we described Dijkstra and Maude in a mathematical method, webuilt a model similar to the real world situation, which is easy for us toconcentrate on the algorithm, and then we wrote Dijkstra’s algorithm withMaude, and we did model checking, after using a search command, we got acounterexample, which is the shortest path from the start node to the goal.

Since we got the shortest path by using Dijkstra, but we need to verifysome properties of Dijkstra, so I found two properties, one is whether Dijkstraalways halts, the second property is whether the path found by Dijkstra isone of the shortest paths, in order to prove these two properties, we need toknow all possible path from all nodes, so I built a new model that can find allpaths of each node, but when I am using the new model to find all paths in agraph which has 64 nodes, it will take a very long time, so I decrease the nodenumber to 32, and then after about 3 minutes, it will find all possible pathfor all nodes, and then we need to manually find the shortest paths, theremay be one or more paths which cost is the same, then we use all shortestpath feed into another module to do model checking, and then we can knowif Dijkstra enjoys both properties.

To prove this, I did multiple tests by using more different graphs to domodel checking, after finding all paths and model checking, the results areall true, which means Dijkstra’s algorithm enjoys two properties.

There are different pathfinding algorithms nowadays, not only Dijkstra,but also other algorithms like A*, and more properties, some of the algorithmmay not enjoy some properties, and we can test it after model checking, bymodel checking more and more pathfinding algorithms, we can prove moreand more pathfinding algorithms to see whether it is trustworthy.

48

Page 58: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Bibliography

[1] May Thu Aung, Tam Thi Than Nguyen, Kazuhiro Ogata. Analysis ofTwo Flawed Versions of a Mutual Exclusion Protocol with Maude andSMGA, ACM, (2018)

[2] May Thu Aung, Tam Thi Than Nguyen, Kazuhiro Ogata. Guessingproperties of the Qlock mutual exclustion protocol based on its graphicalanimations and confirming the properties by model checking, 7th In-ternational Conference on Software and Computer Applications (ICSA2018), ACM. 2018

[3] Kazuhiro Ogata. A divide & conquer approach to liveness model check-ing under fairness & anti-fairness assumptions, Frontiers of ComputerScience, 2018

[4] Kazuhiro Ogata and Kokichi Futatsugi.Specification and verifica-tion of some classical mutual exclusion algorithms with CafeOBJ,OBJ/CafeOBJ/Maude Workshop at Formal Methods 1999, 1999

[5] Manuel Clavel, Francisco Duran, Steven Eker, Patrick Lincoln, NarcisoMartı-Oliet, Jose Meseguer, and Carolyn Talcott. 2007. All About Maude– A High-Performance Logical Framework: How to Specify, Program andVerify Systems in Rewriting Logic. , Lecture Notes in Computer Science(LNCS), Vol. 4350. Springer

49

Page 59: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

Chapter 8

Appendix

8.1 Nodes

(node[n0]: 0,(<n1,1 ><n8,1 >),empty,n0)(node[n1]: oo,(<n2,2 ><n 9,1 >),empty,nil)(node[n2]: oo,(<n3,1 ><n10,2>),empty,nil)(node[n3]: oo,(<n4,1 ><n11,1>),empty,nil)(node[n4]: oo,(<n5,1 ><n12,2>),empty,nil)(node[n5]: oo,(<n6,2 ><n13,2>),empty,nil)(node[n6]: oo,(<n7,2 ><n14,1>),empty,nil)(node[n7]: oo,(<n15,2>),empty,nil)(node[n8]: oo,(<n9,2 ><n16,2>),empty,nil)(node[n9]: oo,(<n10,2 ><n17,2>),empty,nil)(node[n10]: oo,(<n11,2 ><n18,1>),empty,nil)(node[n11]: oo,(<n12,2 ><n19,2>),empty,nil)(node[n12]: oo,(<n13,2 ><n20,1>),empty,nil)(node[n13]: oo,(<n14,1 ><n21,1>),empty,nil)(node[n14]: oo,(<n15,1 ><n22,2>),empty,nil)(node[n15]: oo,(<n23,1>),empty,nil)(node[n16]: oo,(<n17,1 ><n24,1>),empty,nil)(node[n17]: oo,(<n18,1 ><n25,1>),empty,nil)(node[n18]: oo,(<n19,2 ><n26,1>),empty,nil)(node[n19]: oo,(<n20,1 ><n27,2>),empty,nil)(node[n20]: oo,(<n21,1 ><n28,2>),empty,nil)(node[n21]: oo,(<n22,1 ><n29,2>),empty,nil)(node[n22]: oo,(<n23,2 ><n30,2>),empty,nil)(node[n23]: oo,(<n31,2 >),empty,nil)(node[n24]: oo,(<n25,2 ><n32,2>),empty,nil)

50

Page 60: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

(node[n25]: oo,(<n26,2 ><n33,2>),empty,nil)(node[n26]: oo,(<n27,1 ><n34,2>),empty,nil)(node[n27]: oo,(<n28,2 ><n35,1>),empty,nil)(node[n28]: oo,(<n29,2 ><n36,1>),empty,nil)(node[n29]: oo,(<n30,1 ><n37,1>),empty,nil)(node[n30]: oo,(<n31,2 ><n38,1>),empty,nil)(node[n31]: oo,(<n39,2 >),empty,nil)(node[n32]: oo,(<n33,1 ><n40,1>),empty,nil)(node[n33]: oo,(<n34,1 ><n41,1>),empty,nil)(node[n34]: oo,(<n35,2 ><n42,2>),empty,nil)(node[n35]: oo,(<n36,1 ><n43,2>),empty,nil)(node[n36]: oo,(<n37,1 ><n44,2>),empty,nil)(node[n37]: oo,(<n38,2 ><n45,2>),empty,nil)(node[n38]: oo,(<n39,1 ><n46,2>),empty,nil)(node[n39]: oo,(<n47,1 >),empty,nil)(node[n40]: oo,(<n41,2 ><n48,2>),empty,nil)(node[n41]: oo,(<n42,2 ><n49,2>),empty,nil)(node[n42]: oo,(<n43,1 ><n50,1>),empty,nil)(node[n43]: oo,(<n44,2 ><n51,1>),empty,nil)(node[n44]: oo,(<n45,2 ><n52,2>),empty,nil)(node[n45]: oo,(<n46,2 ><n53,1>),empty,nil)(node[n46]: oo,(<n47,2 ><n54,1>),empty,nil)(node[n47]: oo,(<n55,2 >),empty,nil)(node[n48]: oo,(<n49,1 ><n56,1>),empty,nil)(node[n49]: oo,(<n50,2 ><n57,1>),empty,nil)(node[n50]: oo,(<n51,2 ><n58,1>),empty,nil)(node[n51]: oo,(<n52,2 ><n59,2>),empty,nil)(node[n52]: oo,(<n53,1 ><n60,1>),empty,nil)(node[n53]: oo,(<n54,1 ><n61,2>),empty,nil)(node[n54]: oo,(<n55,1 ><n62,2>),empty,nil)(node[n55]: oo,(<n63,2 >),empty,nil)(node[n56]: oo,(<n57,2 >),empty,nil)(node[n57]: oo,(<n58,2 >),empty,nil)(node[n58]: oo,(<n59,1 >),empty,nil)(node[n59]: oo,(<n60,1 >),empty,nil)(node[n60]: oo,(<n61,2 >),empty,nil)(node[n61]: oo,(<n62,2 >),empty,nil)(node[n62]: oo,(<n63,1 >),empty,nil)(node[n63]: oo,empty,empty,nil)

51

Page 61: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

8.2 Path found

Solution 1 (state 1810)OCs –>path: <17,n0 ->n1 ->n9 ->n10 ->n18 ->n26 ->n27 ->n35 ->n36

->n37 ->n45 ->n53 ->n54 ->n55 ->n63 >mq: (<n63,17 >— empq)(node[n0]: 0,empty,<n1,1 ><n8,1 >,n0)(node[n1]: 1,empty,<n2,2 ><n9,1 >,n0 ->n1)(node[n2]: 3,empty,<n3,1 ><n10,2 >,n0 ->n1 ->n2)(node[n3]: 4, empty,<n4,1 ><n11,1 >,n0 ->n1 ->n2 ->n3)(node[n4]: 5,empty,<n5,1 ><n12,2 >,n0 ->n1 ->n2 ->n3 ->n4)(node[n5]: 6,empty,<n6,2 ><n13,2 >,n0 ->n1 ->n2 ->n3 ->n4 ->n5)(node[n6]: 8,empty,<n7,2 ><n14,1 >,n0 ->n1 ->n2 ->n3 ->n4 ->n5 -

>n6)(node[n7]: 10,empty,<n15,2 >,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n6 ->n7)(node[n8]: 1,empty,<n9,2 ><n16,2 >,n0 ->n8)(node[n9]: 2, empty,<n10,2 ><n17,2 >,n0 ->n1 ->n9)(node[n10]: 4,empty,<n11,2 ><n18,1 >,n0 ->n1 ->n9 ->n10)(node[n11]: 5,empty,<n12,2 ><n19,2 >,n0 ->n1 ->n2 ->n3 ->n11)( node[n12]: 7,empty,<n13,2 ><n20,1 >,n0 ->n1 ->n2 ->n3 ->n4 ->n12)(node[n13]: 8,empty,<n14,1 ><n21,1 >,n0 ->n1 ->n2 ->n3 ->n4 ->n5

->n13)(node[n14]: 9,empty,<n15,1 ><n22,2 >,n0 ->n1 ->n2 ->n3 ->n4 ->n5

->n6 ->n14)(node[n15]: 10,empty,<n23,1 >,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n6 -

>n14 ->n15)(node[n16]: 3,empty,<n17, 1 ><n24,1 >,n0 ->n8 ->n16)(node[n17]: 4,empty,<n18,1 ><n25,1 >,n0 ->n1 ->n9 ->n17)(node[n18]: 5,empty,<n19,2 ><n26,1 >,n0 ->n1 ->n9 ->n10 ->n18)(node[n19]: 7,empty,<n20,1 ><n27,2 >,n0 ->n1 ->n9 ->n10 ->n18 -

>n19)(node[n20]: 8,empty,<n21,1 ><n28,2 >,n0 ->n1 ->n9 ->n10 ->n18 -

>n19 ->n20)(node[n21]: 9,empty,<n22,1 ><n29,2 >,n0 ->n1 ->n2 ->n3 ->n4 ->n5

->n13 ->n21)(node[n22]: 10,empty,<n23,2 ><n30,2 >,n0 ->n1 ->n2 ->n3 ->n4 ->n5

->n13 ->n21 ->n22)(node[n23]: 11, empty,<n31,2 >,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n6

->n14 ->n15 ->n23)(node[n24]: 4,empty,<n25,2 ><n32,2 >,n0 ->n8 ->n16 ->n24)(node[n25]: 5,empty,<n26,2 ><n33,2 >,n0 ->n1 ->n9 ->n17 ->n25)

52

Page 62: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

(node[n26]: 6,empty,<n27,1 ><n34,2 >,n0 ->n1 ->n9 ->n10 ->n18 ->n26)

(node[n27]: 7,empty,<n28,2 ><n35,1 >,n0 ->n1 ->n9 ->n10 ->n18 ->n26 ->n27)

(node[n28]: 9,empty,<n29,2 ><n36,1 >,n0 ->n1 ->n9 ->n10 ->n18 ->n26 ->n27 ->n28)

(node[n29]: 11,empty,<n30,1 ><n37,1 >,n0 ->n1 ->n9 ->n10 ->n18 ->n26 ->n27 ->n28 ->n29)

(node[n30]: 12,empty,<n31,2 ><n38,1 >,n0 ->n1 ->n2 ->n3 ->n4 ->n5->n13 ->n21 ->n22 ->n30)

(node[n31]: 13,empty,<n39,2 >,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n6 ->n14 ->n15 ->n23 ->n31)

(node[n32]: 6,empty,<n33,1 ><n40,1 >,n0 ->n8 ->n16 ->n24 ->n32)(node[n33]: 7,empty,<n34,1 ><n41,1 >,n0 ->n1 ->n9 ->n17 ->n25 -

>n33)(node[n34]: 8,empty,<n35,2 ><n42,2 >,n0 ->n1 ->n9 ->n10 ->n18 -

>n26 ->n34)(node[n35]: 8,empty,<n36,1 ><n43,2 >,n0 ->n1 ->n9 ->n10 ->n18 -

>n26 ->n27 ->n35)(node[n36]: 9,empty,<n37,1 ><n44,2 >,n0 ->n1 ->n9 ->n10 ->n18 -

>n26 ->n27 ->n35 ->n36)(node[n37]: 10,empty,<n38,2 ><n45,2 >,n0 ->n1 ->n9 ->n10 ->n18 -

>n26 ->n27 ->n35 ->n36 ->n37)(node[n38]: 12,empty,<n39,1 ><n46,2 >,n0 ->n1 ->n9 ->n10 ->n18 -

>n26 ->n27 ->n35 ->n36 ->n37 ->n38)( node[n39]: 13,empty,<n47,1 >,n0 ->n1 ->n9 ->n10 ->n18 ->n26 ->n27

->n35 ->n36 ->n37 ->n38 ->n39)(node[n40]: 7,empty,<n41,2 ><n48,2 >,n0 ->n8 ->n16 ->n24 ->n32 -

>n40)(node[n41]: 8,empty,<n42,2 ><n49,2 >,n0 ->n1 ->n9 ->n17 ->n25 -

>n33 ->n41)(node[n42]: 10,empty,<n43,1 ><n50,1 >,n0 ->n1 ->n9 ->n10 ->n18 -

>n26 ->n34 ->n42)(node[n43]: 10,empty,<n44,2 ><n51,1 >,n0 ->n1 ->n9 ->n10 ->n18 -

>n26 ->n27 ->n35 ->n43)(node[n44]: 11,empty,<n45,2 ><n52,2 >,n0 ->n1 ->n9 ->n10 ->n18 -

>n26 ->n27 ->n35 ->n36 ->n44)(node[n45]: 12,empty,<n46,2 ><n53,1 >,n0 ->n1 ->n9 ->n10 ->n18 -

>n26 ->n27 ->n35 ->n36 ->n37 ->n45)(node[n46]: 14,empty,<n47,2 ><n54,1 >,n0 ->n1 ->n9 ->n10 ->n18 -

>n26 ->n27 ->n35 ->n36 ->n37 ->n38 ->n46)

53

Page 63: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

(node[n47]: 14,empty,<n55,2 >,n0 ->n1 ->n9 ->n10 ->n18 ->n26 ->n27->n35 ->n36 ->n37 ->n38 ->n39 ->n47)

(node[n48]: 9,empty,<n49,1 ><n56,1 >,n0 ->n8 ->n16 ->n24 ->n32 ->n40 ->n48)

(node[n49]: 10,empty,<n50,2 ><n57,1 >,n0 ->n1 ->n9 ->n17 ->n25 ->n33 ->n41 ->n49)

(node[n50]: 11,empty,<n51,2 ><n58,1 >,n0 ->n1 ->n9 ->n10 ->n18 ->n26 ->n34 ->n42 ->n50)

(node[n51]: 11,empty,<n52,2 ><n59,2 >,n0 ->n1 ->n9 ->n10 ->n18 ->n26 ->n27 ->n35 ->n43 ->n51)

(node[n52]: 13,empty,<n53,1 ><n60,1 >,n0 ->n1 ->n9 ->n10 ->n18 ->n26 ->n27 ->n35 ->n36 ->n44 ->n52)

(node[n53]: 13,empty,<n54,1 ><n61,2 >,n0 ->n1 ->n9 ->n10 ->n18 ->n26 ->n27 ->n35 ->n36 ->n37 ->n45 ->n53)

(node[n54]: 14,empty,<n55,1 ><n62,2 >,n0 ->n1 ->n9 ->n10 ->n18 ->n26 ->n27 ->n35 ->n36 ->n37 ->n45 ->n53 ->n54)

(node[n55]: 15,empty,<n63,2 >,n0 ->n1 ->n9 ->n10 ->n18 ->n26 ->n27->n35 ->n36 ->n37 ->n45 ->n53 ->n54 ->n55)

(node[n56]: 10,empty,<n57,2 >,n0 ->n8 ->n16 ->n24 ->n32 ->n40 ->n48 ->n56)

(node[n57]: 11,empty,<n58,2 >,n0 ->n1 ->n9 ->n17 ->n25 ->n33 ->n41->n49 ->n57)

(node[n58]: 12,empty,<n59,1 >,n0 ->n1 ->n9 ->n10 ->n18 ->n26 ->n34->n42 ->n50 ->n58)

(node[n59]: 13,empty,<n60,1 >,n0 ->n1 ->n9 ->n10 ->n18 ->n26 ->n27->n35 ->n43 ->n51 ->n59)

(node[n60]: 14,empty,<n61,2 >,n0 ->n1 ->n9 ->n10 ->n18 ->n26 ->n27->n35 ->n36 ->n44 ->n52 ->n60)

(node[ n61]: 15,empty,<n62,2 >,n0 ->n1 ->n9 ->n10 ->n18 ->n26 ->n27->n35 ->n36 ->n37 ->n45 ->n53 ->n61)

(node[n62]: 16,empty,<n63,1 >,n0 ->n1 ->n9 ->n10 ->n18 ->n26 ->n27->n35 ->n36 ->n37 ->n45 ->n53 ->n54 ->n62)

node[n63]: 17,empty,empty,n0 ->n1 ->n9 ->n10 ->n18 ->n26 ->n27 ->n35 ->n36 ->n37 ->n45 ->n53 ->n54 ->n55 ->n63

This search command is searching the shortest path from node n0 to noden63, as we can see, the shortest path is found, which is

n0 ->n1 ->n9 ->n10 ->n18 ->n26 ->n27 ->n35 ->n36 ->n37 ->n45 ->n53 ->n54 ->n55 ->n63

And the shortest cost is 17.

54

Page 64: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

8.3 All path found from the 32 nodes

(node[n0]: done,0,empty,<n1,1 ><n8,1 >,<0,n0 >)(node[n1]: done,0, empty,<n2,2 ><n9,1 >,<1,n0 ->n1 >)(node[n2]: done,0,empty,<n3,1 ><n10,2 >,<3,n0 ->n1 ->n2 >)(node[n3]: done,0,empty,<n4,1 ><n11,1 >,<4,n0 ->n1 ->n2 ->n3 >)(node[n4]: done,0,empty,<n5,1 ><n12,2 >,<5,n0 ->n1 ->n2 ->n3 ->n4

>)(node[n5]: done,0,empty,<n6,2 ><n13,2 >,<6, n0 ->n1 ->n2 ->n3 ->n4

->n5 >)(node[n6]: done,0,empty,<n7,2 ><n14, 1 >,<8,n0 ->n1 ->n2 ->n3 ->n4

->n5 ->n6 >)(node[n7]: done,0,empty,<n15,2 >,<10,n0 ->n1 ->n2 ->n3 ->n4 ->n5

->n6 ->n7 >)(node[n8]: done,0,empty,<n9,2 ><n16,2 >,<1,n0 ->n8 >)(node[n9]: done,0,empty,<n10,2 ><n17,2 >,<2,n0 ->n1 ->n9 ><3,n0

->n8 ->n9 >)(node[n10]: done,0,empty,<n11,2 ><n18,1 >,<4,n0 ->n1 ->n9 ->n10

><5,n0 ->n1 ->n2 ->n10 ><5,n0 ->n8 ->n9 ->n10 >)(node[n11]: done,0,empty,<n12, 2 ><n19,2 >,<5,n0 ->n1 ->n2 ->n3

->n11 ><6,n0 ->n1 ->n9 ->n10 ->n11 ><7,n0 ->n1 ->n2 ->n10 ->n11><7,n0 ->n8 ->n9 ->n10 ->n11 >)

(node[n12]: done,0,empty,<n13,2 ><n20,1 >,<7,n0 ->n1 ->n2 ->n3 ->n4 ->n12 ><7,n0 ->n1 ->n2 ->n3 ->n11 ->n12 ><8,n0 ->n1 ->n9 ->n10->n11 ->n12 ><9,n0 ->n1 ->n2 ->n10 ->n11 ->n12 ><9,n0 ->n8 ->n9->n10 ->n11 ->n12 >)

(node[n13]: done,0,empty,<n14,1 ><n21,1 >,<8,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n13 ><9,n0 ->n1 ->n2 ->n3 ->n4 ->n12 ->n13 ><9,n0 ->n1->n2 ->n3 ->n11 ->n12 ->n13 ><10,n0 ->n1 ->n9 ->n10 ->n11 ->n12 ->n13 ><11,n0 ->n1 ->n2 ->n10 ->n11 ->n12 ->n13 ><11,n0 ->n8 ->n9->n10 ->n11 ->n12 ->n13 >)

( node[n14]: done,0,empty,<n15,1 ><n22,2 >,<9,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n6 ->n14 ><9,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n13 ->n14><10,n0 ->n1 ->n2 ->n3 ->n4 ->n12 ->n13 ->n14 ><10,n0 ->n1 ->n2->n3 ->n11 ->n12 ->n13 ->n14 ><11,n0 ->n1 ->n9 ->n10 ->n11 ->n12 ->n13 ->n14 ><12,n0 ->n1 ->n2 ->n10 ->n11 ->n12 ->n13 ->n14 ><12,n0->n8 ->n9 ->n10 ->n11 ->n12 ->n13 ->n14 >)

(node[n15]: done,0, empty,<n23,1 >,<10,n0 ->n1 ->n2 ->n3 ->n4 ->n5->n6 ->n14 ->n15 ><10,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n13 ->n14 ->n15><11,n0 ->n1 ->n2 ->n3 ->n4 ->n12 ->n13 ->n14 ->n15 ><11,n0 ->n1->n2 ->n3 ->n11 ->n12 ->n13 ->n14 ->n15 ><12,n0 ->n1 ->n2 ->n3 -

55

Page 65: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

>n4 ->n5 ->n6 ->n7 ->n15 ><12,n0 ->n1 ->n9 ->n10 ->n11 ->n12 ->n13->n14 ->n15 ><13,n0 ->n1 ->n2 ->n10 ->n11 ->n12 ->n13 ->n14 ->n15><13,n0 ->n8 ->n9 ->n10 ->n11 ->n12 ->n13 ->n14 ->n15 >)

(node[n16]: done,0,empty,<n17,1 ><n24,1 >,<3,n0 ->n8 ->n16 >)(node[n17]: done,0, empty,<n18,1 ><n25,1 >,<4,n0 ->n1 ->n9 ->n17

><4,n0 ->n8 ->n16 ->n17 ><5,n0 ->n8 ->n9 ->n17 >)(node[n18]: done,0,empty,<n19,2 ><n26,1 >,<5,n0 ->n1 ->n9 ->n10 -

>n18 ><5,n0 ->n1 ->n9 ->n17 ->n18 ><5,n0 ->n8 ->n16 ->n17 ->n18><6,n0 ->n1 ->n2 ->n10 ->n18 ><6,n0 ->n8 ->n9 ->n10 ->n18 ><6,n0->n8 ->n9 ->n17 ->n18 >)

(node[ n19]: done,0,empty,<n20,1 ><n27,2 >,<7,n0 ->n1 ->n2 ->n3 ->n11 ->n19 ><7,n0 ->n1 ->n9 ->n10 ->n18 ->n19 ><7,n0 ->n1 ->n9->n17 ->n18 ->n19 ><7,n0 ->n8 ->n16 ->n17 ->n18 ->n19 ><8,n0 ->n1 ->n2 ->n10 ->n18 ->n19 ><8,n0 ->n1 ->n9 ->n10 ->n11 ->n19 ><8,n0->n8 ->n9 ->n10 ->n18 ->n19 ><8,n0 ->n8 ->n9 ->n17 ->n18 ->n19><9,n0 ->n1 ->n2 ->n10 ->n11 ->n19 ><9,n0 ->n8 ->n9 ->n10 ->n11->n19 >)

(node[n20]: done,0,empty,<n21,1 ><n28,2 >,<8,n0 ->n1 ->n2 ->n3 ->n4 ->n12 ->n20 ><8,n0 ->n1 ->n2 ->n3 ->n11 ->n12 ->n20 ><8,n0 ->n1 ->n2 ->n3 ->n11 ->n19 ->n20 ><8,n0 ->n1 ->n9 ->n10 ->n18 ->n19->n20 ><8,n0 ->n1 ->n9 ->n17 ->n18 ->n19 ->n20 ><8,n0 ->n8 ->n16->n17 ->n18 ->n19 ->n20 ><9,n0 ->n1 ->n2 ->n10 ->n18 ->n19 ->n20><9,n0 ->n1 ->n9 ->n10 ->n11 ->n12 ->n20 ><9,n0 ->n1 ->n9 ->n10->n11 ->n19 ->n20 ><9,n0 ->n8 ->n9 ->n10 ->n18 ->n19 ->n20 ><9,n0->n8 ->n9 ->n17 ->n18 ->n19 ->n20 ><10, n0 ->n1 ->n2 ->n10 ->n11->n12 ->n20 ><10,n0 ->n1 ->n2 ->n10 ->n11 ->n19 ->n20 ><10,n0 ->n8->n9 ->n10 ->n11 ->n12 ->n20 ><10, n0 ->n8 ->n9 ->n10 ->n11 ->n19->n20 >)

(node[n21]: done,0,empty,<n22,1 ><n29,2 >,<9,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n13 ->n21 ><9, n0 ->n1 ->n2 ->n3 ->n4 ->n12 ->n20 ->n21><9,n0 ->n1 ->n2 ->n3 ->n11 ->n12 ->n20 ->n21 ><9,n0 ->n1 ->n2 ->n3->n11 ->n19 ->n20 ->n21 ><9,n0 ->n1 ->n9 ->n10 ->n18 ->n19 ->n20->n21 ><9,n0 ->n1 ->n9 ->n17 ->n18 ->n19 ->n20 ->n21 ><9,n0 ->n8->n16 ->n17 ->n18 ->n19 ->n20 ->n21 ><10,n0 ->n1 ->n2 ->n3 ->n4->n12 ->n13 ->n21 ><10,n0 ->n1 ->n2 ->n3 ->n11 ->n12 ->n13 ->n21><10,n0 ->n1 ->n2 ->n10 ->n18 ->n19 ->n20 ->n21 ><10,n0 ->n1 ->n9->n10 ->n11 ->n12 ->n20 ->n21 ><10,n0 ->n1 ->n9 ->n10 ->n11 ->n19 ->n20 ->n21 ><10,n0 ->n8 ->n9 ->n10 ->n18 ->n19 ->n20 ->n21 ><10,n0->n8 ->n9 ->n17 ->n18 ->n19 ->n20 ->n21 ><11,n0 ->n1 ->n2 ->n10 ->n11 ->n12 ->n20 ->n21 ><11,n0 ->n1 ->n2 ->n10 ->n11 ->n19 ->n20->n21 ><11,n0 ->n1 ->n9 ->n10 ->n11 ->n12 ->n13 ->n21 ><11, n0 ->n8

56

Page 66: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

->n9 ->n10 ->n11 ->n12 ->n20 ->n21 ><11,n0 ->n8 ->n9 ->n10 ->n11->n19 ->n20 ->n21 ><12,n0 ->n1 ->n2 ->n10 ->n11 ->n12 ->n13 ->n21><12,n0 ->n8 ->n9 ->n10 ->n11 ->n12 ->n13 ->n21 >)

( node[n22]: done,0,empty,<n23,2 ><n30,2 >,<10,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n13 ->n21 ->n22 ><10,n0 ->n1 ->n2 ->n3 ->n4 ->n12 ->n20->n21 ->n22 ><10,n0 ->n1 ->n2 ->n3 ->n11 ->n12 ->n20 ->n21 ->n22><10,n0 ->n1 ->n2 ->n3 ->n11 ->n19 ->n20 ->n21 ->n22 ><10, n0 ->n1->n9 ->n10 ->n18 ->n19 ->n20 ->n21 ->n22 ><10,n0 ->n1 ->n9 ->n17->n18 ->n19 ->n20 ->n21 ->n22 ><10,n0 ->n8 ->n16 ->n17 ->n18 ->n19->n20 ->n21 ->n22 ><11,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n6 ->n14 ->n22><11,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n13 ->n14 ->n22 ><11,n0 ->n1 ->n2 ->n3 ->n4 ->n12 ->n13 ->n21 ->n22 ><11,n0 ->n1 ->n2 ->n3 ->n11->n12 ->n13 ->n21 ->n22 ><11,n0 ->n1 ->n2 ->n10 ->n18 ->n19 ->n20->n21 ->n22 ><11,n0 ->n1 ->n9 ->n10 ->n11 ->n12 ->n20 ->n21 ->n22><11,n0 ->n1 ->n9 ->n10 ->n11 ->n19 ->n20 ->n21 ->n22 ><11,n0 ->n8->n9 ->n10 ->n18 ->n19 ->n20 ->n21 ->n22 ><11,n0 ->n8 ->n9 ->n17->n18 ->n19 ->n20 ->n21 ->n22 ><12,n0 ->n1 ->n2 ->n3 ->n4 ->n12->n13 ->n14 ->n22 ><12,n0 ->n1 ->n2 ->n3 ->n11 ->n12 ->n13 ->n14 ->n22 ><12,n0 ->n1 ->n2 ->n10 ->n11 ->n12 ->n20 ->n21 ->n22 ><12,n0->n1 ->n2 ->n10 ->n11 ->n19 ->n20 ->n21 ->n22 ><12,n0 ->n1 ->n9 ->n10 ->n11 ->n12 ->n13 ->n21 ->n22 ><12,n0 ->n8 ->n9 ->n10 ->n11->n12 ->n20 ->n21 ->n22 ><12,n0 ->n8 ->n9 ->n10 ->n11 ->n19 ->n20->n21 ->n22 ><13,n0 ->n1 ->n2 ->n10 ->n11 ->n12 ->n13 ->n21 ->n22><13,n0 ->n1 ->n9 ->n10 ->n11 ->n12 ->n13 ->n14 ->n22 ><13,n0 ->n8->n9 ->n10 ->n11 ->n12 ->n13 ->n21 ->n22 ><14,n0 ->n1 ->n2 ->n10->n11 ->n12 ->n13 ->n14 ->n22 ><14,n0 ->n8 ->n9 ->n10 ->n11 ->n12->n13 ->n14 ->n22 >)

(node[n23]: done,0,empty,<n31,2 >,<11,n0 ->n1 ->n2 ->n3 ->n4 ->n5->n6 ->n14 ->n15 ->n23 ><11,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n13 ->n14->n15 ->n23><12,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n13 ->n21 ->n22 ->n23><12,n0 ->n1 ->n2 ->n3 ->n4 ->n12 ->n13 ->n14 ->n15 ->n23 ><12,n0->n1 ->n2 ->n3 ->n4 ->n12 ->n20 ->n21 ->n22 ->n23 ><12,n0 ->n1 ->n2->n3 ->n11 ->n12 ->n13 ->n14 ->n15 ->n23 ><12,n0 ->n1 ->n2 ->n3 ->n11 ->n12 ->n20 ->n21 ->n22 ->n23 ><12,n0 ->n1 ->n2 ->n3 ->n11->n19 ->n20 ->n21 ->n22 ->n23 ><12,n0 ->n1 ->n9 ->n10 ->n18 ->n19->n20 ->n21 ->n22 ->n23 ><12,n0 ->n1 ->n9 ->n17 ->n18 ->n19 ->n20->n21 ->n22 ->n23 ><12,n0 ->n8 ->n16 ->n17 ->n18 ->n19 ->n20 ->n21->n22 ->n23 ><13,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n6 ->n7 ->n15 ->n23><13,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n6 ->n14 ->n22 ->n23 ><13,n0->n1 ->n2 ->n3 ->n4 ->n5 ->n13 ->n14 ->n22 ->n23 ><13,n0 ->n1 ->n2->n3 ->n4 ->n12 ->n13 ->n21 ->n22 ->n23 ><13,n0 ->n1 ->n2 ->n3 -

57

Page 67: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

>n11 ->n12 ->n13 ->n21 ->n22 ->n23 ><13,n0 ->n1 ->n2 ->n10 ->n18->n19 ->n20 ->n21 ->n22 ->n23 ><13,n0 ->n1 ->n9 ->n10 ->n11 ->n12->n13 ->n14 ->n15 ->n23 ><13,n0 ->n1 ->n9 ->n10 ->n11 ->n12 ->n20->n21 ->n22 ->n23 ><13,n0 ->n1 ->n9 ->n10 ->n11 ->n19 ->n20 ->n21->n22 ->n23 ><13,n0 ->n8 ->n9 ->n10 ->n18 ->n19 ->n20 ->n21 ->n22->n23 ><13,n0 ->n8 ->n9 ->n17 ->n18 ->n19 ->n20 ->n21 ->n22 ->n23><14,n0 ->n1 ->n2 ->n3 ->n4 ->n12 ->n13 ->n14 ->n22 ->n23 ><14,n0->n1 ->n2 ->n3 ->n11 ->n12 ->n13 ->n14 ->n22 ->n23 ><14,n0 ->n1->n2 ->n10 ->n11 ->n12 ->n13 ->n14 ->n15 ->n23 ><14,n0 ->n1 ->n2->n10 ->n11 ->n12 ->n20 ->n21 ->n22 ->n23 ><14,n0 ->n1 ->n2 ->n10->n11 ->n19 ->n20 ->n21 ->n22 ->n23 ><14,n0 ->n1 ->n9 ->n10 ->n11->n12 ->n13 ->n21 ->n22 ->n23 ><14,n0 ->n8 ->n9 ->n10 ->n11 ->n12->n13 ->n14 ->n15 ->n23 ><14,n0 ->n8 ->n9 ->n10 ->n11 ->n12 ->n20->n21 ->n22 ->n23 ><14,n0 ->n8 ->n9 ->n10 ->n11 ->n19 ->n20 ->n21->n22 ->n23 ><15,n0 ->n1 ->n2 ->n10 ->n11 ->n12 ->n13 ->n21 ->n22->n23 ><15, n0 ->n1 ->n9 ->n10 ->n11 ->n12 ->n13 ->n14 ->n22 ->n23><15,n0 ->n8 ->n9 ->n10 ->n11 ->n12 ->n13 ->n21 ->n22 ->n23 ><16,n0->n1 ->n2 ->n10 ->n11 ->n12 ->n13 ->n14 ->n22 ->n23 ><16,n0 ->n8->n9 ->n10 ->n11 ->n12 ->n13 ->n14 ->n22 ->n23 >)

(node[n24]: done, 0,empty,<n25,2 >,<4,n0 ->n8 ->n16 ->n24 >)(node[n25]: done,0,empty,<n26,2>,<5,n0 ->n1 ->n9 ->n17 ->n25><5,n0

->n8 ->n16 ->n17 ->n25 ><6,n0 ->n8 ->n9 ->n17 ->n25 ><6,n0 ->n8 ->n16 ->n24 ->n25 >)

(node[n26]: done,0,empty,<n27,1 >,<6,n0 ->n1 ->n9 ->n10 ->n18 ->n26 ><6,n0 ->n1 ->n9 ->n17 ->n18 ->n26 ><6,n0 ->n8 ->n16 ->n17->n18 ->n26 ><7,n0 ->n1 ->n2 ->n10 ->n18 ->n26 ><7,n0 ->n1 ->n9->n17 ->n25 ->n26 ><7,n0 ->n8 ->n9 ->n10 ->n18 ->n26 ><7,n0 ->n8->n9 ->n17 ->n18 ->n26 ><7,n0 ->n8 ->n16 ->n17 ->n25 ->n26 ><8,n0->n8 ->n9 ->n17 ->n25 ->n26 ><8,n0 ->n8 ->n16 ->n24 ->n25 ->n26 >)

(node[n27]: done,0,empty,<n28,2 >,<7,n0 ->n1 ->n9 ->n10 ->n18 ->n26 ->n27 ><7,n0 ->n1 ->n9 ->n17 ->n18 ->n26 ->n27 ><7,n0 ->n8->n16 ->n17 ->n18 ->n26 ->n27 ><8,n0 ->n1 ->n2 ->n10 ->n18 ->n26->n27 ><8,n0 ->n1 ->n9 ->n17 ->n25 ->n26 ->n27 ><8,n0 ->n8 ->n9->n10 ->n18 ->n26 ->n27 ><8,n0 ->n8 ->n9 ->n17 ->n18 ->n26 ->n27><8,n0 ->n8 ->n16 ->n17 ->n25 ->n26 ->n27 ><9, n0 ->n1 ->n2 ->n3->n11 ->n19 ->n27 ><9,n0 ->n1 ->n9 ->n10 ->n18 ->n19 ->n27 ><9,n0->n1 ->n9 ->n17 ->n18 ->n19 ->n27 ><9,n0 ->n8 ->n9 ->n17 ->n25 ->n26 ->n27 ><9,n0 ->n8 ->n16 ->n17 ->n18 ->n19 ->n27 ><9,n0 ->n8->n16 ->n24 ->n25 ->n26 ->n27 ><10,n0 ->n1 ->n2 ->n10 ->n18 ->n19->n27 ><10,n0 ->n1 ->n9 ->n10 ->n11 ->n19 ->n27 ><10,n0 ->n8 ->n9->n10 ->n18 ->n19 ->n27 ><10,n0 ->n8 ->n9 ->n17 ->n18 ->n19 ->n27

58

Page 68: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

><11,n0 ->n1 ->n2 ->n10 ->n11 ->n19 ->n27 ><11,n0 ->n8 ->n9 ->n10->n11 ->n19 ->n27 >)

(node[ n28]: done,0,empty,<n29,2 >,<9,n0 ->n1 ->n9 ->n10 ->n18 ->n26 ->n27 ->n28 ><9,n0 ->n1 ->n9 ->n17 ->n18 ->n26 ->n27 ->n28><9,n0 ->n8 ->n16 ->n17 ->n18 ->n26 ->n27 ->n28 ><10,n0 ->n1 ->n2->n3 ->n4 ->n12 ->n20 ->n28 ><10,n0 ->n1 ->n2 ->n3 ->n11 ->n12 ->n20 ->n28 ><10,n0 ->n1 ->n2 ->n3 ->n11 ->n19 ->n20 ->n28 ><10,n0->n1 ->n2 ->n10 ->n18 ->n26 ->n27 ->n28 ><10,n0 ->n1 ->n9 ->n10 ->n18 ->n19 ->n20 ->n28 ><10,n0 ->n1 ->n9 ->n17 ->n18 ->n19 ->n20->n28 ><10,n0 ->n1 ->n9 ->n17 ->n25 ->n26 ->n27 ->n28 ><10,n0 ->n8->n9 ->n10 ->n18 ->n26 ->n27 ->n28 ><10,n0 ->n8 ->n9 ->n17 ->n18->n26 ->n27 ->n28 ><10,n0 ->n8 ->n16 ->n17 ->n18 ->n19 ->n20 ->n28><10,n0 ->n8 ->n16 ->n17 ->n25 ->n26 ->n27 ->n28 ><11,n0 ->n1 ->n2->n3 ->n11 ->n19 ->n27 ->n28 ><11,n0 ->n1 ->n2 ->n10 ->n18 ->n19 ->n20 ->n28 ><11,n0 ->n1 ->n9 ->n10 ->n11 ->n12 ->n20 ->n28 ><11,n0->n1 ->n9 ->n10 ->n11 ->n19 ->n20 ->n28 ><11,n0 ->n1 ->n9 ->n10 ->n18 ->n19 ->n27 ->n28 ><11,n0 ->n1 ->n9 ->n17 ->n18 ->n19 ->n27->n28 ><11,n0 ->n8 ->n9 ->n10 ->n18 ->n19 ->n20 ->n28 ><11,n0 ->n8->n9 ->n17 ->n18 ->n19 ->n20 ->n28 ><11,n0 ->n8 ->n9 ->n17 ->n25->n26 ->n27 ->n28 ><11,n0 ->n8 ->n16 ->n17 ->n18 ->n19 ->n27 ->n28><11,n0 ->n8 ->n16 ->n24 ->n25 ->n26 ->n27 ->n28 ><12,n0 ->n1 ->n2->n10 ->n11 ->n12 ->n20 ->n28 ><12,n0 ->n1 ->n2 ->n10 ->n11 ->n19 ->n20 ->n28 ><12, n0 ->n1 ->n2 ->n10 ->n18 ->n19 ->n27 ->n28 ><12,n0->n1 ->n9 ->n10 ->n11 ->n19 ->n27 ->n28 ><12,n0 ->n8 ->n9 ->n10 ->n11 ->n12 ->n20 ->n28 ><12,n0 ->n8 ->n9 ->n10 ->n11 ->n19 ->n20->n28 ><12,n0 ->n8 ->n9 ->n10 ->n18 ->n19 ->n27 ->n28 ><12,n0 ->n8->n9 ->n17 ->n18 ->n19 ->n27 ->n28 ><13,n0 ->n1 ->n2 ->n10 ->n11->n19 ->n27 ->n28 ><13,n0 ->n8 ->n9 ->n10 ->n11 ->n19 ->n27 ->n28>)

(node[n29]: done,0,empty,<n30,1 >,<11,n0 ->n1 ->n2 ->n3 ->n4 ->n5->n13 ->n21 ->n29 ><11,n0 ->n1 ->n2 ->n3 ->n4 ->n12 ->n20 ->n21 ->n29 ><11,n0 ->n1 ->n2 ->n3 ->n11 ->n12 ->n20 ->n21 ->n29 ><11,n0->n1 ->n2 ->n3 ->n11 ->n19 ->n20 ->n21 ->n29 ><11,n0 ->n1 ->n9 ->n10 ->n18 ->n19 ->n20 ->n21 ->n29 ><11,n0 ->n1 ->n9 ->n10 ->n18->n26 ->n27 ->n28 ->n29 ><11,n0 ->n1 ->n9 ->n17 ->n18 ->n19 ->n20->n21 ->n29 ><11,n0 ->n1 ->n9 ->n17 ->n18 ->n26 ->n27 ->n28 ->n29><11,n0 ->n8 ->n16 ->n17 ->n18 ->n19 ->n20 ->n21 ->n29 ><11,n0 ->n8->n16 ->n17 ->n18 ->n26 ->n27 ->n28 ->n29 ><12,n0 ->n1 ->n2 ->n3 ->n4 ->n12 ->n13 ->n21 ->n29 ><12,n0 ->n1 ->n2 ->n3 ->n4 ->n12 ->n20->n28 ->n29 ><12,n0 ->n1 ->n2 ->n3 ->n11 ->n12 ->n13 ->n21 ->n29><12,n0 ->n1 ->n2 ->n3 ->n11 ->n12 ->n20 ->n28 ->n29 ><12,n0 ->n1

59

Page 69: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

->n2 ->n3 ->n11 ->n19 ->n20 ->n28 ->n29 ><12,n0 ->n1 ->n2 ->n10 ->n18 ->n19 ->n20 ->n21 ->n29 ><12,n0 ->n1 ->n2 ->n10 ->n18 ->n26->n27 ->n28 ->n29 ><12, n0 ->n1 ->n9 ->n10 ->n11 ->n12 ->n20 ->n21 ->n29 ><12,n0 ->n1 ->n9 ->n10 ->n11 ->n19 ->n20 ->n21 ->n29 ><12,n0->n1 ->n9 ->n10 ->n18 ->n19 ->n20 ->n28 ->n29 ><12,n0 ->n1 ->n9 ->n17 ->n18 ->n19 ->n20 ->n28 ->n29 ><12,n0 ->n1 ->n9 ->n17 ->n25->n26 ->n27 ->n28 ->n29 ><12,n0 ->n8 ->n9 ->n10 ->n18 ->n19 ->n20->n21 ->n29 ><12,n0 ->n8 ->n9 ->n10 ->n18 ->n26 ->n27 ->n28 ->n29><12, n0 ->n8 ->n9 ->n17 ->n18 ->n19 ->n20 ->n21 ->n29 ><12,n0 ->n8->n9 ->n17 ->n18 ->n26 ->n27 ->n28 ->n29 ><12,n0 ->n8 ->n16 ->n17->n18 ->n19 ->n20 ->n28 ->n29 ><12,n0 ->n8 ->n16 ->n17 ->n25 ->n26->n27 ->n28 ->n29 ><13,n0 ->n1 ->n2 ->n3 ->n11 ->n19 ->n27 ->n28 ->n29 ><13,n0 ->n1 ->n2 ->n10 ->n11 ->n12 ->n20 ->n21 ->n29 ><13,n0->n1 ->n2 ->n10 ->n11 ->n19 ->n20 ->n21 ->n29 ><13, n0 ->n1 ->n2 ->n10 ->n18 ->n19 ->n20 ->n28 ->n29 ><13,n0 ->n1 ->n9 ->n10 ->n11->n12 ->n13 ->n21 ->n29 ><13,n0 ->n1 ->n9 ->n10 ->n11 ->n12 ->n20->n28 ->n29 ><13,n0 ->n1 ->n9 ->n10 ->n11 ->n19 ->n20 ->n28 ->n29><13,n0 ->n1 ->n9 ->n10 ->n18 ->n19 ->n27 ->n28 ->n29 ><13,n0 ->n1->n9 ->n17 ->n18 ->n19 ->n27 ->n28 ->n29 ><13,n0 ->n8 ->n9 ->n10->n11 ->n12 ->n20 ->n21 ->n29 ><13, n0 ->n8 ->n9 ->n10 ->n11 ->n19->n20 ->n21 ->n29 ><13,n0 ->n8 ->n9 ->n10 ->n18 ->n19 ->n20 ->n28 ->n29 ><13,n0 ->n8 ->n9 ->n17 ->n18 ->n19 ->n20 ->n28 ->n29 ><13,n0->n8 ->n9 ->n17 ->n25 ->n26 ->n27 ->n28 ->n29 ><13,n0 ->n8 ->n16->n17 ->n18 ->n19 ->n27 ->n28 ->n29 ><13,n0 ->n8 ->n16 ->n24 ->n25->n26 ->n27 ->n28 ->n29 ><14,n0 ->n1 ->n2 ->n10 ->n11 ->n12 ->n13->n21 ->n29 ><14, n0 ->n1 ->n2 ->n10 ->n11 ->n12 ->n20 ->n28 ->n29><14,n0 ->n1 ->n2 ->n10 ->n11 ->n19 ->n20 ->n28 ->n29 ><14,n0 ->n1->n2 ->n10 ->n18 ->n19 ->n27 ->n28 ->n29 ><14,n0 ->n1 ->n9 ->n10->n11 ->n19 ->n27 ->n28 ->n29 ><14,n0 ->n8 ->n9 ->n10 ->n11 ->n12->n13 ->n21 ->n29 ><14,n0 ->n8 ->n9 ->n10 ->n11 ->n12 ->n20 ->n28->n29 ><14,n0 ->n8 ->n9 ->n10 ->n11 ->n19 ->n20 ->n28 ->n29 ><14,n0 ->n8 ->n9 ->n10 ->n18 ->n19 ->n27 ->n28 ->n29 ><14,n0 ->n8 ->n9->n17 ->n18 ->n19 ->n27 ->n28 ->n29 ><15,n0 ->n1 ->n2 ->n10 ->n11->n19 ->n27 ->n28 ->n29 ><15,n0 ->n8 ->n9 ->n10 ->n11 ->n19 ->n27->n28 ->n29 >)

node[n30]: done,0,empty,<n31,2 >,<12,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n13 ->n21 ->n22 ->n30 ><12,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n13 ->n21->n29 ->n30 ><12,n0 ->n1 ->n2 ->n3 ->n4 ->n12 ->n20 ->n21 ->n22 ->n30 ><12,n0 ->n1 ->n2 ->n3 ->n4 ->n12 ->n20 ->n21 ->n29 ->n30><12,n0 ->n1 ->n2 ->n3 ->n11 ->n12 ->n20 ->n21 ->n22 ->n30 ><12,n0->n1 ->n2 ->n3 ->n11 ->n12 ->n20 ->n21 ->n29 ->n30 ><12,n0 ->n1

60

Page 70: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

->n2 ->n3 ->n11 ->n19 ->n20 ->n21 ->n22 ->n30 ><12,n0 ->n1 ->n2->n3 ->n11 ->n19 ->n20 ->n21 ->n29 ->n30 ><12,n0 ->n1 ->n9 ->n10->n18 ->n19 ->n20 ->n21 ->n22 ->n30 ><12,n0 ->n1 ->n9 ->n10 ->n18->n19 ->n20 ->n21 ->n29 ->n30 ><12,n0 ->n1 ->n9 ->n10 ->n18 ->n26->n27 ->n28 ->n29 ->n30 ><12,n0 ->n1 ->n9 ->n17 ->n18 ->n19 ->n20->n21 ->n22 ->n30 ><12,n0 ->n1 ->n9 ->n17 ->n18 ->n19 ->n20 ->n21->n29 ->n30 ><12,n0 ->n1 ->n9 ->n17 ->n18 ->n26 ->n27 ->n28 ->n29->n30 ><12,n0 ->n8 ->n16 ->n17 ->n18 ->n19 ->n20 ->n21 ->n22 ->n30><12,n0 ->n8 ->n16 ->n17 ->n18 ->n19 ->n20 ->n21 ->n29 ->n30 ><12,n0 ->n8 ->n16 ->n17 ->n18 ->n26 ->n27 ->n28 ->n29 ->n30 ><13,n0 ->n1->n2 ->n3 ->n4 ->n5 ->n6 ->n14 ->n22 ->n30 ><13,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n13 ->n14 ->n22 ->n30 ><13,n0 ->n1 ->n2 ->n3 ->n4 ->n12->n13 ->n21 ->n22 ->n30 ><13,n0 ->n1 ->n2 ->n3 ->n4 ->n12 ->n13->n21 ->n29 ->n30 ><13,n0 ->n1 ->n2 ->n3 ->n4 ->n12 ->n20 ->n28->n29 ->n30 ><13,n0 ->n1 ->n2 ->n3 ->n11 ->n12 ->n13 ->n21 ->n22->n30 ><13,n0 ->n1 ->n2 ->n3 ->n11 ->n12 ->n13 ->n21 ->n29 ->n30><13,n0 ->n1 ->n2 ->n3 ->n11 ->n12 ->n20 ->n28 ->n29 ->n30 ><13,n0->n1 ->n2 ->n3 ->n11 ->n19 ->n20 ->n28 ->n29 ->n30 ><13,n0 ->n1->n2 ->n10 ->n18 ->n19 ->n20 ->n21 ->n22 ->n30 ><13,n0 ->n1 ->n2->n10 ->n18 ->n19 ->n20 ->n21 ->n29 ->n30 ><13,n0 ->n1 ->n2 ->n10->n18 ->n26 ->n27 ->n28 ->n29 ->n30 ><13,n0 ->n1 ->n9 ->n10 ->n11->n12 ->n20 ->n21 ->n22 ->n30 ><13,n0 ->n1 ->n9 ->n10 ->n11 ->n12->n20 ->n21 ->n29 ->n30 ><13,n0 ->n1 ->n9 ->n10 ->n11 ->n19 ->n20->n21 ->n22 ->n30 ><13,n0 ->n1 ->n9 ->n10 ->n11 ->n19 ->n20 ->n21->n29 ->n30 ><13, n0 ->n1 ->n9 ->n10 ->n18 ->n19 ->n20 ->n28 ->n29->n30 ><13,n0 ->n1 ->n9 ->n17 ->n18 ->n19 ->n20 ->n28 ->n29 ->n30><13,n0 ->n1 ->n9 ->n17 ->n25 ->n26 ->n27 ->n28 ->n29 ->n30 ><13,n0->n8 ->n9 ->n10 ->n18 ->n19 ->n20 ->n21 ->n22 ->n30 ><13,n0 ->n8->n9 ->n10 ->n18 ->n19 ->n20 ->n21 ->n29 ->n30 ><13,n0 ->n8 ->n9->n10 ->n18 ->n26 ->n27 ->n28 ->n29 ->n30 ><13,n0 ->n8 ->n9 ->n17->n18 ->n19 ->n20 ->n21 ->n22 ->n30 ><13,n0 ->n8 ->n9 ->n17 ->n18->n19 ->n20 ->n21 ->n29 ->n30 ><13,n0 ->n8 ->n9 ->n17 ->n18 ->n26->n27 ->n28 ->n29 ->n30 ><13,n0 ->n8 ->n16 ->n17 ->n18 ->n19 ->n20->n28 ->n29 ->n30 ><13,n0 ->n8 ->n16 ->n17 ->n25 ->n26 ->n27 ->n28->n29 ->n30 ><14,n0 ->n1 ->n2 ->n3 ->n4 ->n12 ->n13 ->n14 ->n22->n30 ><14,n0 ->n1 ->n2 ->n3 ->n11 ->n12 ->n13 ->n14 ->n22 ->n30><14,n0 ->n1 ->n2 ->n3 ->n11 ->n19 ->n27 ->n28 ->n29 ->n30 ><14,n0->n1 ->n2 ->n10 ->n11 ->n12 ->n20 ->n21 ->n22 ->n30 ><14,n0 ->n1->n2 ->n10 ->n11 ->n12 ->n20 ->n21 ->n29 ->n30 ><14,n0 ->n1 ->n2->n10 ->n11 ->n19 ->n20 ->n21 ->n22 ->n30 ><14,n0 ->n1 ->n2 ->n10->n11 ->n19 ->n20 ->n21 ->n29 ->n30 ><14,n0 ->n1 ->n2 ->n10 ->n18

61

Page 71: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

->n19 ->n20 ->n28 ->n29 ->n30 ><14,n0 ->n1 ->n9 ->n10 ->n11 ->n12->n13 ->n21 ->n22 ->n30 ><14,n0 ->n1 ->n9 ->n10 ->n11 ->n12 ->n13->n21 ->n29 ->n30 ><14, n0 ->n1 ->n9 ->n10 ->n11 ->n12 ->n20 ->n28->n29 ->n30 ><14,n0 ->n1 ->n9 ->n10 ->n11 ->n19 ->n20 ->n28 ->n29->n30 ><14,n0 ->n1 ->n9 ->n10 ->n18 ->n19 ->n27 ->n28 ->n29 ->n30><14,n0 ->n1 ->n9 ->n17 ->n18 ->n19 ->n27 ->n28 ->n29 ->n30 ><14,n0->n8 ->n9 ->n10 ->n11 ->n12 ->n20 ->n21 ->n22 ->n30 ><14,n0 ->n8->n9 ->n10 ->n11 ->n12 ->n20 ->n21 ->n29 ->n30 ><14,n0 ->n8 ->n9->n10 ->n11 ->n19 ->n20 ->n21 ->n22 ->n30 ><14,n0 ->n8 ->n9 ->n10->n11 ->n19 ->n20 ->n21 ->n29 ->n30 ><14,n0 ->n8 ->n9 ->n10 ->n18->n19 ->n20 ->n28 ->n29 ->n30 ><14,n0 ->n8 ->n9 ->n17 ->n18 ->n19->n20 ->n28 ->n29 ->n30 ><14,n0 ->n8 ->n9 ->n17 ->n25 ->n26 ->n27->n28 ->n29 ->n30 ><14,n0 ->n8 ->n16 ->n17 ->n18 ->n19 ->n27 ->n28->n29 ->n30 ><14,n0 ->n8 ->n16 ->n24 ->n25 ->n26 ->n27 ->n28 ->n29->n30 ><15,n0 ->n1 ->n2 ->n10 ->n11 ->n12 ->n13 ->n21 ->n22 ->n30><15,n0 ->n1 ->n2 ->n10 ->n11 ->n12 ->n13 ->n21 ->n29 ->n30 ><15,n0->n1 ->n2 ->n10 ->n11 ->n12 ->n20 ->n28 ->n29 ->n30 ><15,n0 ->n1->n2 ->n10 ->n11 ->n19 ->n20 ->n28 ->n29 ->n30 ><15,n0 ->n1 ->n2->n10 ->n18 ->n19 ->n27 ->n28 ->n29 ->n30 ><15,n0 ->n1 ->n9 ->n10->n11 ->n12 ->n13 ->n14 ->n22 ->n30 ><15,n0 ->n1 ->n9 ->n10 ->n11->n19 ->n27 ->n28 ->n29 ->n30 ><15,n0 ->n8 ->n9 ->n10 ->n11 ->n12->n13 ->n21 ->n22 ->n30 ><15,n0 ->n8 ->n9 ->n10 ->n11 ->n12 ->n13->n21 ->n29 ->n30 ><15, n0 ->n8 ->n9 ->n10 ->n11 ->n12 ->n20 ->n28->n29 ->n30 ><15,n0 ->n8 ->n9 ->n10 ->n11 ->n19 ->n20 ->n28 ->n29->n30 ><15,n0 ->n8 ->n9 ->n10 ->n18 ->n19 ->n27 ->n28 ->n29 ->n30><15,n0 ->n8 ->n9 ->n17 ->n18 ->n19 ->n27 ->n28 ->n29 ->n30 ><16,n0->n1 ->n2 ->n10 ->n11 ->n12 ->n13 ->n14 ->n22 ->n30 ><16,n0 ->n1->n2 ->n10 ->n11 ->n19 ->n27 ->n28 ->n29 ->n30 ><16,n0 ->n8 ->n9->n10 ->n11 ->n12 ->n13 ->n14 ->n22 ->n30 ><16,n0 ->n8 ->n9 ->n10->n11 ->n19 ->n27 ->n28 ->n29 ->n30 >NNPs2 –>(empty).Soup{NNPair}

NLs –><13,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n6 ->n14 ->n15 ->n23 ->n31

><13,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n13 ->n14 ->n15 ->n23 ->n31><14,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n13 ->n21 ->n22 ->n23 ->n31><14,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n13 ->n21 ->n22 ->n30 ->n31><14,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n13 ->n21 ->n29 ->n30 ->n31><14,n0 ->n1 ->n2 ->n3 ->n4 ->n12 ->n13 ->n14 ->n15 ->n23 ->n31><14,n0 ->n1 ->n2 ->n3 ->n4 ->n12 ->n20 ->n21 ->n22 ->n23 ->n31><14,n0 ->n1 ->n2 ->n3 ->n4 ->n12 ->n20 ->n21 ->n22 ->n30 ->n31><14,n0 ->n1 ->n2 ->n3 ->n4 ->n12 ->n20 ->n21 ->n29 ->n30 ->n31><14,n0 ->n1 ->n2 ->n3 ->n11 ->n12 ->n13 ->n14 ->n15 ->n23 ->n31

62

Page 72: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

><14,n0 ->n1 ->n2 ->n3 ->n11 ->n12 ->n20 ->n21 ->n22 ->n23 ->n31><14,n0 ->n1 ->n2 ->n3 ->n11 ->n12 ->n20 ->n21 ->n22 ->n30 ->n31><14,n0 ->n1 ->n2 ->n3 ->n11 ->n12 ->n20 ->n21 ->n29 ->n30 ->n31><14,n0 ->n1 ->n2 ->n3 ->n11 ->n19 ->n20 ->n21 ->n22 ->n23 ->n31><14,n0 ->n1 ->n2 ->n3 ->n11 ->n19 ->n20 ->n21 ->n22 ->n30 ->n31><14,n0 ->n1 ->n2 ->n3 ->n11 ->n19 ->n20 ->n21 ->n29 ->n30 ->n31><14,n0 ->n1 ->n9 ->n10 ->n18 ->n19 ->n20 ->n21 ->n22 ->n23 ->n31><14,n0 ->n1 ->n9 ->n10 ->n18 ->n19 ->n20 ->n21 ->n22 ->n30 ->n31><14,n0 ->n1 ->n9 ->n10 ->n18 ->n19 ->n20 ->n21 ->n29 ->n30 ->n31><14,n0 ->n1 ->n9 ->n10 ->n18 ->n26 ->n27 ->n28 ->n29 ->n30 ->n31><14,n0 ->n1 ->n9 ->n17 ->n18 ->n19 ->n20 ->n21 ->n22 ->n23 ->n31><14,n0 ->n1 ->n9 ->n17 ->n18 ->n19 ->n20 ->n21 ->n22 ->n30 ->n31><14,n0 ->n1 ->n9 ->n17 ->n18 ->n19 ->n20 ->n21 ->n29 ->n30 ->n31><14,n0 ->n1 ->n9 ->n17 ->n18 ->n26 ->n27 ->n28 ->n29 ->n30 ->n31><14,n0 ->n8 ->n16 ->n17 ->n18 ->n19 ->n20 ->n21 ->n22 ->n23 ->n31><14,n0 ->n8 ->n16 ->n17 ->n18 ->n19 ->n20 ->n21 ->n22 ->n30 ->n31><14,n0 ->n8 ->n16 ->n17 ->n18 ->n19 ->n20 ->n21 ->n29 ->n30 ->n31><14,n0 ->n8 ->n16 ->n17 ->n18 ->n26 ->n27 ->n28 ->n29 ->n30 ->n31><15,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n6 ->n7 ->n15 ->n23 ->n31><15,n0->n1 ->n2 ->n3 ->n4 ->n5 ->n6 ->n14 ->n22 ->n23 ->n31 ><15,n0 ->n1->n2 ->n3 ->n4 ->n5 ->n6 ->n14 ->n22 ->n30 ->n31 ><15,n0 ->n1 ->n2->n3 ->n4 ->n5 ->n13 ->n14 ->n22 ->n23 ->n31 ><15,n0 ->n1 ->n2 ->n3 ->n4 ->n5 ->n13 ->n14 ->n22 ->n30 ->n31 ><15,n0 ->n1 ->n2 ->n3->n4 ->n12 ->n13 ->n21 ->n22 ->n23 ->n31 ><15,n0 ->n1 ->n2 ->n3->n4 ->n12 ->n13 ->n21 ->n22 ->n30 ->n31 ><15,n0 ->n1 ->n2 ->n3 ->n4 ->n12 ->n13 ->n21 ->n29 ->n30 ->n31 ><15,n0 ->n1 ->n2 ->n3 ->n4->n12 ->n20 ->n28 ->n29 ->n30 ->n31 ><15,n0 ->n1 ->n2 ->n3 ->n11->n12 ->n13 ->n21 ->n22 ->n23 ->n31 ><15,n0 ->n1 ->n2 ->n3 ->n11->n12 ->n13 ->n21 ->n22 ->n30 ->n31 ><15, n0 ->n1 ->n2 ->n3 ->n11->n12 ->n13 ->n21 ->n29 ->n30 ->n31 ><15,n0 ->n1 ->n2 ->n3 ->n11->n12 ->n20 ->n28 ->n29 ->n30 ->n31 ><15,n0 ->n1 ->n2 ->n3 ->n11->n19 ->n20 ->n28 ->n29 ->n30 ->n31 ><15,n0 ->n1 ->n2 ->n10 ->n18->n19 ->n20 ->n21 ->n22 ->n23 ->n31 ><15,n0 ->n1 ->n2 ->n10 ->n18->n19 ->n20 ->n21 ->n22 ->n30 ->n31 ><15,n0 ->n1 ->n2 ->n10 ->n18->n19 ->n20 ->n21 ->n29 ->n30 ->n31 ><15,n0 ->n1 ->n2 ->n10 ->n18->n26 ->n27 ->n28 ->n29 ->n30 ->n31 ><15,n0 ->n1 ->n9 ->n10 ->n11->n12 ->n13 ->n14 ->n15 ->n23 ->n31 ><15,n0 ->n1 ->n9 ->n10 ->n11->n12 ->n20 ->n21 ->n22 ->n23 ->n31 ><15,n0 ->n1 ->n9 ->n10 ->n11->n12 ->n20 ->n21 ->n22 ->n30 ->n31 ><15,n0 ->n1 ->n9 ->n10 ->n11->n12 ->n20 ->n21 ->n29 ->n30 ->n31 ><15,n0 ->n1 ->n9 ->n10 ->n11->n19 ->n20 ->n21 ->n22 ->n23 ->n31 ><15,n0 ->n1 ->n9 ->n10 ->n11

63

Page 73: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

->n19 ->n20 ->n21 ->n22 ->n30 ->n31 ><15,n0 ->n1 ->n9 ->n10 ->n11->n19 ->n20 ->n21 ->n29 ->n30 ->n31 ><15,n0 ->n1 ->n9 ->n10 ->n18->n19 ->n20 ->n28 ->n29 ->n30 ->n31 ><15,n0 ->n1 ->n9 ->n17 ->n18->n19 ->n20 ->n28 ->n29 ->n30 ->n31 ><15,n0 ->n1 ->n9 ->n17 ->n25->n26 ->n27 ->n28 ->n29 ->n30 ->n31 ><15,n0 ->n8 ->n9 ->n10 ->n18->n19 ->n20 ->n21 ->n22 ->n23 ->n31 ><15,n0 ->n8 ->n9 ->n10 ->n18->n19 ->n20 ->n21 ->n22 ->n30 ->n31 ><15,n0 ->n8 ->n9 ->n10 ->n18->n19 ->n20 ->n21 ->n29 ->n30 ->n31 ><15,n0 ->n8 ->n9 ->n10 ->n18->n26 ->n27 ->n28 ->n29 ->n30 ->n31 ><15,n0 ->n8 ->n9 ->n17 ->n18->n19 ->n20 ->n21 ->n22 ->n23 ->n31 ><15,n0 ->n8 ->n9 ->n17 ->n18->n19 ->n20 ->n21 ->n22 ->n30 ->n31 ><15, n0 ->n8 ->n9 ->n17 ->n18->n19 ->n20 ->n21 ->n29 ->n30 ->n31 ><15,n0 ->n8 ->n9 ->n17 ->n18->n26 ->n27 ->n28 ->n29 ->n30 ->n31 ><15,n0 ->n8 ->n16 ->n17 ->n18->n19 ->n20 ->n28 ->n29 ->n30 ->n31 ><15,n0 ->n8 ->n16 ->n17 ->n25->n26 ->n27 ->n28 ->n29 ->n30 ->n31 ><16,n0 ->n1 ->n2 ->n3 ->n4->n12 ->n13 ->n14 ->n22 ->n23 ->n31 ><16,n0 ->n1 ->n2 ->n3 ->n4->n12 ->n13 ->n14 ->n22 ->n30 ->n31 ><16,n0 ->n1 ->n2 ->n3 ->n11->n12 ->n13 ->n14 ->n22 ->n23 ->n31 ><16,n0 ->n1 ->n2 ->n3 ->n11->n12 ->n13 ->n14 ->n22 ->n30 ->n31 ><16,n0 ->n1 ->n2 ->n3 ->n11->n19 ->n27 ->n28 ->n29 ->n30 ->n31 ><16,n0 ->n1 ->n2 ->n10 ->n11->n12 ->n13 ->n14 ->n15 ->n23 ->n31 ><16,n0 ->n1 ->n2 ->n10 ->n11->n12 ->n20 ->n21 ->n22 ->n23 ->n31 ><16,n0 ->n1 ->n2 ->n10 ->n11->n12 ->n20 ->n21 ->n22 ->n30 ->n31 ><16,n0 ->n1 ->n2 ->n10 ->n11->n12 ->n20 ->n21 ->n29 ->n30 ->n31 ><16,n0 ->n1 ->n2 ->n10 ->n11->n19 ->n20 ->n21 ->n22 ->n23 ->n31 ><16,n0 ->n1 ->n2 ->n10 ->n11->n19 ->n20 ->n21 ->n22 ->n30 ->n31 ><16,n0 ->n1 ->n2 ->n10 ->n11->n19 ->n20 ->n21 ->n29 ->n30 ->n31 ><16,n0 ->n1 ->n2 ->n10 ->n18->n19 ->n20 ->n28 ->n29 ->n30 ->n31 ><16,n0 ->n1 ->n9 ->n10 ->n11->n12 ->n13 ->n21 ->n22 ->n23 ->n31 ><16,n0 ->n1 ->n9 ->n10 ->n11->n12 ->n13 ->n21 ->n22 ->n30 ->n31 ><16,n0 ->n1 ->n9 ->n10 ->n11->n12 ->n13 ->n21 ->n29 ->n30 ->n31 ><16,n0 ->n1 ->n9 ->n10 ->n11->n12 ->n20 ->n28 ->n29 ->n30 ->n31 ><16,n0 ->n1 ->n9 ->n10 ->n11->n19 ->n20 ->n28 ->n29 ->n30 ->n31 ><16,n0 ->n1 ->n9 ->n10 ->n18->n19 ->n27 ->n28 ->n29 ->n30 ->n31 ><16,n0 ->n1 ->n9 ->n17 ->n18->n19 ->n27 ->n28 ->n29 ->n30 ->n31 ><16, n0 ->n8 ->n9 ->n10 ->n11->n12 ->n13 ->n14 ->n15 ->n23 ->n31 ><16,n0 ->n8 ->n9 ->n10 ->n11->n12 ->n20 ->n21 ->n22 ->n23 ->n31 ><16,n0 ->n8 ->n9 ->n10 ->n11->n12 ->n20 ->n21 ->n22 ->n30 ->n31 ><16,n0 ->n8 ->n9 ->n10 ->n11->n12 ->n20 ->n21 ->n29 ->n30 ->n31 ><16,n0 ->n8 ->n9 ->n10 ->n11->n19 ->n20 ->n21 ->n22 ->n23 ->n31 ><16,n0 ->n8 ->n9 ->n10 ->n11->n19 ->n20 ->n21 ->n22 ->n30 ->n31 ><16,n0 ->n8 ->n9 ->n10 ->n11

64

Page 74: dspace.jaist.ac.jp · We know that in the eld of arti cial intelligence, the automatic path nd-ing algorithm has been widely concerned as an e ective way to improve the robot’s

->n19 ->n20 ->n21 ->n29 ->n30 ->n31 ><16,n0 ->n8 ->n9 ->n10 ->n18->n19 ->n20 ->n28 ->n29 ->n30 ->n31 ><16,n0 ->n8 ->n9 ->n17 ->n18->n19 ->n20 ->n28 ->n29 ->n30 ->n31 ><16,n0 ->n8 ->n9 ->n17 ->n25->n26 ->n27 ->n28 ->n29 ->n30 ->n31 ><16,n0 ->n8 ->n16 ->n17 ->n18->n19 ->n27 ->n28 ->n29 ->n30 ->n31 ><16,n0 ->n8 ->n16 ->n24 ->n25->n26 ->n27 ->n28 ->n29 ->n30 ->n31 ><17,n0 ->n1 ->n2 ->n10 ->n11->n12 ->n13 ->n21 ->n22 ->n23 ->n31 ><17,n0 ->n1 ->n2 ->n10 ->n11->n12 ->n13 ->n21 ->n22 ->n30 ->n31 ><17,n0 ->n1 ->n2 ->n10 ->n11->n12 ->n13 ->n21 ->n29 ->n30 ->n31 ><17,n0 ->n1 ->n2 ->n10 ->n11->n12 ->n20 ->n28 ->n29 ->n30 ->n31 ><17,n0 ->n1 ->n2 ->n10 ->n11->n19 ->n20 ->n28 ->n29 ->n30 ->n31 ><17,n0 ->n1 ->n2 ->n10 ->n18->n19 ->n27 ->n28 ->n29 ->n30 ->n31 ><17,n0 ->n1 ->n9 ->n10 ->n11->n12 ->n13 ->n14 ->n22 ->n23 ->n31 ><17,n0 ->n1 ->n9 ->n10 ->n11->n12 ->n13 ->n14 ->n22 ->n30 ->n31 ><17,n0 ->n1 ->n9 ->n10 ->n11->n19 ->n27 ->n28 ->n29 ->n30 ->n31 ><17,n0 ->n8 ->n9 ->n10 ->n11->n12 ->n13 ->n21 ->n22 ->n23 ->n31 ><17,n0 ->n8 ->n9 ->n10 ->n11->n12 ->n13 ->n21 ->n22 ->n30 ->n31 ><17, n0 ->n8 ->n9 ->n10 ->n11->n12 ->n13 ->n21 ->n29 ->n30 ->n31 ><17,n0 ->n8 ->n9 ->n10 ->n11->n12 ->n20 ->n28 ->n29 ->n30 ->n31 ><17,n0 ->n8 ->n9 ->n10 ->n11->n19 ->n20 ->n28 ->n29 ->n30 ->n31 ><17,n0 ->n8 ->n9 ->n10 ->n18->n19 ->n27 ->n28 ->n29 ->n30 ->n31 ><17,n0 ->n8 ->n9 ->n17 ->n18->n19 ->n27 ->n28 ->n29 ->n30 ->n31 ><18,n0 ->n1 ->n2 ->n10 ->n11->n12 ->n13 ->n14 ->n22 ->n23 ->n31 ><18,n0 ->n1 ->n2 ->n10 ->n11->n12 ->n13 ->n14 ->n22 ->n30 ->n31 ><18,n0 ->n1 ->n2 ->n10 ->n11->n19 ->n27 ->n28 ->n29 ->n30 ->n31 ><18,n0 ->n8 ->n9 ->n10 ->n11->n12 ->n13 ->n14 ->n22 ->n23 ->n31 ><18,n0 ->n8 ->n9 ->n10 ->n11->n12 ->n13 ->n14 ->n22 ->n30 ->n31 ><18,n0 ->n8 ->n9 ->n10 ->n11->n19 ->n27 ->n28 ->n29 ->n30 ->n31 >

65