素人ですが、遺伝子的アルゴリズムを考える上で、大きな問題に直面しています。
1)最適化の対象を如何にコーディングするか?
2)交叉点を如何に設けるか?
これらは組合せの対象の要素間に何らかの曖昧な複数の相関関係がある場合に難しくなります。
そこで、
1)「遺伝子的アルゴリズム」をタイトルにした一般の技術系の和書に書かれている以外に、実例を調べる手段?
2)社会人が遺伝子的アルゴリズムの開発の実際を学ぶための公共の機関、例えば聴講生として学べる場所?
3)遺伝子的アルゴリズムを組み込んだソフトを作る上で、普段使用しているC++などの汎用プログラム言語と、SchemaやLISPなどの知能プログラミング言語とでは、どちらが便利なのでしょうか? これらの人工知能プログラム言語には、コーディングや交叉のための専用のコマンドが提供されているのでしょうか?
自分は、情報工学の出身ではないため、C++言語と「遺伝子的アルゴリズム」の技術書籍以外には、バックグラウンドがありません。よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
実は私も素人ですが・・・・
>1)最適化の対象を如何にコーディングするか?
>2)交叉点を如何に設けるか?
いわゆるモデリング(コーディング)手法ですね。
ここは、誰もが必ずぶつかるところだと思います。
もっとも根本的なことでありながら、きちんと(論理的に)説明されている書籍・論文、あるいは、きちんと整理できている人・技術者・学者先生に、お目にかかったことがありません。
ある大学教授にいたっては、堂々と「GAのコーディングは、カンと経験」と明言しておられます。
#私の考えでは決してそれに賛成していませんが・・・私自身、整理して説明ができるわけではないので、表立って反論はできません。
#ただ、「根本的にできないこと」ではなく、「まだ、やり方が整っていない」だけだと思っています。
前置きはこれくらいにして・・・
>1)・・(略)・・・以外に、実例を調べる手段?
コーディングに関しては、3~4年前のシステム制御関係の学会誌、あるいは、Cマガジンはじめ、ちょいと硬派なプログラマ向け雑誌などで解説を見つけることができます。
巡回セールスマンとか、パズルに関しては、おっしゃるような「技術系書籍」がいいと思います。
(確か、北先生のがわかりやすかったと思います)
ただ、「実例」となると、企業での利用が多いでしょうから、具体的内容を詳しく知るのは難しいかも・・・・
また、逆に、「あ~、これとこれで、こうやっているのね」と容易に推定できるものもあります。
たとえば、離散系シミュレータの「Witness」というソフトの求解に使われていますが、カタログに出ている画面イメージからでもおよそのコーディングと組み込まれ方が想像つきます。
ただ、「こうなんですね」と聞いても、正確に答えてくれる人はいないようです。
>2)社会人が・・・(略)・・・・学べる場所?
おそらくお仕事で利用しようとされているかと思いますので、学求的に高度な(実践的でないような)ことではないですね。
数年前から比べるとずいぶん聞かなくなったような気がします。(いい意味で定着したのか、絶滅したのか)
あまり、詳しくないので推測ですが、大阪の場合、産業技術研究所でかなり以前やっていたと思います。
公的機関なので、無料で開催されたりするようですし、関係の学会などで、先生とお友達になって、(個人的に)講義に混ぜてもらうという手もあるかもしれません。
>3)・・・・・C++などの汎用プログラム言語と、SchemaやLISPなどの知能プログラミング言語とでは、どちらが便利なのでしょうか?
> これらの人工知能プログラム言語には、コーディングや交叉のための専用のコマンドが提供されているのでしょうか?
私としては、遺伝アルゴリズム自体を研究するのでなく、利用する立場でしたので、C言語がよいと思います。
Schemaは知りませんし、LISPもここ10年くらい遠ざかってます。
処理系の入手性の問題、参考書・解説書(時にはサンプルプログラム)の多さからして、C、C++、VB、Javaでしょう。
また、LISPには、専用コマンドというわけではありませんが、遺伝子をインプリメントしやすい線形リストが言語仕様のベースですし、リストをあれこれいじりまわす命令は充実していますので、その部分に限っては便利と思います。
#リストがベースだから”LISP”、ってのはご存知のとおり。
が、しか~し、Cでもリスト構造は比較的簡単に実現できますし、特に遺伝子を配列で表現してもいいわけなので、その点はそんなに重要ではありません。
実践で利用するなら、入出力やコンパイラ自体の扱いやすさ、入手性、メンテ性、周辺システムとのインターフェースで、通常のプログラム言語のほうが、(あなた自身が使い慣れているもののほうが)格段に勝ります。LISPなどには、ガベジコレクションやメモリ消費などの問題もありますね。
>これらは組合せの対象の要素間に何らかの曖昧な複数の相関関係がある場合に難しくなります。
冒頭に書いたとおり、私は素人ですが、遺伝子コーディングするときは、「曖昧な複数の相関関係」など悩まずに、素直に(何も考えずに)やって、進化過程で、制約として淘汰して殺すという方法でも、まずまず準最適結果(らしきもの)が得られています。
↑こんな考え方は、アルゴリズムをギンギンにチューニングして、限界最適値を超高速で求めようという場合には、ダメなんでしょうが、結果を程よく収束できればいいや、くらいでは、十分です。
実際の問題をインプリメントすると、ほんの数100行になったりします。そのプログラムがそれらしい結果を出してくれると、なんか神がかりのような気分を味わえます。
「なんで、これで解が出るんだ~!!」って感じ。
がんばってくださひ。
では・・
悩んでいることに対して、的確にアドバイスしていただき有難う御座います。書店での情報収集やネットサーフィンでは指針が立てられず、何方かのアドバイスをお待ちしておりました。
自分は電子系のエンジニアで、技術の空洞化の時勢に逆らって、何とか欧米の技術力に追従しようと、ある分野の最適化設計に努力してきましたが、先日、欧米製の遺伝子的アルゴリズムを使用した商品を紹介され、技術力向上の限界を感じました。下手をすると、日々の設計の試行錯誤の過程を、遺伝子的アルゴリズムに取って代わられてしまうようにも思いました。
このお返事の中は、プログラム開発の実情がみえたように思います。普段使いなれているC言語を使って、あまり神経質にならずにコーディングしても結果が出るという力強いアドバイスもありましたし、チャレンジしてみたいと思います。これをやらないと、自分の会社の技術の空洞化が決定的なものになってしまいます。
それにしても、良い最適化設計の特徴(良い遺伝子配列の特徴)を見つけるのっ難しそうですね!
本日いただいたお返事は、一字一句大切にしたいと思います。有難う御座いました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 特定の座標点を通る回帰を行う方法について。 2 2022/10/10 10:27
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- その他(悩み相談・人生相談) 格差社会を防ぐ簡単な方法がありますが、なぜその手段を使う決断をしないのでしょうか? 4 2022/05/31 15:40
- 日本語 「酒が強い」・「酒が弱い」という日本語の使い方は間違っていると思います。 6 2022/06/14 18:27
- その他(ニュース・社会制度・災害) 出生前診断や遺伝子検査については様々な意見がありますが、皆さんは賛成反対のどちらですか? 2 2022/04/10 19:48
- 医学 女性の飲酒の是非について 2 2022/03/26 16:40
- アイドル・グラビアアイドル 政治家や60〜70代以降の男性が女性のことを卑下している人が多いのはどうしてですか? 3 2022/03/26 16:14
- 就職 女子アナの採用選考は憲法違反ではないでしょうか? 3 2022/08/20 12:12
- その他(悩み相談・人生相談) なんでも子どもに遺伝する?遺伝子万能主義的思想について。 11 2023/06/25 21:33
- 企画・マーケティング 女性をターゲットにしたお酒の開発・販売が遅れたのはどうしてだと思いますか? 1 2022/03/26 14:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正しい五十音順について
-
Dijkstraて
-
アルゴリズムとプロトコールの違い
-
BCDについて
-
「FFTW」についての質問です。
-
Stuck
-
三次元形状曲面の導出法
-
パラメトリック曲線の描画アル...
-
JPEG圧縮で8×8に分割する理由に...
-
小町算(+,-のみ)のトレースです。
-
乗換案内の作り方が知りたいです。
-
C言語についての質問です
-
ハッシュアルゴリズム
-
ハノイの塔のさいきアルゴリズ...
-
期間重複チェックがわかりません
-
画像から文字を認識してテキス...
-
マージソートの比較回数の計算...
-
Officeのラスタ画像の拡大縮小...
-
65536は2の何乗なのでしょうか?
-
あるプログラムのコマンドライ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正しい五十音順について
-
Stuck
-
アルゴリズムとプロトコールの違い
-
画像から文字を認識してテキス...
-
[ EXCEL VBA ] 図形を読み込む...
-
BCDについて
-
期間重複チェックがわかりません
-
gooという検索エンジンの後にGo...
-
2つのテキストファイルを比較...
-
ハッシュアルゴリズム
-
理系の高校生です。大学で情報...
-
あいまい検索(文字列一致率)
-
デジタル時計のアルゴリズム
-
経路探索について
-
グループを均等に分けるには?...
-
m個の数字をn個のグループに分...
-
乱数って・・・
-
確率論的な麻雀の勝ち方を教え...
-
多変数関数の最小値を求めるプ...
-
OpenCVのライセンスについて
おすすめ情報