FICO
FICO Xpress Optimization Examples Repository
FICO Optimization Community FICO Xpress Optimization Home
Back to examples browserNext example

Chess - Composing constraints and solving

Description
A tiny LP problem concerning the manufacture of chess boards. The example composes constraints term by term and then solves the problem.


Source Files





xbchess.c

/********************************************************
  BCL Example Problems
  ====================

  file xbchess.c
  ``````````````
  Small LP-problem.

  (c) 2008 Fair Isaac Corporation
      author: S.Heipcke, Jan. 2000, rev. Mar. 2011
********************************************************/

#include <stdio.h>
#include "xprb.h"

/***********************************************************************/

int main(int argc, char **argv)
{
 XPRBvar xs;                     /* Number of small chess sets to make */
 XPRBvar xl;                     /* Number of large chess sets to make */
 XPRBctr c;
 XPRBprob prob;

 prob=XPRBnewprob("Chess");      /* Initialize a new problem in BCL */

/****VARIABLES****/
 xs = XPRBnewvar(prob,XPRB_PL,"xs",0,XPRB_INFINITY);
 xl = XPRBnewvar(prob,XPRB_PL,"xl",0,XPRB_INFINITY);

/****OBJECTIVE****/
 c = XPRBnewctr(prob,"OBJ",XPRB_N);
 XPRBaddterm(c, xs,5);           /* Define the objective function */
 XPRBaddterm(c, xl,20);
 XPRBsetobj(prob,c);             /* Select objective function */

/****CONSTRAINTS****/
                                 /* Define the constraint 3*xs + 2*xl <= 400 */
 c=XPRBnewctr(prob,"mc_time",XPRB_L);
 XPRBaddterm(c,xs,3);
 XPRBaddterm(c,xl,2);
 XPRBaddterm(c,NULL,400);
                                 /* Define the constraint xs + 3*xl <= 200 */
 c=XPRBnewctr(prob,"wood",XPRB_L);
 XPRBaddterm(c,xs,1);
 XPRBaddterm(c,xl,3);
 XPRBaddterm(c,NULL,200);

/****SOLVING****/
 XPRBsetsense(prob, XPRB_MAXIM);
 XPRBlpoptimize(prob,"");        /* Solve the LP-problem */

 return 0;
}

Back to examples browserNext example