情報処理学会研究報告 IPSJ SIG Technical Report Vol.2017-GI-37 No /3/7 難しい迷路の条件に関する研究 吉田喜峰廣 1 小泉康一 1 大槻正伸 1 概要 : 迷路とは, ルールに従ってスタート地点から進んで行き, 複雑に入り組んだ道を抜けてゴ

Similar documents
alg2015-6r3.ppt

,,,,., C Java,,.,,.,., ,,.,, i

Java KK-MAS チュートリアル

今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順 ) になるよう 並び替えること

Microsoft PowerPoint - mp13-07.pptx

画像類似度測定の初歩的な手法の検証

IPSJ SIG Technical Report Vol.2016-CE-137 No /12/ e β /α α β β / α A judgment method of difficulty of task for a learner using simple

Microsoft PowerPoint - 06graph3.ppt [互換モード]

IPSJ SIG Technical Report Vol.2015-CVIM-196 No /3/6 1,a) 1,b) 1,c) U,,,, The Camera Position Alignment on a Gimbal Head for Fixed Viewpoint Swi

データ構造

,,,, : - i -

平成 29 年度卒業研究 初心者のためのゲームプログラミング用 教材の開発 函館工業高等専門学校生産システム工学科情報コース 5 年 25 番細見政央指導教員東海林智也

情報処理学会研究報告 IPSJ SIG Technical Report Vol.2015-GI-34 No /7/ % Selections of Discarding Mahjong Piece Using Neural Network Matsui

Microsoft PowerPoint - mp11-06.pptx

問 1 図 1 の図形を作るプログラムを作成せよ 但し ウィンドウの大きさは と し 座標の関係は図 2 に示すものとする 図 1 作成する図形 原点 (0,0) (280,0) (80,0) (180,0) (260,0) (380,0) (0,160) 図 2 座標関係 問 2

1 Fig. 1 Extraction of motion,.,,, 4,,, 3., 1, 2. 2.,. CHLAC,. 2.1,. (256 ).,., CHLAC. CHLAC, HLAC. 2.3 (HLAC ) r,.,. HLAC. N. 2 HLAC Fig. 2

Microsoft Word - 博士論文概要.docx

1., 1 COOKPAD 2, Web.,,,,,,.,, [1]., 5.,, [2].,,.,.,, 5, [3].,,,.,, [4], 33,.,,.,,.. 2.,, 3.., 4., 5., ,. 1.,,., 2.,. 1,,

ダンゴムシの 交替性転向反応に 関する研究 3A15 今野直輝

PowerPoint プレゼンテーション

IPSJ SIG Technical Report Vol.2014-IOT-27 No.14 Vol.2014-SPT-11 No /10/10 1,a) 2 zabbix Consideration of a system to support understanding of f

23 Study on Generation of Sudoku Problems with Fewer Clues

PowerPoint プレゼンテーション


memo

Microsoft PowerPoint - DA2_2018.pptx

C3 データ可視化とツール

Microsoft Word - VBA基礎(6).docx

Rの基本操作

IPSJ SIG Technical Report Vol.2012-GN-82 No.13 Vol.2012-CDS-3 No /1/19 Development and Application of the System which Promotes Sharing of Feel

プレポスト【解説】

Microsoft Word - 9章3 v3.2.docx

テレコンバージョンレンズの原理 ( リアコンバーター ) レンズの焦点距離を伸ばす方法として テレコンバージョンレンズ ( テレコンバーター ; 略して テレコン ) を入れる方法があります これには二つのタイプがあって 一つはレンズとカメラ本体の間に入れるタイプ ( リアコンバーター ) もう一つ

情報処理学会研究報告 IPSJ SIG Technical Report Vol.2013-MBL-68 No.20 Vol.2013-ITS-55 No.20 Vol.2013-DCC-5 No /11/15 文法と迷路を融合したデジタルコンテンツに関する研究 平石真也郭清蓮 A N

フローチャートの書き方

24 LED A visual programming environment for art work using a LED matrix

.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~

ï\éÜA4*

Page 1 of 6 B (The World of Mathematics) November 20, 2006 Final Exam 2006 Division: ID#: Name: 1. p, q, r (Let p, q, r are propositions. ) (10pts) (a

2. CABAC CABAC CABAC 1 1 CABAC Figure 1 Overview of CABAC 2 DCT 2 0/ /1 CABAC [3] 3. 2 値化部 コンテキスト計算部 2 値算術符号化部 CABAC CABAC

バスケットボール

日本感性工学会論文誌

人工知能入門

知識工学 II ( 第 2 回 ) 二宮崇 ( ) 論理的エージェント (7 章 ) 論理による推論 命題論理 述語論理 ブール関数 ( 論理回路 )+ 推論 ブール関数 +( 述語 限量子 ( ) 変数 関数 定数 等号 )+ 推論 7.1 知識

JOURNAL OF THE JAPANESE ASSOCIATION FOR PETROLEUM TECHNOLOGY VOL. 66, NO. 6 (Nov., 2001) (Received August 10, 2001; accepted November 9, 2001) Alterna

Fig. 3 Flow diagram of image processing. Black rectangle in the photo indicates the processing area (128 x 32 pixels).

Web Web [4] Web Web [5] Web 2 Web 3 4 Web Web 2.1 Web Web Web Web Web 2.2 Web Web Web *1 Web * 2*3 Web 3. [6] [7] [8] 4. Web 4.1 Web Web *1 Ama

05_藤田先生_責

Microsoft Word - NumericalComputation.docx

MA3-1 30th Fuzzy System Symposium (Kochi, September 1-3, 2014) Analysis of Comfort Given to Human by Using Sound Generation System Based on Netowork o


井手友里子.indd

始めに, 最下位共通先祖を求めるための関数 LcaDFS( int v ) の処理を記述する. この関数は値を返さない再帰的な void 関数で, 点 v を根とする木 T の部分木を深さ優先探索する. 整数の引数 v は, 木 T の点を示す点番号で, 配列 NodeSpace[ ] へのカーソル

子どもの自尊感情の変容と教師との関係性

早稲田大学大学院日本語教育研究科 修士論文概要書 論文題目 ネパール人日本語学習者による日本語のリズム生成 大熊伊宗 2018 年 3 月

Fig. 1. Example of characters superimposed on delivery slip.

知能と情報, Vol.30, No.5, pp

bc0710_010_015.indd

1 2. Nippon Cataloging Rules NCR [6] (1) 5 (2) 4 3 (3) 4 (4) 3 (5) ISSN 7 International Standard Serial Number ISSN (6) (7) 7 16 (8) ISBN ISSN I

浜松医科大学紀要

A comparative study of the team strengths calculated by mathematical and statistical methods and points and winning rate of the Tokyo Big6 Baseball Le

Present Situation and Problems on Aseismic Design of Pile Foundation By H. Hokugo, F. Ohsugi, A. Omika, S. Nomura, Y. Fukuda Concrete Journal, Vol. 29

Microsoft PowerPoint - DA2_2017.pptx

JavaScript Web JavaScript BitArrow BitArrow ( 4 ) Web VBA JavaScript JavaScript JavaScript Web Ajax(Asynchronous JavaScript + XML) Web. JavaScr

東邦大学理学部情報科学科 2014 年度 卒業研究論文 コラッツ予想の変形について 提出日 2015 年 1 月 30 日 ( 金 ) 指導教員白柳潔 提出者 山中陽子

Microsoft PowerPoint - ca ppt [互換モード]

最近の選挙キャンペーンの動向

Microsoft PowerPoint - 【配布・WEB公開用】SAS発表資料.pptx

[2] , [3] 2. 2 [4] 2. 3 BABOK BABOK(Business Analysis Body of Knowledge) BABOK IIBA(International Institute of Business Analysis) BABOK 7

2 1 ( ) 2 ( ) i

Tf dvi


L1 What Can You Blood Type Tell Us? Part 1 Can you guess/ my blood type? Well,/ you re very serious person/ so/ I think/ your blood type is A. Wow!/ G

& Vol.5 No (Oct. 2015) TV 1,2,a) , Augmented TV TV AR Augmented Reality 3DCG TV Estimation of TV Screen Position and Ro

板バネの元は固定にします x[0] は常に0です : > x[0]:=t->0; (1.2) 初期値の設定をします 以降 for 文処理のため 空集合を生成しておきます : > init:={}: 30 番目 ( 端 ) 以外については 初期高さおよび初速は全て 0 にします 初期高さを x[j]

ISSN NII Technical Report Patent application and industry-university cooperation: Analysis of joint applications for patent in the Universit

IPSJ SIG Technical Report Vol.2012-CG-148 No /8/29 3DCG 1,a) On rigid body animation taking into account the 3D computer graphics came

PowerPoint Presentation

コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n

CAEシミュレーションツールを用いた統計の基礎教育 | (株)日科技研

1: A/B/C/D Fig. 1 Modeling Based on Difference in Agitation Method artisoc[7] A D 2017 Information Processing

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

東邦大学理学部情報科学科 2011 年度 卒業研究論文 Collatz 予想の変形について 提出日 2012 年 1 月 30 日 指導教員白柳潔 提出者 藤田純平

Steel Construction Vol. 6 No. 22(June 1999) Engineering

Microsoft PowerPoint - DA2_2018.pptx

p0124_03

TF-IDF TDF-IDF TDF-IDF Extracting Impression of Sightseeing Spots from Blogs for Supporting Selection of Spots to Visit in Travel Sat

IT i

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

Handsout3.ppt

情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤


(Microsoft Word - \221\262\213\306\230_\225\266_\213\321\220D_\215\305\217I.doc)

( ), ( ) Patrol Mobile Robot To Greet Passing People Takemi KIMURA(Univ. of Tsukuba), and Akihisa OHYA(Univ. of Tsukuba) Abstract This research aims a


2 3 2 JavaScript 2. 1 Q1 1, % % Q Q Q1: 0 0.0% 7.3% 8 2.9% 1, % % 92.6% Q2: 9 3.3% 31.6% %

h23w1.dvi

4 月 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プロ

Functional Programming

三者ミーティング

Transcription:

難しい迷路の条件に関する研究 吉田喜峰廣 小泉康一 大槻正伸 概要 : 迷路とは, ルールに従ってスタート地点から進んで行き, 複雑に入り組んだ道を抜けてゴールまでたどり着くことを目指すパズルゲームである. 昨今様々な迷路ゲームが作られ, 人々の間で楽しまれている. 本研究では難しい迷路の条件について, 何が人間にとって難しいといえるのかプログラムを用いて調査し発見することを目的とする. 迷路を実際に複数の被験者に解いてもらう実験を経て, 進む方向の決定に迷路の構造が影響し, それによって特定の進みやすい通路に移動することがあることが分かった. キーワード : 迷路, 迷路内探索, 迷路内探索における人間の行動心理 Study on the Condition of the Difficult Maze YOSHIDA KIMIHIRO KOICHI KOIZUMI MASANOBU OHTSUKI Abstract: A maze is the puzzle game to arrive to the goal spot through a complicated aisle. Many kind of maze are enjoied as a game by people. In this study, we are researching and discovering the condition of the difficult maze what is difficult for the human. In experiments of solving a maze by some test, we find that the human decide an aisle by structure of a maze and move to an aisle easy to go. Keywords: Maze, Maze search, Ground rule in maze searching for the human 1. はじめに 迷路とは, ルールに従ってスタート地点から進んで行き, 複雑に入り組んだ道を抜けてゴールまでたどり着くことを目指すパズルゲームである. 迷路探索には確率的, 心理的要素や運など様々な要素が関係してくるため, 同じ迷路でも解く人や解き方によって難しく感じるか簡単に感じるかは全く異なる. 迷路においてスタート地点からゴール地点までたどり着くのに移動した距離を移動距離とする. 本研究では人間が実際に迷路を解くケースに焦点を当て, 難しい迷路とはスタートからゴールまでの移動距離が最短のものに比べて大幅に超えてしまうことの多い迷路であるとする. 難しい迷路の条件は, 難しいことと深い関係を持つ迷路内に内在する項目 ( パラメータ ), つまり何が迷路を難しくしているのかであり, 本研究における難しい迷路の定義から, 難しい迷路の条件は移動距離の増加に関係する項目であると考えられる. このことから, 迷路を実際に解き, 移動距離と密接な関係を持つ迷路内に内在する事項を発見することで, 難しい迷路の条件を発見することができると考える. 2. プログラムを用いた迷路の表現 本研究では複数の被験者に迷路を解いてもらう実験を行い, 難しい迷路の条件を直感的に見つけていく. 専用に 作成したプログラムを用いて迷路を表現, 描画し, その中で迷路上を被験者に動いてもらい解いてもらうことにした. 迷路の表現には二次元配列を使用しており, 配列の変数 1 つ 1 つを 1 マスとし, 壁を 1, 通路を 0 などのデータ構造を用いて, それを図として描画する. スタート地点, ゴール地点の情報は x 軸と y 軸の座標で与える. スタート地点からゴール地点までの実際の移動距離は, プログラムによる 1 マス単位の迷路の表現に伴い, スタート地点からゴール地点までに実際に移動した 1 マス 1 マスの移動数で数える. また, 迷路のランダムな生成には, 迷路自動生成アルゴリズムを用いる. 図 1 に示すように大きく 3 種類あり, どれを用いるかによって迷路の構造に差が表れる [1][2]. 実験ではこれらの迷路生成アルゴリズムを作成し, 必要に応じてそれらを選択して運用する. (a) 棒倒し法迷路内に一定間隔に壁を配置し, 一定の規則に従いながら配置した壁の四方 1 マスからランダムに一か所を壁にしていくことで迷路を作成する方法. (b) 穴掘り法迷路内全域を壁とし, その壁を掘り進めるように通路を延ばすことで迷路を作成する方法. (c) 壁のばし法四方の端を除く迷路内全域を通路とし, 壁を延ばして迷 福島工業高等専門学校電気工学科 Electrical Engineering, National Institute of Technology, Fukushima College. 1

路を作る方法. 3. 実験 3.1 第一実験 (a) 棒倒し法 (b) 穴掘り法 (c) 壁のばし法 図 1 迷路自動生成法 Figure 1 Automatic creating method of the maze. 第一実験として,31 31 マスの迷路面積で迷路をランダ ムに生成し, それを 1 迷路の全体が見える状態と,2 視界 の広さを現在位置から四方 ±2 マスに限定する 2 つの状態 で被験者に実際に解いてもらい迷路内での移動軌跡と移動 距離を記録した. その後, 移動距離と迷路の構造に基づい たパラメータとで相関をとり, 移動距離と関係の深いパラ メータを調べる. 3.2 迷路のパラメータ 迷路にはスタート地点からゴール地点に至るまでの長 さや分岐点の数など, 構造に違いを与える要素が存在する. 第一実験ではこれらの要素について迷路内での移動距離に 顕著な影響を与えると思われるものを迷路に内在するパラ メータとして数値化し, 実験の結果と比較する. 第一実験 においては, 以下の要素をパラメータとした. (1) 正解ルート深さ スタート地点からゴール地点まで最短距離でたどり着いた 際の移動距離. (2) 最大深さ スタート地点から最も深い地点まで最短距離でたどり着い た際の移動距離. (3) 分岐点の数 迷路内の分岐点の数. 迷路全域における分岐点の数と正解 ルート内の分岐点の数の両方を含める. (4) 外れ深さ 正解ルートから外れた場合の分岐マスから行き止まりマス までの数のうち最大のもの. 3.3 実験結果 表 1 に第一実験の結果を示す. 表 1 各パラメータにおける移動数との相関係数 Table 1 The coefficient of correlation with each parameter and the number of movement. 1 の全域が見える状態では正解ルート深さとの相関が 最も大きかった. これは, 先に正解ルートを目視で割り出 してから迷路内の移動を開始することができるためである と考えられる. また,2 の視界を制限した場合では, 移動 数と各パラメータとの間に大きな相関は得られなかった. そのため, ゴールが分からない状態では本実験で定めたパ ラメータのほかに, 迷路内の移動数に影響する要素がある ことが示唆される. 4. 第二実験 4.1 第二実験の概要 第二実験では, 迷路の大きさとスタート位置, ゴール位 置をランダムとして迷路を作成し, それを視界の広さを現 在位置から四方 ±2 マスに制限した状態で複数の被験者に 解いてもらって移動距離と移動軌跡を取得した. 迷路は前 述の迷路自動生成アルゴリズムを用いたものを解いてもら い, その結果を踏まえて次に手動で生成した迷路を解いて もらった. その結果から, 平均して移動数の多かった迷路 の共通点を発見し, 移動数が多くなると思われる条件を考 察することを本実験の目的とする. 4.2 実験結果 図 2 にある被験者の移動軌跡の画像の一例を示す. 黒が 壁, 白が一度も通ったことのない通路, 灰色が一度でも通 行した通路を示す. この迷路は手動で生成した. A 点 スタート ゴール 図 2 第二実験で得られた移動軌跡の一例 Figure 2 An example of the track for second experiment. A 点はゴールに至るための重要なポイントで, ここから 右方向に進むとゴールに近づくが, 上方向に進むと決して ゴールにたどり着けない.14 名の被験者のうち, A 点を 通過した際に上に進んだ人は 10 名で, 右に進んだ人は 4 名 となった. 上に進んだ場合は最終的に A 点に戻ってこなけ ればならないため, 移動数が大きく増加した人が多かった. この現象がみられた通路の特徴的な形状についてこの迷路 のスタート地点近くの場所を取り出して別に表現したもの を図 3 に示す. 2

図 3 図 2 の迷路の注目すべき構造 Figure 3 The notable part of the structure for the maze of figure 2. 上記のアルゴリズムの重要な部分は, 分岐点にたどり着いたとき, どの方向に進むか選択するルールである. まず, 方向に重みづけをする. 具体的には図 5 のようにスタート地点から現在位置に至るまでの移動数をどの方向に進んだかそれぞれ記憶し, 四方の移動数を選ばれる重みづけに対応させる. そして重みづけした上でランダムに移動方向を決定するようにした. こうすることにより迷路内で同じ方向に進めば進むほどその方向に進むような探索を行うことになる. これを利用して第二実験のときに見られた直進的な迷路探索を再現する. 図 2 の迷路を見ると, 図 3 のようにスタート地点から上方向に進むような構造になっており,A 点までの部分では仮に間違いルートを進んだとしても袋小路が小さいため, すぐに元の場所に戻ってくることができる. そのため, 迷路を進むうちに上以外に進む意識が薄れ, 上に進もうとする意識が働くことで A 点においても上に進んでしまったとみられる. このような進みやすい分岐点の存在により上方向に進んでしまうことが多かったことから, 迷路の難しさに関係する要素は, 迷路の構造による進みやすい分岐点の存在であると考えられる. 4.3 実験結果のシミュレーション難しい迷路の条件については前述したが, 進みやすい分岐点が発生した原因と考えられる迷路探索における人間の行動と同様な考えをプログラムによるシミュレーションを行うことで再現できないかと考えた. そこで迷路の自動解析プログラム上で動く迷路探索のシミュレーションプログラムを作成した. 迷路の自動解析プログラムのおおまかなフローチャートを以下に示す. 図 5 シミュレーションプログラムにおける迷路内の分岐点での移動方向の選出例 Figure 5 An example to select the direction in the maze. シミュレーションプログラムを用いて第二実験で使用したいくつかの迷路の探索を行った. 以下に, 図 2 の迷路におけるシミュレーションプログラムを用いた迷路探索の軌跡画像と運用結果を示す. 図 2 と同様, 黒が壁, 白が一度も通ったことのない通路, 灰色が一度でも通行した通路を示す. A 点スタート ゴール 図 6 シミュレーションプログラムを用いた移動軌跡 Figure 6 The truck using simulation program. 図 4 迷路の自動解析プログラムの おおまかなフローチャート Figure 4 Flow chart of automatic analysis for a maze. 3

表 2 シミュレーションプログラムの運用結果 ( プログラムの試行数 100 回 ) Table 2 A result of simulation program. (Number of run: 100) 上右シミュレーションプログラムを用いた場合の 66 34 A 点における方向別移動回数 A 点における 66.0 34.0 移動確率 [%] 移動確率から算出される図 2 の迷路の A 点に 9.2 4.8 おける移動人数 [ 人 ] 第二実験における 10 4 A 点での移動人数 [ 人 ] シミュレーションプログラムを用いた場合においても, A 点で上に進む場合が多かった. また, 第二実験で得られた結果はシミュレーション結果に基づく移動確率にきわめて近いことが分かる. このことから, 視界が見えない状態では人は直線的に迷路の奥へと進もうとする探索を行い, それによって進みやすい通路が発生していると思われる. 4.4 実験結果をうけて A 点での分岐において, 正解である右方向に進んだある一人の被験者には, スタート地点周辺の通路をくまなく探索しようとする傾向がみられた. これはグラフにおける幅優先探索によく似ており,A 点を上に進んだ被験者の傾向は深さ優先探索に類似していることが分かる. このことから, 人間は迷路探索を行う際にある一定のアルゴリズムを思考しながら探索を行う傾向があり, 人間の迷路内探索におけるアルゴリズムとしては, 直感的に迷路を奥まで進んでいこうとする深さ優先型の探索とスタート地点周辺の通路から探索を行う幅優先型の探索があると考えられる. また, それらの 2 つの探索以外にも, 右手法を利用して迷路探索を行ったと考えられる人などが見られたが, いずれの場合も, 何かしらのアルゴリズムに則って探索を行い, 完全にランダムな探索は避ける傾向があることが考えられる. 5. まとめ 本研究では, 迷路の自動生成アルゴリズムを用いて, あるいは手動で迷路を作成し, それを複数の被験者に解いてもらう実験を行ってきた. その結果, 難しい迷路の条件の一つが迷路の構造による進みやすい通路の存在であると考えられることが分かった. また, その通路の発生条件は同方向への繰り返しの移動や, 直線的な通路の構造などであると思われることも分かった. 今後の方針としては, 同じ地点にたどり着くことのでき る複数の通路が含まれる迷路やその他特定条件下など, 複 雑な条件下における難しい迷路の条件の追究や, 今回発見 した難しい迷路の条件の具体的な数値化などがあげられる. 謝辞 実験にご協力いただきました福島工業高等専門学校電 気工学科 5 年の皆さまに感謝の意を表させていただきます. 参考文献 [1] 迷路自動生成アルゴリズム :https://www5d. biglobe.ne.jp/stssk/maze/make.html ( 参照 2017-02-3). [2] ピーター グロゴノ, シャロン H ネルソン, 問題解決とプログラミング, 近代科学社,1985. 付録 付録 A 迷路探索における人間の行動のシミュレーショ ンプログラムのアルゴリズム 本項では 4.3 で示した迷路探索における人間の行動のシ ミュレーションプログラムを紹介する. 迷路全体を a b マスとしたときの迷路の構造を maze(a, b) とし変数によって 0: 未探索の通路,1: 壁,2: 一度だけ 通行した通路,3: 2 度以上通行した通路として示す. スタ ート地点を xs, ys, ゴール地点を xg, yg, 現在位置を px, py と して座標データで示す. また, 移動軌跡の記憶には,maze(a, b) と同じ大きさを持 つ save(a, b) を用いる. 迷路内の四方への移動数の記憶に directions(k) を用い,k によって 0: 総合数,1: 上,2: 右, 3: 下, 4: 左の移動数を記憶し, 初期値として, direcitons(0)=4,directions(k)=1(k=1, 2, 3, 4) が記憶されてい る. 各方向に進んだ場合, 進んだ方向に対応する direcitons と direcitons(0) に +1 される. 付録 A.1 アルゴリズムの流れ 入力 ( 迷路データ maze(a, b), スタート位置 xs, ys, ゴール 位置 xg, yg, 現在位置 px, py) 出力 ( 移動軌跡 save(a, b)) px=xs and py=ys( 現在位置をスタート位置に設定 ) 四方を確認 w=( 現在位置の四方 1 マスのうち, 未探索のマスの 数 ) Select Case w Case w=0 Case w=1 Case w>1 来た道を戻る処理 : 四方 1 マスのうち一度通行 したマスに戻る 一本道の処理 : 未探索のマスに進む 分岐点の処理 : シミュレーションプログラムに 4

End Sub おける分岐点の選択アルゴリズムの呼び出し If px = xg and py = yg then プログラムを終了する 四方の確認に戻る 付録 A.2 迷路内での移動アルゴリズム 入力 ( 迷路データ maze(a, b), 現在位置 px, py, 移動する方 向 r) 出力 ( 迷路内の 1 マスの移動 ) Select Case r(r によって進む方向を決定 ) Case 1( 上に進む場合 ) If Not maze(px, py - 1) = 0 Then( 上が通路でな maze(px, py - 1) = 2( 現在位置の 1 マス上 を一度進んだ通路とする ) py = py - 1 : save(px, py) = save(px, py) + 1 ( 現在位置を 1 マス上に移し, 移動軌跡 directions(1) = directions(1) + 1 directions(0) = directions(0) + 1( 上に進ん Case 2( 右に進む場合 ) If Not maze(px + 1, py) = 0 Then( 右が通路でな maze(px + 1, py) = 2( 現在位置の 1 マス 右を一度進んだ通路とする ) px = px + 1 : save(px, py) = save(px, py) + 1 ( 現在位置を 1 マス右に移し, 移動軌跡 directions(2) = directions(2) + 1 directions(0) = directions(0) + 1( 右に進ん Case 3( 下に進む場合 ) If Not maze(a, b + 1) = 0 Then( 下が通路でな 方向の選択をやりなおす maze(a, b + 1) = 2( 現在位置の 1 マス下 のマスを一度進んだ通路とする ) py = py + 1 : save(px, py) = save(px, py) + 1 ( 現在位置を 1 マス下に移し, 移動軌跡 directions(3) = directions(3) + 1 directions(0) = directions(0) + 1( 下にすす ん Case 4( 左に進む場合 ) If Not maze(px - 1, py) = 0 Then( 左が通路でな End Select maze(px - 1, py) = 2( 現在位置の 1 マス左 を一度進んだ通路とする ) px = px - 1 : save(px, py) = save(px, py) + 1 ( 現在位置を 1 マス左に移し, 移動軌跡 directions(4) = directions(4) + 1 directions(0) = directions(0) + 1( 左に進ん 付録 A.3 シミュレーションプログラムにおける分岐点の 選択アルゴリズム 入力 ( 迷路データ maze(a, b), 現在位置 px, py, 四方への移 動数 direcitons(0~4)) 出力 ( 迷路内での 1 マスの通行 ) r = Rnd(1) * directions(0) + 0.5( 四方の移動数を合計し てその中から 1 つ選出する. 詳細は図 5 を参照 ) If r <= directions(1) Then( 上の移動数に当てはまる場 合 ) 進行方向を上に決定 If directions(1) < r And r <= directions(1) + directions(2) Then( 右の移動数に当てはまる場合 ) 進行方向を右に決定 If directions(1) + directions(2) < r And r <= directions(1) + directions(2) + directions(3) Then( 下の移 動数に当てはまる場合 ) 進行方向を下に決定 If directions(1) + directions(2) + directions(3) < r And r <= directions(1) + directions(2) + directions(3) + directions(4) Then( 左の移動数に当てはまる場合 ) End Sub 進行方向を左に決定 選択した方向に移動 cogr = cogr + 1( 移動数に +1) 5