[−][src]Module numopt::model
Optimization algebraic modeling tools.
These tools facilitate the construction, solution, and extraction of results of optimization models.
Example
use numopt::model::*; use numopt::solver::*; // Variables let x = VariableScalar::new_continuous("x"); let y = VariableScalar::new_continuous("y"); // Objective function let f = 2.*&x - 5.*&y; // Constraints let c1 = x.geq(100.); let c2 = x.leq(200.); let c3 = y.geq(80.); let c4 = y.leq(170.); let c5 = (&y + 2.*&x).equal(&x + 200.); // Model let mut m = Model::new(); m.set_objective(Objective::minimize(&f)); m.add_constraint(&c1); m.add_constraint(&c2); m.add_constraint(&c3); m.add_constraint(&c4); m.add_constraint(&c5); // Solver let mut s = SolverClpCmd::new(); s.set_param("logLevel", SolverParam::IntParam(0)).unwrap(); m.solve(&s).unwrap(); // Status assert_eq!(*m.solver_status().unwrap(), SolverStatus::Solved); // Primal results let final_primals = m.final_primals(); assert_eq!(*final_primals.get(&x).unwrap(), 100.); assert_eq!(f.evaluate(&final_primals), -300.); // Dual results let final_duals = m.final_duals(); assert_eq!(*final_duals.get(&c1).unwrap(), 7.); assert_eq!(*final_duals.get(&c5).unwrap(), -5.);
Re-exports
pub use node::Node; |
pub use node_cmp::NodeCmp; |
pub use node_base::NodeBase; |
pub use node_func::NodeFunc; |
pub use node_diff::NodeDiff; |
pub use variable::VariableScalar; |
pub use constant::ConstantScalar; |
pub use constraint::Constraint; |
pub use model::Model; |
pub use model::Objective; |
Modules
constant | Constant expression. |
constraint | Optimization constraint. |
constraint_std | Structures and traits for transforming constraints to standard form. |
function | Functions on expression nodes. |
model | Optimization model. |
model_std | Structures and traits for transforming optimization models to standard form. |
node | Optimization expression node. |
node_base | Base expression node functionality. |
node_cmp | Trait for comparing expression nodes and constructing optimization constraints. |
node_diff | Trait for differentiating expression nodes. |
node_func | Trait that provides various functions of expression nodes. |
node_std | Structures and trait for extracting standard components and properties of expression node. |
variable | Optimization variables. |