![]() | |||||||||||
| |||||||||||
Setops - Index sets Description A example showing the use of index sets and in particular, creating the union and intersection of index sets.
Source Files By clicking on a file name, a preview is opened at the bottom of this page.
xbsetops.java /******************************************************** Xpress-BCL Java Example Problems ================================ file xbsetops.java `````````````````` Set operations. (c) 2008 Fair Isaac Corporation author: S.Heipcke, Jan. 2000 ********************************************************/ import com.dashoptimization.*; public class xbsetops { /* Define arrays with index names: note that the restriction to 8 characters does not apply for BCL */ static final String city_names[] = {"rome", "bristol", "london", "paris", "liverpool"}; static final String port_names[] = {"plymouth", "bristol", "glasgow", "london", "calais", "liverpool"}; /***********************************************************************/ /**** Create the union of two index sets ****/ static XPRBindexSet createUnion(XPRBprob p, XPRBindexSet a, XPRBindexSet b, String name) { int i; XPRBindexSet c; c=p.newIndexSet(name,a.getSize()+b.getSize()); for(i=0;i<a.getSize();i++) c.addElement(a.getIndexName(i)); for(i=0;i<b.getSize();i++) c.addElement(b.getIndexName(i)); return c; } /**** Create the intersection of two index sets ****/ static XPRBindexSet createInter(XPRBprob p, XPRBindexSet a, XPRBindexSet b, String name) { int i; XPRBindexSet c; c=p.newIndexSet(name,a.getSize()<b.getSize()?a.getSize():b.getSize()); for(i=0;i<a.getSize();i++) if(b.getIndex(a.getIndexName(i))>=0) c.addElement(a.getIndexName(i)); return c; } /***********************************************************************/ public static void main(String[] args) { XPRBindexSet ports,cities,both,places; int i; try (XPRBprob p = new XPRBprob("Setops")) { /* Initialize BCL and create a new problem */ /* Create sets "cities" and "ports" and add the indices */ cities=p.newIndexSet("cities", city_names.length); for(i=0; i<city_names.length; i++) cities.addElement(city_names[i]); ports=p.newIndexSet("ports", port_names.length); for(i=0; i<port_names.length; i++) ports.addElement(port_names[i]); /* Create the union of "cities" and "ports" and print it */ places=createUnion(p,cities,ports,"places"); places.print(); /* Create the intersection of "cities" and "ports", print it */ both=createInter(p,cities,ports,"both sets"); both.print(); } } }
| |||||||||||
© Copyright 2022 Fair Isaac Corporation. |