Contamination Control
See the simopt.models.contam module for API details.
Model: Contamination Control Problem (CONTAM)
Description
Consider a food supply chain consisting of \(n\) stages. Pathogenic microorganisms and other poisonous elements can contaminate some fraction of the food supply at each stage. Specifically, let the growth rate of contamination at stage \(i\) of the chain be denoted by the random variable \(\Lambda_i\), \(0 \leq \Lambda_i \leq 1\) for \(i = 1, 2, ..., n\). If a prevention effort is made at stage \(i\), the contamination decreases by the random rate \(\Gamma_i\), \(0 \leq \Gamma_i \leq 1\) with associated prevention cost \(c_i\). Let the binary variable \(u_i\) represent whether a prevention measure is executed at stage \(i\).
Sources of Randomness
Contamination rate \(\Lambda_i ~ Beta(1, \frac{17}{3})\) for \(i = 1, 2, ..., n\);
Restoration rate \(\Gamma_i ~ Beta(1, \frac{3}{7})\) for \(i = 1, 2, ..., n\);
Model Factors
- contam_rate_alpha: Alpha parameter of beta distribution for growth rate of contamination at each stage.
Default: 1.0
- contam_rate_beta: Beta parameter of beta distribution for growth rate of contamination at each stage.
Default: 17/3
- restore_rate_alpha: Alpha parameter of beta distribution for rate that contamination decreases by after prevention effort.
Default: 1.0
- restore_rate_beta: Beta parameter of beta distribution for rate that contamination decreases by after prevention effort.
Default: 3/7
- initial_rate_alpha: Alpha parameter of beta distribution for initial contamination fraction.
Default: 1.0
- initial_rate_beta: Beta parameter of beta distribution for initial contamination fraction.
Default: 30.0
- stages: Stage of food supply chain.
Default: 5
- prev_decision: Prevention decision.
Default: (0, 0, 0, 0, 0)
Responses
level: A list of contamination levels over time.
References
This model is adapted from the article “Contamination control in food supply chain” [1]. Prepared by Kaeyoung Shin and Raghu Pasupathy of Virginia Tech, 12/18/2010.
[1] Y. Hu, J. Hu, Y. Xu, and F. Wang. Contamination control in food supply chain. In Proceedings of the 2010 Winter Simulation Conference, 2010. https://dl.acm.org/doi/abs/10.5555/2433508.2433840
Optimization Problem: Minimize Prevention Costs (CONTAM-1)
Decision Variables
prev_decision
Objectives
Minimize the (deterministic) total cost of prevention efforts (prev_cost * prev_decision).
Constraints
Each element of prev_decision is binary. (See above.)
The contaminated fraction \(X_i\) at the stage \(i\) should not exceed a pre-specified upper limit \(p_i\) with probability at least \(1 - \epsilon_i\).
Problem Factors
- budget: Max # of replications for a solver to take.
Default: 10000
- prev_cost: Cost of prevention in each stage.
Default: [1, 1, 1, 1, 1]
- error_prob: Allowable error probability in each stage.
Default: [0.2, 0.2, 0.2, 0.2, 0.2]
- upper_thres: Upper limit of amount of contamination in each stage.
Default: [0.1, 0.1, 0.1, 0.1, 0.1]
Fixed Model Factors
N/A
Starting Solution
initial_solution: (1, 1, 1, 1, 1)
Random Solutions
Generate a tuple of Bernoulli(0.5) random variables.
Optimal Solution
Unknown
Optimal Objective Function Value
Unknown
Optimization Problem: ContaminationTotalCostCont (CONTAM-2)
Decision Variables
prev_decision
Objectives
Minimize the (deterministic) total cost of prevention efforts (prev_cost * prev_decision).
Constraints
Each element of prev_decision in the interval [0, 1].
The contaminated fraction \(X_i\) at the stage \(i\) should not exceed a pre-specified upper limit \(p_i\) with probability at least \(1 - \epsilon_i\).
Problem Factors
- budget: Max # of replications for a solver to take.
Default: 10000
- prev_cost: Cost of prevention in each stage.
Default: [1, 1, 1, 1, 1]
- error_prob: Allowable error probability in each stage.
Default: [0.2, 0.2, 0.2, 0.2, 0.2]
- upper_thres: Upper limit of amount of contamination in each stage.
Default: [0.1, 0.1, 0.1, 0.1, 0.1]
Fixed Model Factors
N/A
Starting Solution
initial_solution: (1, 1, 1, 1, 1)
Random Solutions
Generate a tuple of Uniform(0, 1) random variables.
Optimal Solution
Unknown
Optimal Objective Function Value
Unknown