本書は、人工知能の技術の1つである遺伝的アルゴリズムを用いて、「ナンバーエリア」または「四角に切れ」と呼ばれる、数字だけではなく長方形という図形的な要素が入ったパズルの問題の自動生成について説明します。
理論の説明は最小限にし、実装を詳細に説明。後半ではパズル作家が問題を作る際に考慮するような、パズル問題として差をつける特長をプログラムに組み込むことも説明します。本書でナンバーエリアに挑戦することで、さまざまなパズル生成への応用力が身につき、パズル以外への適用も可能になるでしょう。
なお、本書はEbook版のみの販売です。
実践 遺伝的アルゴリズム
―パズルの問題の自動生成で学ぶアルゴリズムの実装
藤原博文 著
- TOPICS
- Programming
- 発行年月日
- 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章 絵から問題を作成 元の絵 調整 ナンバーエリアの問題生成操作 起動画面(問題盤面) 基本パネル 難度パネル 生成パネル グラフパネル 形状パネル ナンバーエリアのソースコード・メモ ソースファイルの概要 起動画面と問題盤面 参考文献 あとがき 著者紹介