| |||||||||
UG - Examples from 'BCL Reference Manual' Description The following examples are discussed in detail in the 'BCL User Guide and Reference Manual':
Source Files By clicking on a file name, a preview is opened at the bottom of this page. Data Files xbairport.cs /**************************************************************** BCL Example Problems ==================== file xbairport.cs ````````````````` QCQP problem by Rodrigo de Barros Nabholz & Maria Aparecida Diniz Ehrhardt November 1994, DMA - IMECC- UNICAMP. Based on AMPL model airport.mod by Hande Y. Benson (Source: http://www.orfe.princeton.edu/~rvdb/ampl/nlmodels/ ) (c) 2008-2024 Fair Isaac Corporation authors: S.Heipcke, D.Brett, June 2008 ****************************************************************/ using System; using System.Text; using System.IO; using BCL; namespace Examples { public class TestBAirport { const int N = 42; public static void Main() { XPRB.init(); double[] cx = {-6.3, -7.8, -9, -7.2, -5.7, -1.9, -3.5, -0.5, 1.4, 4, 2.1, 5.5, 5.7, 5.7, 3.8, 5.3, 4.7, 3.3, 0, -1, -0.4, 4.2, 3.2, 1.7, 3.3, 2, 0.7, 0.1, -0.1, -3.5, -4, -2.7, -0.5, -2.9, -1.2, -0.4, -0.1, -1, -1.7, -2.1, -1.8, 0}; double[] cy = {8, 5.1, 2, 2.6, 5.5, 7.1, 5.9, 6.6, 6.1, 5.6, 4.9, 4.7, 4.3, 3.6, 4.1, 3, 2.4, 3, 4.7, 3.4, 2.3, 1.5, 0.5, -1.7, -2, -3.1, -3.5, -2.4, -1.3, 0, -1.7, -2.1, -0.4, -2.9, -3.4, -4.3, -5.2, -6.5, -7.5, -6.4, -5.1, 0}; double[] r = {0.09, 0.3, 0.09, 0.45, 0.5, 0.04, 0.1, 0.02, 0.02, 0.07, 0.4, 0.045, 0.05, 0.056, 0.36, 0.08, 0.07, 0.36, 0.67, 0.38, 0.37, 0.05, 0.4, 0.66, 0.05, 0.07, 0.08, 0.3, 0.31, 0.49, 0.09, 0.46, 0.12, 0.07, 0.07, 0.09, 0.05, 0.13, 0.16, 0.46, 0.25, 0.1}; int i, j; XPRBvar[] x = new XPRBvar[N]; XPRBvar[] y = new XPRBvar[N]; XPRBexpr qe; XPRBctr cobj, c; XPRBprob prob = new XPRBprob("airport"); /* Initialize a new problem in BCL */ /**** VARIABLES ****/ for(i=0;i<N;i++) x[i] = prob.newVar("x("+(i+1)+")", BCLconstant.XPRB_PL, -10, 10); for(i=0;i<N;i++) y[i] = prob.newVar("y("+(i+1)+")", BCLconstant.XPRB_PL, -10, 10); /****OBJECTIVE****/ /* sum(i in 1..N-1,j in i+1..N) ((x(i)-x(j))^2+(y(i)-y(j))^2) */ qe=new XPRBexpr(); for(i=0;i<N-1;i++) for(j=i+1;j<N;j++) qe+= (x[i]-x[j]).sqr() + (y[i]-y[j]).sqr(); cobj = prob.newCtr("Obj", qe ); prob.setObj(cobj); /* Set objective function */ /**** CONSTRAINTS ****/ /* (x(i)-cx(i))^2+(y(i)-cy(i))^2-r(i) <= 0 */ for(i=0;i<N;i++) c = prob.newCtr("Constr", (x[i]-cx[i]).sqr() + (y[i]-cy[i]).sqr() -r[i] <= 0); /****SOLVING + OUTPUT****/ prob.setSense(BCLconstant.XPRB_MINIM); /* Choose the sense of optimization */ /****PROBLEM PRINTING + MATRIX OUTPUT****/ /* prob.print(); prob.exportProb(BCLconstant.XPRB_MPS, "airport"); prob.exportProb(BCLconstant.XPRB_LP, "airport"); */ prob.lpOptimize(); /* Solve the problem */ System.Console.WriteLine("Solution: " + prob.getObjVal()); for (i = 0; i < N; i++) { System.Console.Write(x[i].getName() + ": " + x[i].getSol() + ", "); System.Console.WriteLine(y[i].getName() + ": " + y[i].getSol()); } return; } } } | |||||||||
© Copyright 2024 Fair Isaac Corporation. |