[Cmpl] beginner questions on problem formulation

Richard Males males at iac.net
Fri Oct 6 15:46:09 EDT 2017


Thank you for the availability of CMPL and the COIN-OR project.

I am trying to learn the language by developing a model of port to port 
ocean transport with a relatively small set of ports (3 export serving 3 
producing regions, 7 import serving 7 consuming regions) eventually 
leading to a larger and more complex situation.  I come from a 
programming language background.  I am using Coliop4.

Any suggestions/advice much appreciated.

1) I have not found any tutorial information for beginners, only the 
documentation.  Is there anything like that available?

2) Is there a search function for the mailing list archive?

3)   I have sets for producing and consuming regions and import and 
export ports (see below).

producing_regions := set ("SouthAmerica","Midwest","PacificNorthwest");
export_ports[producing_regions] := ("Santos","NewOrleans","Seattle");
consuming_regions := set("China", "Europe", "Mexico", "Japan", 
"SoutheastAsia","FSU-MiddleEast","Korea");
import_ports[consuming_regions] := ("ChinaIP", "EuropeIP", "MexicoIP", 
"JapanIP", "SoutheastAsiaIP","FSU-MiddleEastIP","KoreaIP");


I am interested in developing the set of routes between all possible 
port pairs without having to directly enumerate it, so that I could 
reference route("Santos","ChinaIP") for the specifics of a particular 
route.  Is there an easy way of doing this within CMPL?  I did it 
manually, as follows:


routes := set( 
["Santos","ChinaIP"],["NewOrleans","ChinaIP"],["Seattle","ChinaIP"],

["Santos","EuropeIP"],["NewOrleans","EuropeIP"],["Seattle","EuropeIP"],

["Santos","MexicoIP"],["NewOrleans","MexicoIP"],["Seattle","MexicoIP"],

["Santos","JapanIP"],["NewOrleans","JapanIP"],["Seattle","JapanIP"],

["Santos","SoutheastAsiaIP"],["NewOrleans","SoutheastAsiaIP"],["Seattle","SoutheastAsiaIP"],

["Santos","FSU-MiddleEastIP"],["NewOrleans","FSU-MiddleEastIP"],["Seattle","FSU-MiddleEastIP"],

["Santos","KoreaIP"],["NewOrleans","KoreaIP"],["Seattle","KoreaIP"]);


4) I am also looking for the best way to formulate a lookup situation.  
In this case, given the region, I wish to know the port.  I have created 
a correspondence parameter with 2-tuples, as follows


producing_regions_export_ports_correspondence:=set(["SouthAmerica","Santos"],["Midwest","NewOrleans"],["PacificNorthWest","Seattle"]);


and I would like to be able, given "Midwest", to return "NewOrleans".  I 
can iterate over the set to find the value, e.g.:

# below finds correspondence by looping through all

{ [i,j] in producing_regions_export_ports_correspondence:

{i="Midwest": echo j;}

}

but I am hoping there is a more direct way of doing this.


Thank you in advance.


Dick Males

-- 
Richard M. Males
3319 Eastside Avenue
Cincinnati, OH 45208
USA

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/cmpl/attachments/20171006/0463a02c/attachment.html>


More information about the Cmpl mailing list