Class DevelopmentOptionRanker
java.lang.Object
neqsim.process.fielddevelopment.evaluation.DevelopmentOptionRanker
- All Implemented Interfaces:
Serializable
Decision support tool for ranking and scoring development options.
Provides multi-criteria decision analysis (MCDA) for comparing field development alternatives. Supports weighted scoring across technical, economic, environmental, and strategic criteria.
Scoring Dimensions
- Economic: NPV, IRR, payback, capital efficiency
- Technical: Complexity, technology risk, reservoir uncertainty
- Environmental: CO₂ intensity, emissions, environmental impact
- Strategic: Synergies, optionality, infrastructure value
- Risk: HSE risk, execution risk, commercial risk
Example Usage
DevelopmentOptionRanker ranker = new DevelopmentOptionRanker();
// Define criteria weights
ranker.setWeight(Criterion.NPV, 0.25);
ranker.setWeight(Criterion.CO2_INTENSITY, 0.15);
ranker.setWeight(Criterion.TECHNICAL_RISK, 0.20);
ranker.setWeight(Criterion.STRATEGIC_FIT, 0.15);
ranker.setWeight(Criterion.EXECUTION_RISK, 0.25);
// Add development options
DevelopmentOption opt1 = ranker.addOption("FPSO Development");
opt1.setScore(Criterion.NPV, 850.0); // MUSD
opt1.setScore(Criterion.CO2_INTENSITY, 12.0); // kg/boe
opt1.setScore(Criterion.TECHNICAL_RISK, 0.7); // 0-1, higher=riskier
opt1.setScore(Criterion.STRATEGIC_FIT, 0.9); // 0-1
opt1.setScore(Criterion.EXECUTION_RISK, 0.6);
DevelopmentOption opt2 = ranker.addOption("Tieback to Platform A");
opt2.setScore(Criterion.NPV, 420.0);
opt2.setScore(Criterion.CO2_INTENSITY, 8.0);
opt2.setScore(Criterion.TECHNICAL_RISK, 0.3);
opt2.setScore(Criterion.STRATEGIC_FIT, 0.7);
opt2.setScore(Criterion.EXECUTION_RISK, 0.3);
// Rank options
RankingResult result = ranker.rank();
System.out.println(result.generateReport());
- Version:
- 1.0
- Author:
- ESOL
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumDecision criteria for ranking.static classA development option with scores for each criterion.static classResult of ranking analysis. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final org.apache.logging.log4j.LoggerLogger instance.Development options to rank.private static final longprivate Map<DevelopmentOptionRanker.Criterion, Double> Criterion weights (sum should equal 1.0). -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionAdd a development option.voidAdd a development option directly.voidClear all options.Get all options.doublegetWeight(DevelopmentOptionRanker.Criterion criterion) Get weight for a criterion.voidNormalize weights to sum to 1.0.rank()Rank all options using weighted scoring.rankByCriterion(DevelopmentOptionRanker.Criterion criterion) Quick rank by a single criterion.voidsetWeight(DevelopmentOptionRanker.Criterion criterion, double weight) Set weight for a criterion.voidsetWeightProfile(String profile) Set preset weight profile.
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
logger
private static final org.apache.logging.log4j.Logger loggerLogger instance. -
options
Development options to rank. -
weights
Criterion weights (sum should equal 1.0).
-
-
Constructor Details
-
DevelopmentOptionRanker
public DevelopmentOptionRanker()Creates a new ranker with default equal weights.
-
-
Method Details
-
addOption
Add a development option.- Parameters:
name- option name- Returns:
- the created option for score setting
-
addOption
Add a development option directly.- Parameters:
option- the option to add
-
getOptions
Get all options.- Returns:
- list of options
-
clearOptions
public void clearOptions()Clear all options. -
setWeight
Set weight for a criterion.- Parameters:
criterion- the criterionweight- weight (0-1)
-
getWeight
Get weight for a criterion.- Parameters:
criterion- the criterion- Returns:
- weight value
-
normalizeWeights
public void normalizeWeights()Normalize weights to sum to 1.0. -
setWeightProfile
Set preset weight profile.- Parameters:
profile- profile name ("economic", "environmental", "balanced", "risk")
-
rank
Rank all options using weighted scoring.- Returns:
- ranking result
-
rankByCriterion
public List<DevelopmentOptionRanker.DevelopmentOption> rankByCriterion(DevelopmentOptionRanker.Criterion criterion) Quick rank by a single criterion.- Parameters:
criterion- criterion to rank by- Returns:
- ranked options
-