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

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

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 大アルゴリズム

ブログ    
ブログ    

推薦する

ソゴウ・チャン・ボー:インテリジェントな運用とメンテナンスは代替ではなくアップグレードです

[51CTO.com オリジナル記事] 「初夏、あなたはついに貴重な年次休暇を楽しむ機会を得ました。...

...

小型モデルは大型モデルとどう比較できるのか?北京理工大学はMindの大型モデルであるMindLLMをリリースし、小型モデルの大きな可能性を示した。

大規模言語モデル (LLM) は、さまざまな自然言語タスクで優れたパフォーマンスを発揮しています。た...

2019 年の機械学習フレームワークの戦い: Tensorflow との競争は熾烈、進化する PyTorch はどこで勝利するのか?

[[278853]]ビッグデータダイジェスト制作出典: thegradient翻訳者: 張大毓如、...

音声UIの裏にある魅力

Amazon の Echo および Echo Dot スマート スピーカーの成功により、音声コマンド...

AIの到来、将来のアプリケーション開発における7つのトレンド

最近テクノロジーのニュースに注目しているなら、良いことであれ悪いことであれ、人工知能に関する何かを読...

...

Tableau の 157 億ドルの買収の背後にある、50 ページの詳細なレポートが BI の未来を明らかにする

レポート概要BIビジネスインテリジェンスの核心は、意思決定の価値を反映することです。 • 企業のデジ...

クラウドコンピューティングと人工知能が、先進的な企業に前例のない機会を生み出す方法

近年、ますます大規模なデータセットを処理するために SaaS (サービスとしてのソフトウェア) モデ...

...

...

Interspeech 2023 | Volcano Engine ストリーミングオーディオテクノロジー: 音声強化と AI オーディオコーディング

背景マルチデバイス、マルチパーソン、マルチノイズなどのさまざまな複雑なオーディオおよびビデオ通信シナ...

AIが産業変革を促進する仕組み

このように技術的に進歩した世界では、検査などの重要な産業プロセスは依然として非効率でコストがかかり、...