/********************************************************
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;
}
|