| 
						
							
							 ソースコードの使い方 
							 
							はじめに 
							
								ソースコードの使い方について説明します。 
								以下では,P1を例として説明しますが,他のコードでも同様の要領で使うことができます。
							 
							ファイル構成 
							
								- P1.cpp
 P1(エネルギープラント運用計画問題)クラスメインファイル。 
								- P1.h
 P1クラスのヘッダーファイル。 
								- P1_evaluation.cpp
 入力された解の評価を行うプログラム。P1クラスを使うためのサンプルプログラムです。 
								- P1_x.txt
 P1_evaluation.cppで評価する解の設定ファイル。第n行目に第n変数の値を記述して下さい。 
								- P1_tolerance.conf
 制約違反許容量εの設定ファイル。g(x) > ε, |h(x)| > εのときに制約違反と判定します。 
								- P1_***.conf
 P1クラスで読み込まれる定数の設定ファイル。 
							 
							評価プログラム(サンプルコード)の実行方法 
							
								- Visual C++の場合
 cl P1.cpp P1_evaluation.cpp /FeP1.exe /EHsc(ソースコードのコンパイル) P1.exe(コードの実行)
								 - gccの場合
 g++ P1.cpp P1_evaluation.cpp -o P1.out(ソースコードのコンパイル) ./P1.out(コードの実行)
								 - 実行結果
 P1_x.txt内に記述した解を評価し,以下を出力します。 
								
									- x = ...:入力した解を表示
									
 - y = ...:入力した解から構成した離散決定変数を表示
									
 - f1 = ...:1番目の目的関数値。
 
									Known Feasible Solutionsの目的関数値にはこの値を掲載しています。
									 - g1 = ...:1番目の不等式制約条件評価値。
									
 - h1 = ...:1番目の等式制約条件評価値。
									
 - Sum of violation = ...:制約違反量合計値V(x,y)。
 
									V(x,y) = max{0, g1(x,y)} + max{0, g2(x,y)} + ... + |h1(x,y)| + |h2(x,y)| + ...。 
									Known Feasible Solutionsの制約違反量合計値にはこの値を掲載しています。
									 - Tolerance: ...:P1_tolerance.confで入力した制約違反許容量ε
									
 - Input solution is ***:
 
									入力した解が実行可能解であれば***がfeasible,  
									実行不可能解であれば***がinfeasibleとなります。
								  
							  
							クラス構成 (Public methods) 
							
								- void P1::evaluation(double *x, double *y, double *f, double *g, double *h)
 
								目的関数値と制約条件評価値を計算します。 
								連続決定変数を配列xに,離散決定変数を配列yに代入してください。 
								目的関数値が配列f,不等式制約条件評価値が配列g,等式制約条件評価値が配列hに 
								代入されます。
								 - bool P1::checkFeasibility(double *x, double *y)
 
								解の実行可能性を確認します。 
								連続決定変数を配列xに,離散決定変数を配列yに代入してください。 
								P1_tolerance.confで設定した制約違反許容量εを用いて, 
								g(x) > ε, |h(x)| > εのときに制約違反と判定します。 
								実行可能解であれば「true」を,実行不可能であれば「false」を返します。
							  
							クラス構成 (Public properties) 
							
								- int P1.N_x:連続決定変数の数。
								
 - int P1.N_y:離散決定変数の数。
								
 - int P1.P:目的関数の数。
								
 - int P1.M:不等式制約条件の数。
								
 - int P1.Q:等式制約条件の数。
								
 - double P1.eps:制約違反許容量。
							
  
							
							
							 
							 
							
							
						 | 
						 |