(Translated by https://www.hiragana.jp/)
探索 - Wikipedia

探索たんさく(たんさく、えい: search)とは、特定とくてい制約せいやく条件じょうけんたすものつけ行動こうどうのこと。

なに問題もんだいくにたって、有効ゆうこう解析かいせきてき解法かいほうもちいることのできない場合ばあいは、試行錯誤しこうさくごによってかい場合ばあいもある。

一部いちぶのアルゴリズムは、元々もともと機械きかい学習がくしゅうならんで人工じんこう知能ちのう分野ぶんやのアルゴリズムであるが、現在げんざいはその分野ぶんやにも応用おうようされている。類義語るいぎごとして検索けんさくえい: search)も参照さんしょう

概要がいよう

編集へんしゅう

探索たんさくアルゴリズムとは、おおまかにえば、問題もんだい入力にゅうりょくとして、かんがえられるいくつものかい評価ひょうかしたのちかいかえアルゴリズムである。

まずくべき問題もんだい状態じょうたいえい: state)と状態じょうたい変化へんか行動こうどうえい: action)にける。 最初さいしょあたえられる状態じょうたい初期しょき状態じょうたいえい: initial state)といい、目的もくてきとする状態じょうたい最終さいしゅう状態じょうたい(ゴール、えい: final state, goal)とばれる。 初期しょき状態じょうたいから最終さいしゅう状態じょうたいいたる、状態じょうたいおよ状態じょうたい変化へんかならびがかいである。 将棋しょうぎならば、盤面ばんめんこま配置はいちごま状態じょうたいであり、交互こうごこまうごかすことが状態じょうたい変化へんかたる。

問題もんだいるいとして研究けんきゅうされているアルゴリズムのおおくは探索たんさくアルゴリズムである。ある問題もんだいかんがえられるあらゆるかい集合しゅうごう探索たんさく空間くうかんぶ。ちからまかせ探索たんさく素朴そぼくな(知識ちしきもちいない)探索たんさくアルゴリズムは、探索たんさく空間くうかん探索たんさくする手法しゅほうとしてはもっと単純たんじゅん直観ちょっかんてきである。一方いっぽう知識ちしきもちいた探索たんさくアルゴリズムはヒューリスティクス使つかって探索たんさく空間くうかん構造こうぞうかんする知識ちしき利用りようし、探索たんさくにかかる時間じかん削減さくげんしようとする。

知識ちしきもちいない探索たんさく

編集へんしゅう

知識ちしきもちいない探索たんさくえい: uninformed search)アルゴリズムは、その問題もんだい性質せいしつ考慮こうりょしない手法しゅほうである。そのため汎用はんようてき実装じっそう可能かのうであり、抽象ちゅうしょうのおかげで幅広はばひろ問題もんだいおな実装じっそう適用てきよう可能かのうである。問題もんだいは、探索たんさく空間くうかん一般いっぱん非常ひじょうおおきいため、問題もんだいちいさいものでもそれなりの時間じかんがかかるてんである。処理しょり高速こうそくするため、知識ちしきもちいた探索たんさくだけをおこな場合ばあいがある。

リスト探索たんさく

編集へんしゅう

リスト探索たんさくえい: list search)アルゴリズムは、おそらくもっと基本きほんてき探索たんさくアルゴリズムである。その目的もくてきは、リストからなんらかのキーを要素ようそさがすことである。計算けいさん科学かがくではもっともよく研究けんきゅうされている分野ぶんやであり、それらのアルゴリズムの計算けいさんりょうもよく研究けんきゅうされている。

そのなかでももっと単純たんじゅんなアルゴリズムが線型せんけい探索たんさくであり、単純たんじゅんにリストじょうかく要素ようそ調しらべていく。その実行じっこう時間じかんO(n) であり、n はリストじょうのアイテムのかずだが、どんなリストでも適用てきよう可能かのうである。

より洗練せんれんされたリスト探索たんさくアルゴリズムとして二分にぶん探索たんさくがあり、実行じっこう時間じかんO(log n) である。データがおおければおおいほど線型せんけい探索たんさくよりも性能せいのうがよくなるが、探索たんさくまえソートしておく必要ひつようがあり、またランダムアクセス可能かのうでなければならない。

特別とくべつなデータ構造こうぞう使つかったべつ探索たんさくほうとして、平衡へいこう2ふん探索たんさく使つかった探索たんさくがあり、実行じっこう時間じかん二分にぶん探索たんさく同様どうようにO(log n) である。これは、二分にぶん探索たんさくかんがかた拡張かくちょうして、挿入そうにゅう削除さくじょ高速こうそくできるようにしたものである。

うち探索たんさく分布ぶんぷかたよっていないソートされたおおきなリストでは二分にぶん探索たんさくよりも性能せいのういが、最悪さいあくケースでは O(n) となる。

グローバーのアルゴリズム量子りょうしコンピュータようアルゴリズムで、ソートされていないリストでの線型せんけい探索たんさくたいしてじょう性能せいのう向上こうじょうをもたらす。しかし、量子りょうしコンピュータはまだ実用じつようされていない。

ハッシュテーブルもリスト探索たんさく使つかわれ、実行じっこう時間じかん平均へいきんケースでO(1)であるが、必要ひつようとする領域りょういきのデータ構造こうぞうよりもおおく、最悪さいあくケースでは O(n) もかかる。リスト探索たんさくのデータ構造こうぞうについては、ハッシュテーブル参照さんしょうされたい。

なお、線型せんけい探索たんさく二分にぶん探索たんさく平衡へいこう2ふん探索たんさくといったリスト探索たんさくアルゴリズムのおおくは、若干じゃっかんのコスト追加ついかで、あたえられたキー以下いか(あるいは以上いじょう)のすべてのさがすことができる。このような探索たんさくを「範囲はんい探索たんさく(えい: range search)」とぶ。例外れいがいはハッシュテーブルであり、そのような探索たんさく効率こうりつてきにはおこなえない。

文字もじれつ探索たんさく

編集へんしゅう

文字もじれつうちのパターンを探索たんさくする。接尾せつびなどのデータ構造こうぞう効率こうりつすることもある。

複数ふくすうのファイルにまたがるもの全文ぜんぶん検索けんさくという。

探索たんさく・グラフ探索たんさく

編集へんしゅう

探索たんさく・グラフ探索たんさく共通きょうつう

グラフ探索たんさく固有こゆう

探索たんさくえい: tree search)アルゴリズムは、探索たんさく技法ぎほう中心ちゅうしんである。のノードを探索たんさくするもので、最初さいしょから明示めいじされる場合ばあい動的どうてき生成せいせいする場合ばあいがある。基本きほん原則げんそくは、データ構造こうぞうから1つのノードをえらび、そのしゃ調しらべてデータ構造こうぞう追加ついかしていく。このデータ構造こうぞう操作そうさにあたっては、おなじレベルのノードからじゅんていく幅優先はばゆうせん探索たんさくノードまでていってバックトラックするふか優先ゆうせん探索たんさくがある。

グラフ理論りろん問題もんだいおおくは、グラフ探索たんさくアルゴリズムでくことができる。いくつかのもの探索たんさくアルゴリズムを拡張かくちょうしたものとることもできる。

知識ちしきもちいた探索たんさく

編集へんしゅう

知識ちしきもちいた探索たんさくえい: informed search)では、問題もんだい固有こゆうヒューリスティクス評価ひょうか関数かんすう)を補助ほじょとして使つかう。いヒューリスティックを使つかえば、探索たんさく劇的げきてき改善かいぜんされる。 知識ちしきもちいた探索たんさくアルゴリズムのおおくは探索たんさくである。最良さいりょう優先ゆうせん探索たんさくA* などがある。知識ちしきもちいない探索たんさく同様どうよう、これらはグラフけにも拡張かくちょう可能かのうである。

メタヒューリスティクス

編集へんしゅう

汎用はんようてき使つかえるヒューリスティクスをメタヒューリスティクスという。

連想れんそう配列はいれつ

編集へんしゅう

問題もんだいかんする知識ちしきもとづいてハッシュ関数かんすう定義ていぎしたハッシュテーブルは知識ちしきもちいたリスト探索たんさくアルゴリズムである。

敵対てきたい探索たんさく

編集へんしゅう

チェスのようなゲームでは、かんがえられるすべての「」で構成こうせいされるゲームがあり、この使つかって最良さいりょうさがすことができる。このたね問題もんだいは、相手あいて自分じぶんにとって最良さいりょう選択せんたくすると想定そうていするという興味深きょうみぶか特徴とくちょうがある。そのため、ゲームをおこな人工じんこう知能ちのうなどでは、ミニマックスほう探索たんさくアルファ・ベータほうといった特徴とくちょうてき探索たんさくアルゴリズムを使つかう。

制約せいやく充足じゅうそく

編集へんしゅう

制約せいやく充足じゅうそく問題もんだいくアルゴリズムも探索たんさくアルゴリズムの一種いっしゅである。この場合ばあい経路けいろさがすのではなく、一連いちれん変数へんすうぐん組合くみあわせをさがす。変数へんすう処理しょり任意にんい順序じゅんじょ可能かのうであるため、探索たんさくアルゴリズムでは効率こうりつてきではない。解法かいほうには問題もんだい自由じゆう利用りようした組合くみあわ最適さいてきバックトラッキング使つかわれる。バックトラッキングでの一般いっぱんてき技法ぎほうとして制約せいやく伝播でんぱえい: constraint propagation)がある。ほかにも競合きょうごう最小さいしょうする局所きょくしょ探索たんさくアルゴリズムもある。

関連かんれん分野ぶんや

編集へんしゅう

関連かんれん項目こうもく

編集へんしゅう

関連かんれん図書としょ

編集へんしゅう
  • たからさきりゅうゆう, 飯田いいだ耕司こうじ:「捜索そうさく理論りろんにおけるかくりつモデル」、コロナしゃISBN 978-4339028331(2019ねん3がつ)。※ORの意味いみでの探索たんさく理論りろんである。
  • 今野こんの紀雄としお:「量子りょうし探索たんさく量子りょうしウォークがひら最先端さいせんたんアルゴリズム- 」、近代きんだい科学かがくしゃISBN 978-4764906303(2021ねん3がつ2にち)。
  • 阪田さかた義隆よしたか:「クリギング入門にゅうもん - 空間くうかんデータ推定すいてい確率かくりつろんてきアプローチ -」、コロナしゃISBN 978-4339052756(2021ねん4がつ5にち)。※ORの意味いみでの探索たんさく理論りろんである。


外部がいぶリンク

編集へんしゅう