ソフトウェアプログラマー試験: 関数の最大値を見つけるための標準的な遺伝的アルゴリズム

ソフトウェアプログラマー試験: 関数の最大値を見つけるための標準的な遺伝的アルゴリズム

Dim N2 (30) Longは2の累乗されたデータを格納するために使用される

Dim Script As Object を実行して Eval 関数を呼び出す

パブリック列挙型クロスオーバー

OnePointCrossOver シングルポイントクロス

ツーポイントクロスオーバー

UniformCrossOver 平均クロスオーバー

列挙終了

パブリック列挙型の選択

RouletteWheelSelection ルーレットホイールの選択

ストキャスティックトーナメントランダムコンペティションセレクション

RandomLeagueMatches ランダムリーグ選択

StochasticUniversalSampleing ランダムトラバーサルサンプリング

列挙終了

パブリック列挙エンコーディング

バイナリ標準バイナリエンコード

グレイコード

列挙終了

プライベートタイプ GAinfo

最大2倍

Cordinate() を Double として

終了タイプ

********************************** バイナリコードをグレイコードに変換する ****************************************

関数名: BinaryToGray

パラメータ: 値 - 変換する2進数の実数値

注: たとえば、3 の 2 進表現は 0011 で、グレイ コードは 0010 です。この関数の値は、0011 で表される実数です。

返される値は0010で表される実数である(2)

戻り値: グレイコードに対応する2進数の実数値を返します。

********************************** バイナリコードをグレイコードに変換する ****************************************

パブリック関数 BinaryToGray(値 As Long) As Long

Dim V の長さ、Max の長さ

Dim start As Long、mEnd As Long、Temp As Long、Counter As Long を指定します。

暗くフラグをブール値として

V = 値: 最大 = 1

V > 0である間

V = V / 2

最大値 = 最大値 * 2

ウェンド

Max = 0 の場合、関数を終了

フラグ = True

mEnd = 最大 - 1

開始 < mEnd の場合

温度 = (mEnd + start - 1) / 2

値 <= 温度の場合

フラグが付かない場合は

カウンター = カウンター + (mEnd - start + 1) / 2

終了条件

mEnd = 温度

フラグ = True

それ以外

フラグの場合

カウンター = カウンター + (mEnd - start + 1) / 2

終了条件

温度 = 温度 + 1

開始 = 温度

フラグ = False

終了条件

ウェンド

BinaryToGray = カウンター

終了関数

********************************** グレイコードからバイナリコードへ ************************************

関数名: BinaryToGray

パラメータ: 値 - 変換する2進数の実数値

注: たとえば、3 の 2 進表現は 0011 で、グレイ コードは 0010 です。この関数の値は、0010 で表される実数です。

返される値は0010で表される実数である(2)

戻り値: グレイコードに対応する2進数の実数値を返します。

********************************** グレイコードからバイナリコードへ ************************************

パブリック関数 GrayToBinary(値 As Long) As Long

Dim V の長さ、Max の長さ

Dim start As Long、mEnd As Long、Temp As Long、Counter As Long を指定します。

暗くフラグをブール値として

V = 値: 最大 = 1

V > 0である間

V = V / 2

最大値 = 最大値 * 2

ウェンド

フラグ = True

mEnd = 最大 - 1

開始 < mEnd の場合

温度 = カウンター + (mEnd - start + 1) / 2

フラグXOR(値<温度)の場合

フラグの場合、カウンタ = Temp

開始 = (開始 + m終了 + 1) / 2

フラグ = False

それ以外

フラグでない場合はカウンター = 一時

mEnd = (開始 + mEnd - 1) / 2

フラグ = True

終了条件

ウェンド

GrayToBinary = 開始

終了関数

********************************** 10 進数を 2 進数に変換する ************************************

関数名: DecToBinary

パラメータ: 値 - 変換する小数点数

戻り値: 対応する2進数を返す

********************************** 10 進数を 2 進数に変換する ************************************

プライベート関数 DecToBinary(ByVal Value As Long) As String

Dim StrTemp を文字列として

整数としての ModNum の暗黙の

値 > 0 の間実行

ModNum = 値 Mod 2

値 = 値 \ 2

StrTemp = ModNum & StrTemp

ループ

DecToBinary = StrTemp

終了関数

************************************ 20進数変換 ************************************

関数名: BinToDec

パラメータ: BinCode - バイナリ文字列

戻り値: 変換された10進数

説明: バイナリ文字列を10進数に変換します

************************************ 20進数変換 ************************************

パブリック関数 BinToDec(BinCode As String) As Long

Dim i を整数、Dec を Long、Length を整数として

長さ = Len(BinCode)

i = 1 の場合、長さ

Mid(BinCode, i, 1) = “1”の場合

Dec = Dec + N2(長さ - i)

終了条件

BinToDec = 10進数

終了関数

********************************** コーディング ************************************

プロセス名: コーディング

パラメータ: ビット - エンコードするビット数

BinGroup - グループエンコードデータを保持する配列

注: より正確に言うと、エンコードとは集団を初期化することです。プロセスはバイナリ コードとグレイ コードで同じです。

********************************** コーディング ************************************

パブリック サブコーディング (ビットは整数、BinGroup() は文字列)

Dim i を整数、j を整数

文字列としての暗い温度

ランダム化

i = 1 の場合、UBound(BinGroup, 1)

温度 = ""

j = 1 からビット

Rnd >= 0.5の場合

温度 = 温度 & "1"

それ以外

温度 = 温度 & "0"

終了条件

BinGroup(i) = 温度

終了サブ

【編集者のおすすめ】

  1. プログラマーのプログラミング知識ポイント3(1)
  2. プログラマーのためのプログラミング知識ポイント3
  3. プログラマーのためのプログラミング知識ポイント5
  4. ソフトウェアテストの詳細については、51CTOソフトウェアテストトピックをクリックしてください。

<<:  データマイニングにおける10の古典的なアルゴリズムの予備的調査

>>:  プログラマーが知っておくべき 20 世紀の 10 大アルゴリズム

ブログ    

推薦する

...

2021年の産業用ロボットの6つの主要トレンド

産業情報ウェブサイトReportlinkerが2020年11月に発表したレポートによると、産業用ロボ...

...

...

OpenAI の「地震」の中心人物である Ilya を見てみましょう。彼は AI についてどう考えているのでしょうか?

OpenAIのCEOサム・アルトマン氏は先週金曜日に解雇され、もはや同社を率いていない。投資家たち...

目から鱗!ヘルスケアと自動車業界における AI の興味深い応用例 11 選

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...

ドイツ反トラスト長官:AIは大企業の支配を強める可能性がある

ドイツ独占禁止局のアンドレアス・ムント局長は10月10日、人工知能によって大手テクノロジー企業の市場...

ルカンはソラを世界モデルとして非難し、自己回帰LLMは単純すぎると述べた。

近年、ソラは世界中の注目を集めています。それに関連するすべてのものが極端に拡大されます。 Sora ...

AIテキスト翻訳システムの品質が44%向上し、500億以上のパラメータを使用して200の言語を翻訳

Meta Platforms は本日、Meta が社内開発した、200 言語のテキストを翻訳できる人...

シリコンバレーの大企業も「名門校の学位」を重視するのでしょうか? Redditの男の魂を問う質問が白熱した議論を巻き起こす

シリコンバレーの大企業からのオファーは多くのプログラマーにとって依然として非常に魅力的であり、今年は...

総合異常検知の新たな夜明け:華中科技大学などがGPT-4Vの総合異常検知性能を明らかに

異常検出タスクは、通常のデータ分布から大きく逸脱した外れ値を識別することを目的としており、産業検査、...

...

第2世代のビッグデータの偏りを打破するには、アルゴリズムの公平性が必要

ビッグデータのシナリオでは、ますます多くのトランザクションがアルゴリズムを通じて完了します。インター...

AI生成コンテンツの隠れた危険性:AIがAIを学習するだけでは、インターネットは意味のないコンテンツで満たされる

6月20日のニュースによると、人工知能(AI)は急速に発展しているが、隠れた危険性ももたらしている。...

戦争におけるAI:ウクライナはロシア軍兵士を「調査」するために顔認識を使用しているが、これは単なる子供の遊びだ

現代人は時間の概念が曖昧です。よく考えなければ、プーチン大統領が2月24日にウクライナに宣戦布告して...