showproblem

Display optimization problem

Description

example

showproblem(prob) displays the objective function, constraints, and bounds of prob.

Examples

collapse all

Create an optimization problem, including an objective function and constraints, and display the problem.

Create the problem in Mixed-Integer Linear Programming Basics: Problem-Based.

steelprob = optimproblem;
ingots = optimvar('ingots',4,1,'Type','integer','LowerBound',0,'UpperBound',1);
alloys = optimvar('alloys',4,1,'LowerBound',0);
weightIngots = [5,3,4,6];
costIngots = weightIngots.*[350,330,310,280];
costAlloys = [500,450,400,100];
cost = costIngots*ingots + costAlloys*alloys;
steelprob.Objective = cost;
totalweight = weightIngots*ingots + sum(alloys);
carbonIngots = [5,4,5,3]/100;
carbonAlloys = [8,7,6,3]/100;
totalCarbon = (weightIngots.*carbonIngots)*ingots + carbonAlloys*alloys;
molybIngots = [3,3,4,4,]/100;
molybAlloys = [6,7,8,9]/100;
totalMolyb = (weightIngots.*molybIngots)*ingots + molybAlloys*alloys;
steelprob.Constraints.conswt = totalweight == 25;
steelprob.Constraints.conscarb = totalCarbon == 1.25;
steelprob.Constraints.consmolyb = totalMolyb == 1.25;

Display the problem.

showproblem(steelprob)
  OptimizationProblem : 

	Solve for:
       alloys, ingots

	minimize :
       1750*ingots(1) + 990*ingots(2) + 1240*ingots(3) + 1680*ingots(4)
     + 500*alloys(1) + 450*alloys(2) + 400*alloys(3) + 100*alloys(4)


	subject to conswt:
       5*ingots(1) + 3*ingots(2) + 4*ingots(3) + 6*ingots(4) + alloys(1)
     + alloys(2) + alloys(3) + alloys(4) == 25

	subject to conscarb:
       0.25*ingots(1) + 0.12*ingots(2) + 0.2*ingots(3) + 0.18*ingots(4)
     + 0.08*alloys(1) + 0.07*alloys(2) + 0.06*alloys(3) + 0.03*alloys(4) == 1.25

	subject to consmolyb:
       0.15*ingots(1) + 0.09*ingots(2) + 0.16*ingots(3) + 0.24*ingots(4)
     + 0.06*alloys(1) + 0.07*alloys(2) + 0.08*alloys(3) + 0.09*alloys(4) == 1.25

	variable bounds:
       0 <= alloys(1)
       0 <= alloys(2)
       0 <= alloys(3)
       0 <= alloys(4)

       0 <= ingots(1) <= 1
       0 <= ingots(2) <= 1
       0 <= ingots(3) <= 1
       0 <= ingots(4) <= 1

Input Arguments

collapse all

Optimization problem or equation problem, specified as an OptimizationProblem object or an EquationProblem object. Create an optimization problem by using optimproblem; create an equation problem by using eqnproblem.

Warning

The problem-based approach does not support complex values in an objective function, nonlinear equalities, or nonlinear inequalities. If a function calculation has a complex value, even as an intermediate value, the final result can be incorrect.

Example: prob = optimproblem; prob.Objective = obj; prob.Constraints.cons1 = cons1;

Example: prob = eqnproblem; prob.Equations = eqs;

Tips

  • showproblem is equivalent to calling all of the following:

  • For a problem that has many bounds or constraints, use writeproblem to generate a text file containing the objective, constraint, and bound information.

Compatibility Considerations

expand all

Not recommended starting in R2019b

Introduced in R2017b