My first attempt in creating an efficient frontier between competing objectives failed somewhat.
The objective was:
obj.. wsum =e= lambda*TotFamilies + (1-lambda)*TotAgRevenue; |
Looking at the solution data:
scen | lambda | wsum | agrevenue | Families |
f1 | 0% | 1030.344 | 1030.343553 | 340148 |
f2 | 4% | 15382.14 | 1017.455397 | 345770 |
f3 | 8% | 29745.33 | 1017.81362 | 345748 |
f4 | 13% | 44107.68 | 1017.630868 | 345738 |
f5 | 17% | 58468.76 | 1017.707789 | 345724 |
f6 | 21% | 72835.88 | 1017.955018 | 345744 |
f7 | 25% | 87204.65 | 1017.872265 | 345765 |
f8 | 29% | 101566.6 | 1018.032087 | 345756 |
f9 | 33% | 115924.7 | 1018.032087 | 345738 |
f10 | 38% | 130285.8 | 1018.054461 | 345732 |
f11 | 42% | 144653.8 | 1017.955018 | 345744 |
f12 | 46% | 159020.3 | 1017.358215 | 345751 |
f13 | 50% | 173384.2 | 1017.358215 | 345751 |
f14 | 54% | 187744.6 | 1017.955018 | 345744 |
f15 | 58% | 202108.1 | 1017.955018 | 345744 |
f16 | 63% | 216471.7 | 1017.955018 | 345744 |
f17 | 67% | 230835.3 | 1017.955018 | 345744 |
f18 | 71% | 245203.7 | 1017.358215 | 345751 |
f19 | 75% | 259555.7 | 1017.927741 | 345735 |
f20 | 79% | 273917.2 | 1017.290331 | 345733 |
f21 | 83% | 288285.5 | 1018.062319 | 345739 |
f22 | 88% | 302648.9 | 1018.062319 | 345739 |
f23 | 92% | 317028.7 | 1017.683527 | 345757 |
f24 | 96% | 331378.5 | 1017.001386 | 345742 |
f25 | 100% | 345757 | 1017.683527 | 345757 |
the objectives have numbers that differ in magnitudes. After changing the objective to:
obj.. wsum =e= lambda*TotFamilies/300 + (1-lambda)*TotAgRevenue; |
the graph came out much better:
As this is a MIP you don’t necessarily get a new point for each lambda: different lambda’s one may actually yield the same solution. I have not drawn lines between the points as that would suggest any location on the line would be a valid solution, which for this MIP is not the case.
No comments:
Post a Comment