Difference between revisions of "OptSolution"

(OptSolution(opt,decision))
(Examples)
Line 23: Line 23:
  
 
  [[Var]] x := 1;
 
  [[Var]] x := 1;
  [[Var]] prog := [[DefineOptimization]]( decisions:x, minimize: [[GammaFn]](x), domain:[[Continuous]](lb:0));
+
  [[Var]] opt := [[DefineOptimization]]( decisions:x, minimize: [[GammaFn]](x), domain:[[Continuous]](lb:0));
  [[OptSolution]](prog,x)
+
  [[OptSolution]](opt,x)
  
 
= See Also =
 
= See Also =

Revision as of 23:43, 10 February 2011


New to Analytica 4.3. For earlier versions, use LpSolution

OptSolution(opt,decision)

Returns the solution to an optimization problem «opt» specified by DefineOptimization. If you specify as «decision» the name of a global Decision variable used in the Optimization, it returns the solution (optimal value) for that decision. If you omit «decision», it returns the solution to all Decision variables as a vector indexed by a local index .Vars, which contains all the decision values flattened so that each solution is a scalar.

Evaluating a variable that uses OptSolution() will trigger an attempt to solve the optimization problem, unless it has already been solved by another call to OptSolution, or a related function, such as OptStatusText.

Optsolution returns a result when it finds an optimal, or likely optimal solution. If it finds no feasible solution it gives a warning if you have Show Result Warnings turned on. It is entirely possible that there is no solution, or that the solver could not find a feasible solution, in which cases the values returned by OptSolution are arbitrary. So, you should always check OptStatusText or OptStatusNum to check that it has found a feasible and optimal solution.

If the Optimization used a local variable, say D1, as a Decision, declared as local in the expression using DefineOptimization, for example

 Variable OptimizeIt :=  VAR d1:=0; DefineOptimization(Decisions: d1; ....)

you can get its solution by defining a local with the same identifier, D1, preceding OptSolution(), and giving D1 as «decision»:

 Variable D1_solution := VAR d1:=0; OptSolution(OptimizeIt, d1)

Examples

Find the minimum of the GammaFn(x) for x>0:

Var x := 1;
Var opt := DefineOptimization( decisions:x, minimize: GammaFn(x), domain:Continuous(lb:0));
OptSolution(opt,x)

See Also

Comments


You are not allowed to post comments.