| |||||||||||
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 By clicking on a file name, a preview is opened at the bottom of this page.
xbchess.c /******************************************************** BCL Example Problems ==================== file xbchess.c `````````````` Small LP-problem. (c) 2008-2024 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; } | |||||||||||
© Copyright 2024 Fair Isaac Corporation. |