遺伝的アルゴリズムと遺伝的プログラミング

FAQ

お寄せいただきました御質問等よりお答えいたします。


Q VC++.NETで利用するのには、どのようにプログラムを修正すればいいですか。

A 各フォルダのFrameフォルダまたはFrameWorkフォルダの中のGaAppTpl.h や GpAppTpl.h の70行目付近に以下のコメント行があります。

・・・・・・
// VC++4.2では以下のnamespaceをコメント化するが,VC++5.0では有効にする.
//using namespace std;
・・・・・・

ここの using namespace std; の行のコメントをはずして有効にして試みてください。
つまり、それら2行は以下のようになります。

・・・・・・
// VC++4.2では以下のnamespaceをコメント化するが,VC++5.0では有効にする.
using namespace std;
・・・・・・

GAGPに関するVC++版のソースコードは、VC++4.2をデフォールトとしています。
したがって VC++5.0 や VC++6.0 でコンパイルリンクするときは、ともに、以上のようなコメント化はずしを行ってもらう必要があります。

.NETのVC++はVC++6.0なので,この修正が必要です.

なお、これらについては、CD-ROM中の README.HTM を起動して、「VC++バージョンへの変更について」→ 「VC++5.0におけるコンパイル等」をたどっていただけると説明を加えています。
先のコメント化以外に,修正が必要な部分もありますので、README.HTMをご参照ください。


Q 必要なメモリサイズは?

A VC++のツールの上で、デバッグして走らせる場合、GAGPのプログラムで必要とするメモリとVC++ツールで必要とするメモリがあります。OSの種類やご利用の環境等によっても異なってくるはずなので、明確にお答えができません。
ただ,Windows NT、2000、XPなどは仮想メモリで、ハードディスクをスワップ領域として使っているので、原理的には、メモリの制約は考えなくていいと思われます。
どのテーマかによりますが、実際に走らせて見た範囲では、VC++ツールも含めて、384Mだとすべて問題ありません。
それ未満の状況では、スワップが発生して、実行速度が落ちるくらいかと考えられます。


Q CD-ROMをVC++で実行したときエラーが出てしまいました。

A VC++のバージョンの違いだと思われますので、まずはヴァージョンをご確認ください。CD-ROMに格納してあるVC++対応のソースは、Ver4.2となっております。これをVer5.0でそのままコンパイルすると、エラーが発生します。対応方法につきましては、付属のHTMLファイルに記述されておりますので、そちらをご覧ください。関連する部分は次のとおりです。

VC++におけるプロジェクト
VC++5.0におけるコンパイル等
VC++4.2とVC++5.0の互換ソース

また、同HTMLファイル(README.HTM)の「ご注意」記述事項もご参照ください


Q omakeに収録してある「遺伝的アルゴリズムプログラミング」のプログラムのVC++ヴァージョンの公開はしていないのでしょうか?

A 恐れ入りますが、現在のところ予定はありません。


Q omakeに収録されている「遺伝的アルゴリズムプログラミング」のヴァージョンは?

A 「遺伝的アルゴリズムプログラミング」は C++6.0、VC++とDelphiです。
BCB対応版はありません。VC++は4.2、Delphiは1.0と2.0です。


Q omake\NNbookの中にあるソースを VC++ を使ってコンパイルするにはどうしたらよいのでしょうか?

A 残念ながらVC++ではコンパイルできません。 MSCのVer6.0では確認されております。
なぜ不可能かは、MSCではグラフィックやマウスをほぼネイティブに呼び出しているということと、それに対してWindowsの環境でそのようなリソースを使うには専用のAPIを介する必要があるためです。
この書き換えについては、本文に動きが説明されていますのでご参照ください。


Q 「Cでつくるニューラルネットワーク」omake\NNbookについてです。graph.hなどのヘッダーファイルを手に入れる方法をお教え願います。

A Cのコンパイラに付属しているものです。
またCコンパイラは、マイクロソフトのMSC前提ですから、VC++や他の処理系には対応していません。本書では、MSCのC/C++を使ったコーディングとなっています。
なお、graph.hはプログラム中に使用しているグラフィック描画のための関数を定義したものです。それぞれの関数の機能は、単純なものしか使っていませんので、現在のコンパイラに対応して書き換えることは可能でしょう。


Q 「Cでつくるニューラルネットワーク」についてです。
プログラムがMSCのためコンパイラできずにいます。ほかの方法で、コンパイラが可能であれば教えてください。


A 何度か調べてみたのですが、有効な手段がありません。問題を整理すると以下の2つになります。

1 プログラムの構造に起因する問題
Windows の環境下では、イベント駆動のため、以前のコンソールが1つであった時代のプログラム構造とは、異なっている。したがって、そのままでは動作できない。コンソールアプリケーションとして、以前の環境をシミュレートできるようなプログラムについて調べたが、満足できるものを見つけることができなかった。

2 コンパイル不可の問題
コンパイラの問題ではない。グラフィックやマウスのライブラリを使用しているため、それを呼び出すためのヘッダーファイルが必要となる。しかしながら、今のコンパイラには、それらが存在していない。つまりヘッダーファイルが存在しないというコンパイルエラーが出る。

これらを回避するために、C++Builder版のプログラムをディスクサービス(CD-ROM)の中に同梱しています。「WinNN」というフォルダになります。







戻る