実践 遺伝的アルゴリズム

―パズルの問題の自動生成で学ぶアルゴリズムの実装

[cover photo]
TOPICS
Programming
発行年月日
ISBN
978-4-87311-707-2
FORMAT
EPUB
Ebook
1,980円
Ebookを購入する

本書は、人工知能の技術の1つである遺伝的アルゴリズムを用いて、「ナンバーエリア」または「四角に切れ」と呼ばれる、数字だけではなく長方形という図形的な要素が入ったパズルの問題の自動生成について説明します。
理論の説明は最小限にし、実装を詳細に説明。後半ではパズル作家が問題を作る際に考慮するような、パズル問題として差をつける特長をプログラムに組み込むことも説明します。本書でナンバーエリアに挑戦することで、さまざまなパズル生成への応用力が身につき、パズル以外への適用も可能になるでしょう。
なお、本書はEbook版のみの販売です。

関連ファイル

目次

まえがき
はじめに
    本書の表記
    サンプルコードの使用について
    意見と質問

導入部 遺伝的アルゴリズムとは 巡回セールスマン問題への適応例
    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章 絵から問題を作成
        元の絵
        調整
        ナンバーエリアの問題生成操作
            起動画面(問題盤面)
            基本パネル
            難度パネル
            生成パネル
            グラフパネル
            形状パネル
        ナンバーエリアのソースコード・メモ
            ソースファイルの概要
            起動画面と問題盤面

参考文献
あとがき
著者紹介