本書は、人工知能の技術の1つである遺伝的アルゴリズムを用いて、「ナンバーエリア」または「四角に切れ」と呼ばれる、数字だけではなく長方形という図形的な要素が入ったパズルの問題の自動生成について説明します。
理論の説明は最小限にし、実装を詳細に説明。後半ではパズル作家が問題を作る際に考慮するような、パズル問題として差をつける特長をプログラムに組み込むことも説明します。本書でナンバーエリアに挑戦することで、さまざまなパズル生成への応用力が身につき、パズル以外への適用も可能になるでしょう。
なお、本書はEbook版のみの販売です。
実践 遺伝的アルゴリズム
―パズルの問題の自動生成で学ぶアルゴリズムの実装
藤原博文 著
- TOPICS
- Programming , AI/LLM
- 発行年月日
- 2014年12月
- ISBN
- 978-4-87311-707-2
- FORMAT
- EPUB
関連ファイル
目次
まえがき
はじめに
本書の表記
サンプルコードの使用について
意見と質問
導入部 遺伝的アルゴリズムとは 巡回セールスマン問題への適応例
1章 遺伝的アルゴリズムとは
最適化問題
遺伝的アルゴリズム
2章 巡回セールス問題への適用
巡回セールスマン問題
GUIプログラム TSP.java
遺伝的アルゴリズム本体 GA.java
第1部 準備編 ナンバーエリアの解き方
3章 パズルの紹介
ルール
用語
唯一解
4章 手筋
完全確定
部分確定
単一到達セル
離島
領域分割
先読み
5章 解き方
人の解き方
コンピュータの解き方
6章 ソルバー
ソルバーの実装
入出力
リプレイ
難易度
7章 問題の手動作成
パズル作家の問題作成方法
ソルバーを利用した手動作成
第2部 実装編 ナンバーエリアの作り方 遺伝的アルゴリズムと ナンバーエリアへの適応
8章 遺伝的アルゴリズムの適用
問題作成条件
問題の染色体表現
目的関数
9章 自動長方形分割
ランダムな長方形拡張
空白の排除
巨大問題の分割統治
10章 染色体の操作
染色体と個体
初期個体集団の生成
選択
交叉
突然変異
11章 問題作成
個体プールの調整
進化グラフ
進化の停滞
第3部 応用編 ナンバーエリアの調整
12章 多目的最適化
目的関数の統合
13章 難易度調整
難易度範囲の指定
最終難易度の推定
難易度差のある問題生成
14章 長方形制約
長方形の形状と個数
長方形の面積制約
長方形の形状制約
15章 数字指定
16章 隠し形状
隠し形状の目的関数
苦手な形状
得意な形状
17章 難易度の偏り除去
難易度の偏り
偏り判定目的関数
難易度の偏り調整例
18章 絵から問題を作成
元の絵
調整
ナンバーエリアの問題生成操作
起動画面(問題盤面)
基本パネル
難度パネル
生成パネル
グラフパネル
形状パネル
ナンバーエリアのソースコード・メモ
ソースファイルの概要
起動画面と問題盤面
参考文献
あとがき
著者紹介