• ベストアンサー

遺伝的アルゴリズムについて

遺伝的アルゴリズムについて調べているのですが、 「決定的規則」、「確率的オペレータ」という言葉の意味を探してもみつかりません。 どなたか教えてください。 サイトでもいいです。 カテゴリー違いだったら書き直します。

質問者が選んだベストアンサー

  • ベストアンサー
  • suzukikun
  • ベストアンサー率28% (372/1325)
回答No.1

決定的規則はあらかじめ決めておいたアルゴリズムによって生成するのに対し、確率的オペレータはGAで言うところのルーレット選択とか、期待値選択などのようにそのときになってみないと生成ができないようなアルゴリズムですね。

関連するQ&A

  • 遺伝的アルゴリズム

    遺伝的アルゴリズムについて調べているのですが、 「発見的手法」、という言葉の意味を探してもみつかりません。 どなたか教えてください。 サイトでもいいです。 カテゴリー違いだったら書き直します。

  • 遺伝的アルゴリズム

    遺伝的アルゴリズムについて勉強しています。 そこで、質問なのですが交叉確率によって何が分かるのでしょうか? 交叉確率を0→0.5→1.0と変更して、それぞれのグラフを出すように言われたのですが、出た結果から何が分かったのかが分かりません。 教えてください。 図書館などでも調べたのですが、わかりませんでした。

  • 遺伝的アルゴリズムの遺伝的って?

    ふと疑問。 遺伝的アルゴリズムの遺伝的ってどういう意味でしょうか? 遺伝と言うと継承されていくような感じがします。 ふとした疑問なので大雑把で結構です。 よろしくお願いします。

  • 遺伝的アルゴリズムのシュミレーション

     私は、遺伝的アルゴリズムについて勉強中です。 MATLABでGAをシュミレーションしたいのですが、英語で扱いにくい現状です。  MATLABやそのGAを扱う方法を解り易く説明したサイトを教えていただけませんか?  また、MATLAB以外のGAのソフト(出来れば日本語版)を知っていましたら教えていただけませんでしょうか?

  • アルゴリズムについて教えてください

    トランプのダイヤのカードが13枚ある。 順序はバラバラになっている。 小さい順に並べるアルゴリズムを考えよ。 という課題が出されました。 アルゴリズムの意味はわかるのですが、やり方がさっぱりわかりません。確率の考え方を使うのですか? ヒントでもいいので教えてください。 よろしくお願いします。

  • Javaでの遺伝的アルゴリズムの実装について

    別のWebサイトでも質問させていただいているのですが、 double[][] a={ {1,1,1,1,1,1,1,1,1,1}, {1,2,1,4,1,1,1,8,1,1}, {2,2,2,2,2,2,2,2,2,2}, {2,2,2,3,2,2,2,3,2,2}, {2,2,2,2,2,4,2,2,3,2}, }; のように予め決められている2次元配列(a[0],a[1],a[2],a[3],a[4]それぞれが遺伝子)と、 double[] fitness={50,100,60,90,120}; のように遺伝子それぞれに対応している適応度があるとして、(適応度は別プログラムで計算済み) 遺伝的アルゴリズムで予め設定された遺伝子と適応度をエリート及びルーレット選択、交叉、突然変異を行う(一世代のみ)プログラムをJavaを用いて作りたいのですが、 Web上にある例となるClassは初期集団をランダムで生成した上で、ランダムに生成された遺伝子に対し適応度計算を行い、それを選択、交叉、突然変異を行うClassに投げるものがほとんんどです。 なので、適応度計算を行わずに既にある遺伝子と適応度をどのようにして結びつけるのか、もともとランダムに生成された遺伝子に適応度計算を行うこと、複数世代行うことを前提に設計されている選択・交叉・突然変異等のClassをどう変更すればよいのかわからず、手詰まりになってしまいました。 周りの知り合いに聞いても、Javaは少しならわかるが専門外、遺伝的アルゴリズムは勉強したことがない人ばかりなので、聞きたくても聞けない状況となっております・・・。 遺伝的アルゴリズム及びJavaに詳しい方、どなたか実装例を教えていただけないでしょうか? 参考にさせていただいたURL:http://www.ics.kagoshima-u.ac.jp/edu/ProgramingJava/samples/SimpleGA/step1/index.html#GA%20%E3%82%AF%E3%83%A9%E3%82%B9

  • アルゴリズムとプロトコールの違い

    よく医療系雑誌でアルゴリズムという言葉とプロトコールという言葉が出てきます。2つとも手順という意味で理解していましたがこの2つに意味的な違いはあるのでしょうか? どういったところで使い分けをしているのでしょうか? お分かりになる方よろしくお願いします!

  • 「アルゴリズム」

    「アルゴリズム」という言葉は 「プログラム」と言う意味と似てますか?

  • 遺伝的アルゴリズム

    遺伝的アルゴリズムのプログラムを作っているのですがサンプルソースの下の関数のやってこるこがよく意味がわかりません。よかったら解説 お願いします。 // 一点交叉 void one_point_crossover(struct genotype *ind) { int i, ia, ib; // 個体インデックス int j; // 遺伝子座インデックス int c; // 交叉点 int test[M]; // 個体の利用フラグ int temp[N]; // 遺伝子を入れ替えるための仮変数 // 4/24修正 int r; // 乱数値 for(i=0; i<M; i++) test[i] = 0; ia = ib = 0; for(i=0; i<M/2; i++) { // 個体をランダムにペアリング for(; test[ia]==1; ia=(ia+1)%M); test[ia] = 1; r = random() % (M-2*i) + 1; while(r>0) { ib=(ib+1)%M; for(; test[ib]==1; ib=(ib+1)%M); r--; } test[ib] = 1; // 個体iaとibを交叉 if(flip(Pc)) { c = random() % N; for(j=0; j<c; j++) { temp[j] = ind[ia].gene[j]; ind[ia].gene[j] = ind[ib].gene[j]; ind[ib].gene[j] = temp[j]; } } } } // End of one_point_crossover()

  • このアルゴリズムを何回繰り返せばよいのか。

    次のようなアルゴリズムAがある。 P(x)=1であるような入力xに対しては必ず正しい答え1を出すが、 P(x)=0であるような入力xに対しては確率0.001で正しい答えを出し、 確率0.999で間違った答えを出す。 この時、どんな入力に対しても確率0.99以上で正しい答えを出すアルゴリズムを構成せよ。 という問題なのです。 答えは  0.01 > (0.999)**n   ( (0.999)**nは0.999のn乗の意味 ) が成り立つ最小のn回アルゴリズムを繰り返せばよいと考えたのですが、 この式を解くとnが2000以上になると思います。 難しくてきちんとしたnの値は出てきませんでした。 何かこの式を簡単に解く式変形の仕方ってありますか?? それともこの問題をこの式で解くのが間違っているのでしょうか??? よろしくお願いします!!!