柴原さん卒論_backup
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
[[技術資料]]
勾配情報を考慮した粒子群最適化による制約付き多目的最適化...
*目次 [#e890b3d5]
#CONTENTS
*目的 [#x38aa8d3]
複雑で高次元な最適化問題を解決する
上下制約付き多目的最適化問題に対して,勾配情報を追加した...
**使用するソフトウェアのインストール [#ta19c6d2]
主に使用するソフトウェアとして,テキストエディタにVisualS...
その他入れたいもの(chromeなど)は自分で調べて入れてほしい.
***Anaconda Navigator [#ta19c6d2]
[[参考サイト:https://qiita.com/Z0E/items/d574302747df8f0e...
Anaconda公式( https://www.anaconda.com/download )からLinu...
青枠で囲んである部分からアクセスできる.
#ref(anaconda.png,,anaconda,50%)
*使うモジュールのインストール [#u1248302]
***使用するモジュール [#ta19c6d2]
|モジュール|version|用途|
|numpy||数値計算を効率的に行うための拡張モジュール|
|matplotlib||グラフ描写の為のライブラリ|
|random||ランダムな値を作成|
モジュールのインストールはコマンドプロンプトでpip install...
バージョンまで指定する場合はコマンドプロンプトでpip insta...
でインストールする
Pythonのバージョンは3.10.14(指定しなくてもいいかもしれない)
↓動作環境(また置き換える)
#ref(動作環境.png,,50%,動作環境(また貼りかえる))
*プログラムの動かし方 [#ob3ca958]
**使用するテキストエディタ [#v2c613db]
テキストエディタはatomを使用する.
ダウンロードはこのページ( https://atom-editor.cc/ )から行...
atomの設定は各自好きな拡張機能入れてもらえれば
#ref(atom.png,,atom,25%)
**実行の仕方 [#xbcf3848]
Anacondaで仮想環境を構築し,その仮想環境上でプログラムを...
#ref(cd.png,,cd,35%)
cdを使用してプログラムがある階層に移動
#ref(python.png,,python,35%)
python ファイル名.pyで実行
*[理論の解説] [#gb062256]
**[PSOの解説] [#eb3cce83]
PSOは,群の中の粒子が持つ最良の情報とそのグループの最適値...
慮した確率的最適化手法であり,社会的行動に基づいて開発さ...
ある.
↓PSOの構造
#ref(画像41.png,,PSO,25%)
PSOは群を成して移動する生物の行動を模範したアルゴリズムで...
粒子としてモデル化し,粒子は最適化問題における候補解を示...
もつ最良の情報とその集団の最適値から過去の探索を考慮し,...
位置および速度を更新することによって計算される.
#ref(画像40.png,,PSO計算,25%)
**[多目的最適化問題の解説] [#eb3cce83]
多目的最適化問題は,複数の目的が相反する関係にあり,これ...
時に最適化する必要が生じる.
多目的最適化問題を考える上で、重要な概念が「パレート解」...
レートフロント」であり,パレート解とは,最もほかの解を優...
解であり,パレート解全体の集合をパレートフロントという.
#ref(画像13.png,,多目的最適化問題,25%)
**[MOPSOの解説] [#eb3cce83]
MOPSOは,多目的最適化問題を解くために設計されたアルゴリズ...
一の目標を達成する従来のPSOを拡張したものである.MOPSOの...
同時に最適化することによって,解空間上にパレートフロント...
を得ることである.また,探索途中の優良な解である非劣解を...
ブと呼ばれるレポジトリを有する.そして個体群の中での最良...
の非劣解から選出する.
PSOは群知能を活用した最適化アルゴリズムであり,粒子と呼ば...
が解空間内を探索し,最適解を見つける仕組みである.各粒子...
の経験をもとに次の位置を決定する.一方,MOPSOでは複数の目...
があるため,グローバルベストの選択やパレートフロントの管...
追加されている
#ref(画像17.png,,python,35%)
MOPSOのアルゴリズムを以下に示す.
1. 探索母集団を初期化する.
2. 各個体の速度を0に初期化する.
3. 各個体を評価する.
4. 非劣解をアーカイブに保存する.
5. 各個体のpbestを初期化する.
6. gbest を選出する.
7. 速度を更新する.
8. 位置を更新する.
9. 各個体の評価を行う.
10. アーカイブの内容を更新する.
11. 現在の位置がpbestよりも良い場合更新する.
12. ループカウンターに1を加えて6.に戻る.
*プログラムコード内の式説明 [#u1248302]
**非線形変数変換モデル [#t783d7fe]
ベンチマーク関数
#ref(evaluate.png,,evaluate,70%)
上下限制約領域内に問題の変数を変換して
無制約化した新たな変数空間に無制約PSOモデルを適用した「非...
#ref(model.png,,model,70%)
1.初期設定
#ref(para.png,,para,70%)
パラメータ
2.ループ内
#ref(loop.png,,loop,70%)
位置と速度、勾配情報の更新からpbest、gbest、アーカイブの...
3.アーカイブの更新と混雑距離
#ref(archive.png,,archive,70%)
混雑距離と目的関数の合計値を利用して解を削除する(3.3章参照)
4.位置、速度、勾配情報の更新
#ref(koubai.png,,koubai,70%)
速度、位置の更新と前回の粒子の位置と今回の粒子の位置を活...
~
5.パレートフロントの可視化(単体)
#ref(画像62.png,,Ubuntu1,70%)
~
5.2パレートフロントの可視化(nsga2との比較)
#ref(画像64.png,,Ubuntu1,70%)
**評価指標(優越個体割合:RNI) [#z5d76a15]
RNIは 0 ≤RNI ≤1 の値をとり,2 つの手法で得られた解集合X と
Y の和集合をとりSU とする.次に,SU の中から,どの解にも...
び出し,選ばれた解集合をSP とする.そして,SP の各手法の...
を優越しており,逆に値が0.5 を下回るほど,もう一方の手法...
している
#ref(yuuetsu.png,,Ubuntu1,70%)
プログラムコード
#ref(kekka.png,,Ubuntu1,40%)
**評価指標(被覆率:CR) [#t783d7fe]
CRは得られた非劣解を絶対的に評価する方法であり,目的関数...
レート最適解領域において,解集合が均一に分布しているかを...
率は各目的関数のパレート最適解領域をK分割したときの,目的...
存在している小領域の数kiの割合により求められる.また,被...
が全領域に求まっていると評価される.
#ref(hihuku.png,,Ubuntu1,70%)
#ref(siki.png,,Ubuntu1,100%)
被覆率の数式です.
#ref(kekka2.png,,Ubuntu1,40%)
結果はこんな感じに出ます.1に近いほど優れています.
**その他 [#d40a6931]
MOPSOとNSGA2の比較がしたいときは、hikaku.pyを動かしてくだ...
それぞれ目的関数と世代数、粒子数をそろえるのをお忘れなく
#ref(tool.png,,Ubuntu1,70%)
上のevaluateのところを変えてもらえれば大丈夫です.
#ref(para2.png,,Ubuntu1,40%)
ここがパラメータ
また、その他に入れた3つのプログラムですがそれぞれ勾配の考...
ただ今回は、Kmopso.pyのもので行っているので重要ではありま...
Kmopso.pyとhikaku.pyを主に動かしてください.
終了行:
[[技術資料]]
勾配情報を考慮した粒子群最適化による制約付き多目的最適化...
*目次 [#e890b3d5]
#CONTENTS
*目的 [#x38aa8d3]
複雑で高次元な最適化問題を解決する
上下制約付き多目的最適化問題に対して,勾配情報を追加した...
**使用するソフトウェアのインストール [#ta19c6d2]
主に使用するソフトウェアとして,テキストエディタにVisualS...
その他入れたいもの(chromeなど)は自分で調べて入れてほしい.
***Anaconda Navigator [#ta19c6d2]
[[参考サイト:https://qiita.com/Z0E/items/d574302747df8f0e...
Anaconda公式( https://www.anaconda.com/download )からLinu...
青枠で囲んである部分からアクセスできる.
#ref(anaconda.png,,anaconda,50%)
*使うモジュールのインストール [#u1248302]
***使用するモジュール [#ta19c6d2]
|モジュール|version|用途|
|numpy||数値計算を効率的に行うための拡張モジュール|
|matplotlib||グラフ描写の為のライブラリ|
|random||ランダムな値を作成|
モジュールのインストールはコマンドプロンプトでpip install...
バージョンまで指定する場合はコマンドプロンプトでpip insta...
でインストールする
Pythonのバージョンは3.10.14(指定しなくてもいいかもしれない)
↓動作環境(また置き換える)
#ref(動作環境.png,,50%,動作環境(また貼りかえる))
*プログラムの動かし方 [#ob3ca958]
**使用するテキストエディタ [#v2c613db]
テキストエディタはatomを使用する.
ダウンロードはこのページ( https://atom-editor.cc/ )から行...
atomの設定は各自好きな拡張機能入れてもらえれば
#ref(atom.png,,atom,25%)
**実行の仕方 [#xbcf3848]
Anacondaで仮想環境を構築し,その仮想環境上でプログラムを...
#ref(cd.png,,cd,35%)
cdを使用してプログラムがある階層に移動
#ref(python.png,,python,35%)
python ファイル名.pyで実行
*[理論の解説] [#gb062256]
**[PSOの解説] [#eb3cce83]
PSOは,群の中の粒子が持つ最良の情報とそのグループの最適値...
慮した確率的最適化手法であり,社会的行動に基づいて開発さ...
ある.
↓PSOの構造
#ref(画像41.png,,PSO,25%)
PSOは群を成して移動する生物の行動を模範したアルゴリズムで...
粒子としてモデル化し,粒子は最適化問題における候補解を示...
もつ最良の情報とその集団の最適値から過去の探索を考慮し,...
位置および速度を更新することによって計算される.
#ref(画像40.png,,PSO計算,25%)
**[多目的最適化問題の解説] [#eb3cce83]
多目的最適化問題は,複数の目的が相反する関係にあり,これ...
時に最適化する必要が生じる.
多目的最適化問題を考える上で、重要な概念が「パレート解」...
レートフロント」であり,パレート解とは,最もほかの解を優...
解であり,パレート解全体の集合をパレートフロントという.
#ref(画像13.png,,多目的最適化問題,25%)
**[MOPSOの解説] [#eb3cce83]
MOPSOは,多目的最適化問題を解くために設計されたアルゴリズ...
一の目標を達成する従来のPSOを拡張したものである.MOPSOの...
同時に最適化することによって,解空間上にパレートフロント...
を得ることである.また,探索途中の優良な解である非劣解を...
ブと呼ばれるレポジトリを有する.そして個体群の中での最良...
の非劣解から選出する.
PSOは群知能を活用した最適化アルゴリズムであり,粒子と呼ば...
が解空間内を探索し,最適解を見つける仕組みである.各粒子...
の経験をもとに次の位置を決定する.一方,MOPSOでは複数の目...
があるため,グローバルベストの選択やパレートフロントの管...
追加されている
#ref(画像17.png,,python,35%)
MOPSOのアルゴリズムを以下に示す.
1. 探索母集団を初期化する.
2. 各個体の速度を0に初期化する.
3. 各個体を評価する.
4. 非劣解をアーカイブに保存する.
5. 各個体のpbestを初期化する.
6. gbest を選出する.
7. 速度を更新する.
8. 位置を更新する.
9. 各個体の評価を行う.
10. アーカイブの内容を更新する.
11. 現在の位置がpbestよりも良い場合更新する.
12. ループカウンターに1を加えて6.に戻る.
*プログラムコード内の式説明 [#u1248302]
**非線形変数変換モデル [#t783d7fe]
ベンチマーク関数
#ref(evaluate.png,,evaluate,70%)
上下限制約領域内に問題の変数を変換して
無制約化した新たな変数空間に無制約PSOモデルを適用した「非...
#ref(model.png,,model,70%)
1.初期設定
#ref(para.png,,para,70%)
パラメータ
2.ループ内
#ref(loop.png,,loop,70%)
位置と速度、勾配情報の更新からpbest、gbest、アーカイブの...
3.アーカイブの更新と混雑距離
#ref(archive.png,,archive,70%)
混雑距離と目的関数の合計値を利用して解を削除する(3.3章参照)
4.位置、速度、勾配情報の更新
#ref(koubai.png,,koubai,70%)
速度、位置の更新と前回の粒子の位置と今回の粒子の位置を活...
~
5.パレートフロントの可視化(単体)
#ref(画像62.png,,Ubuntu1,70%)
~
5.2パレートフロントの可視化(nsga2との比較)
#ref(画像64.png,,Ubuntu1,70%)
**評価指標(優越個体割合:RNI) [#z5d76a15]
RNIは 0 ≤RNI ≤1 の値をとり,2 つの手法で得られた解集合X と
Y の和集合をとりSU とする.次に,SU の中から,どの解にも...
び出し,選ばれた解集合をSP とする.そして,SP の各手法の...
を優越しており,逆に値が0.5 を下回るほど,もう一方の手法...
している
#ref(yuuetsu.png,,Ubuntu1,70%)
プログラムコード
#ref(kekka.png,,Ubuntu1,40%)
**評価指標(被覆率:CR) [#t783d7fe]
CRは得られた非劣解を絶対的に評価する方法であり,目的関数...
レート最適解領域において,解集合が均一に分布しているかを...
率は各目的関数のパレート最適解領域をK分割したときの,目的...
存在している小領域の数kiの割合により求められる.また,被...
が全領域に求まっていると評価される.
#ref(hihuku.png,,Ubuntu1,70%)
#ref(siki.png,,Ubuntu1,100%)
被覆率の数式です.
#ref(kekka2.png,,Ubuntu1,40%)
結果はこんな感じに出ます.1に近いほど優れています.
**その他 [#d40a6931]
MOPSOとNSGA2の比較がしたいときは、hikaku.pyを動かしてくだ...
それぞれ目的関数と世代数、粒子数をそろえるのをお忘れなく
#ref(tool.png,,Ubuntu1,70%)
上のevaluateのところを変えてもらえれば大丈夫です.
#ref(para2.png,,Ubuntu1,40%)
ここがパラメータ
また、その他に入れた3つのプログラムですがそれぞれ勾配の考...
ただ今回は、Kmopso.pyのもので行っているので重要ではありま...
Kmopso.pyとhikaku.pyを主に動かしてください.
ページ名: