質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.61%

  • アルゴリズム

    392questions

    アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

遺伝的アルゴリズム

解決済

回答 1

投稿

  • 評価
  • クリップ 1
  • VIEW 815

bigfatrat

score 176

最近、全件検索を要するかもしれない要望に当たってしまいました。
全件検索と言ってもデータベース全ての意味ではなく、想定される全てのパターンから最適解を見つけるようなものです。

とある判定ツールなのですが、馬鹿正直にロジックを考えてもなかなか閃かないので全パターン全てチェックするしかないかな、と考えた次第です。

そこで遺伝的アルゴリズムと言う単語を思いだしたのですが、
遺伝的アルゴリズムはどのような事に使うのが向いているのでしょうか?
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

遺伝的アルゴリズムの使い道としては、AIがよく挙げられます。
遺伝的アルゴリズムの基本としては、
遺伝子データ(通常は数列かバイナリでしょうか)を元に動作等を決定するプログラムを作り、一定の基準でその遺伝子の評価を行います。
評価基準に基づき、優性遺伝子とする数値、または該当フラグを立て、次代に遺伝させていきます。
この際、評価とは関係なく遺伝子を弄る場合があります。(突然変異的に)
この動作実行、評価、遺伝を並列に複数行っていく事により、評価基準をより良く満たす遺伝子データを模索するのが、遺伝的アルゴリズムの基本になります。


その上で、全件検索を行うアルゴリズムで遺伝的アルゴリズムによる優性パターンを模索するのは、あまり現実的とは言えません。
なぜなら、そういったものは通常、検索対象データ自体が大きく可変である為、対象が変わった場合にも確実に優性であると言える評価基準を設定することが難しいからです。
また、継続的にシステムとして利用する場合、ある時点での優性遺伝子を利用することになると思いますが、検索アルゴリズムに限って言えば、長く研究されてきた分野である点と、非常にロジカルな分野である点から、理論的に考えるものを安定的に超える事はほとんど無いでしょう。
(Google検索等の一部評価には、ある程度そういった技術が応用されているかもしれませんが、ごく一部の例です)


ただ、私が想像しているものと、bigfatrat様の考えているものが全く違うかもしれませんので、それが最初の説明にうまく合致するようなものであれば、是非チャレンジしてみて下さい。
判定ツールとの事なので、それぞれの状況に応じて固有の数値等を、全ての要素に関連性を持たせたうえで出せて、それについての評価基準を元に優性、劣勢の遺伝子を判別可能であれば、それはそれで面白いツールが作れるかもしれませんね。


以上、ご参考になれば幸いです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/03/13 07:59

    はい、試しに簡単なものを自宅で作ってみると実際面白いものができました。
    なので逆に業務で使えるかは特にシビアに見ておきたいな、と思っています。

    そして、utunさんの説明に合致するものではありませんでした。

    データが動的に代わるので次世代に残せる情報が5分後には無駄な物になってしまいます。

    データを設定するサポートは出来ますが、データを設定する為に使うのは現状難しそうです。

    キャンセル

  • 2015/03/13 19:22

    蛇足ですが

    遺伝的アルゴリズムは
    単体テストの難易度がヤバそうなので諦めました。

    アルゴリズム自体は面白そうなので自分用ツールや趣味で使う程度に止めるのが無難ですかね。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • アルゴリズム

    392questions

    アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。