Approximate and optimal solutions
Lax213208.Approximation · concepts/Lax213208/Approximation.lean · lax-213208
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Definition
For , an -approximate solution is feasible and has value at most for minimization, or at least for maximization. Comparison with every feasible solution avoids division by zero and does not require an attained optimum.
An optimal value, when needed, is the value of an attained optimum.
Concept map
Lean source view on GitHub
| 1 | import Lax213208.OptimizationProblem |
| 2 | |
| 3 | /-! |
| 4 | --- |
| 5 | title: Approximate and optimal solutions |
| 6 | type: definition |
| 7 | --- |
| 8 | For , an -approximate solution is feasible and has value at most |
| 9 | for minimization, or at least for |
| 10 | maximization. Comparison with every feasible solution avoids division by |
| 11 | zero and does not require an attained optimum. |
| 12 | |
| 13 | An optimal value, when needed, is the value of an attained optimum. |
| 14 | -/ |
| 15 | |
| 16 | namespace Lax213208.Approximation |
| 17 | |
| 18 | open OptimizationProblem |
| 19 | |
| 20 | variable {Instance Solution : Type*} |
| 21 | |
| 22 | def IsApproximation (problem : Problem Instance Solution) |
| 23 | (r : ℝ) (x : Instance) (y : Solution) : Prop := |
| 24 | 1 ≤ r ∧ problem.feasible x y ∧ ∀ z, problem.feasible x z → |
| 25 | match problem.direction with |
| 26 | | .minimize => (problem.value x y : ℝ) ≤ r * problem.value x z |
| 27 | | .maximize => (problem.value x z : ℝ) ≤ r * problem.value x y |
| 28 | |
| 29 | def IsOptimalValue (problem : Problem Instance Solution) |
| 30 | (x : Instance) (value : ℝ) : Prop := |
| 31 | ∃ y, IsApproximation problem 1 x y ∧ (problem.value x y : ℝ) = value |
| 32 | |
| 33 | end Lax213208.Approximation |
| 34 |
Builds on
From Mathlib
none
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments