|
@@ -30,6 +30,7 @@ public class ObjectiveFunctionByCarlos {
|
|
|
static double lambda_f_cool = 10;
|
|
|
static double lambda_f_dur = 10;
|
|
|
|
|
|
+ static double lambda_f_change = 1000;
|
|
|
|
|
|
|
|
|
|
|
@@ -128,9 +129,19 @@ public class ObjectiveFunctionByCarlos {
|
|
|
double flexcapCon = net.getFlexibilityConsumptionCapacity();
|
|
|
double f_change_positive = (con > 0.0)? flexcapProd / con : 1.0;
|
|
|
double f_change_negativ = (prod > 0.0)? flexcapCon / prod: 1.0;
|
|
|
- double sum = f_elements_diviation_production + f_elements_diviation_consumption
|
|
|
- + f_flexibility_diviation_consumption + f_flexibility_diviation_production + f_change_positive +f_change_negativ;
|
|
|
- f_holon += sum;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ double f_element = f_elements_diviation_production +f_elements_diviation_consumption;
|
|
|
+ double f_flexibility = f_flexibility_diviation_consumption +f_flexibility_diviation_production;
|
|
|
+ double f_change = lambda_f_change - 0.5 * lambda_f_change * ( Math.min(1, f_change_positive) + Math.min(1, f_change_negativ));
|
|
|
+
|
|
|
+ f_holon += f_element + f_flexibility + f_change;
|
|
|
+ System.out.print( "f_element=" + doubleToString(f_element));
|
|
|
+ System.out.print( " f_flexibility=" + doubleToString(f_flexibility));
|
|
|
+ System.out.println( " f_change=" + doubleToString(f_change));
|
|
|
// System.out.print( "f+elements=" + doubleToString(f_elements_diviation_production));
|
|
|
// System.out.print( " f-elements=" + doubleToString(f_elements_diviation_consumption));
|
|
|
// System.out.print( " f+flexibility" + doubleToString(f_flexibility_diviation_consumption));
|