Design choices for optimization applicationsD)Design Choices fo… · » formulate model and...
Transcript of Design choices for optimization applicationsD)Design Choices fo… · » formulate model and...
![Page 1: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/1.jpg)
The material in this presentation is the property of Fair Issac Corporation, is provided for the recipient only, andshall not be used, reproduced, or disclosed without Fair Isaac Corporation’s express consent.
c©2010 Fair Issac Corporation.
Design choices for optimizationapplications
Susanne HeipckeXpress Team, FICO
http://www.fico.com/xpress
![Page 2: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/2.jpg)
c©2010 Fair Isaac Corporation.
Overview
» Modeling platforms» Application design» Xpress-Mosel» Mosel: Selected new features» Application examples» Summary
![Page 3: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/3.jpg)
c©2010 Fair Issac Corporation.
Modeling platforms
![Page 4: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/4.jpg)
c©2010 Fair Issac Corporation.
Model development cycle
& analysisInterpretation
conceptionProblem
Model
Computational
Computationalsolution instance
Model solution
problem instance
Human Computer
![Page 5: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/5.jpg)
c©2010 Fair Issac Corporation.
Why use modeling software?
» Developing a working model is the difficult bit» Important to have software that helps
» speed to market» verify correctness» maintenance & modification» algorithmic considerations» execution speed
![Page 6: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/6.jpg)
c©2010 Fair Issac Corporation.
Modeling platforms
Matrix generators
70s 80s 90s 2000s
GA
MS
AM
PL
AIM
MS
Modeling languages
GUI
Model building libraries
BC
LM
osel
mp-
mod
el
Modeling + Programming
Con
cert
OP
L
![Page 7: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/7.jpg)
c©2010 Fair Issac Corporation.
Modeling platforms
Modeling language Modeling library Matrix based
easy
quite easy very hard
native/some intrinsic native language
easyVerify correctness
Data handling
Maintenance easy harder difficult
Speed to market
Model execution speed possibly slower
Building algorithms
slow
faster
slowest
fastest
quite easylanguage dependent
high level
fast
![Page 8: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/8.jpg)
c©2010 Fair Issac Corporation.
Xpress modeling interfaces
» Mosel» formulate model and develop optimization methods
using Mosel language / environment
» BCL» build up model in your application code using
object-oriented model builder library
» Optimizer» read in matrix files» input entire matrix from program arrays
![Page 9: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/9.jpg)
c©2010 Fair Issac Corporation.
Mosel
» A modeling and solving environment» integration of modeling and solving» programming facilities» open, modular architecture
» Interfaces to external data sources (e.g. ODBC,host application) provided
» Language is concise, user friendly, high level» Best choice for rapid development and
deployment
![Page 10: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/10.jpg)
c©2010 Fair Issac Corporation.
Xpress-BCL
» Model consists of BCL functions withinapplication source code (C, C++, Java, C# orVB)
» Develop with standard C/C++/Java/C#/VB tools» Provide your own data interfacing» Lower level, object oriented approach» Enjoy benefits of structured modeling within
your application source code
![Page 11: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/11.jpg)
c©2010 Fair Issac Corporation.
Xpress-Optimizer
» Model is set of arrays within applicationsource code (C, Java, C#, or VB)
» May also input problems from a matrix file» Develop with standard C/C#/Java/VB tools» Provide your own data interfacing» Very low level, no problem structure» Most efficient but lose easy model
development and maintenance
![Page 12: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/12.jpg)
c©2010 Fair Issac Corporation.
Application design
![Page 13: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/13.jpg)
c©2010 Fair Issac Corporation.
Application design
Project
design
Algorithms?
Application
Targetaudience? design?
![Page 14: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/14.jpg)
c©2010 Fair Issac Corporation.
Application design
audience?Target
’Lightweight’GUIPreference? architecture?
Application
End usersResearch Business experts
OR specialists/ Analysts/
![Page 15: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/15.jpg)
c©2010 Fair Issac Corporation.
Application design
componentStandaloneIntegrated
Model + GUI
Applicationarchitecture?
interaction?User Data I/O,
interfaces?
![Page 16: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/16.jpg)
c©2010 Fair Issac Corporation.
Application design
interaction?User
Restarts (change data)
Tuning (solver parameters,stopping criteria)
Configuration(select constraints)
static dynamic
Influence solution algorithms
Logging/progress display
bounds, reject solutions)(user-defined cuts or heuristics,
![Page 17: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/17.jpg)
c©2010 Fair Issac Corporation.
Application design
File formats, databaseconnectivity
Embedding functionality
Data I/O,interfaces?
Development environment(access to andinteraction with model)
Model interfaces Application interface
GUIHost languages
![Page 18: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/18.jpg)
c©2010 Fair Issac Corporation.
Application design
Projectdesign?
maintenance?Development/
severalplatforms
Possibly
platformflexible Single Single
platform
Overlapping phasesIndependent phases All-in-one (single phase)
![Page 19: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/19.jpg)
c©2010 Fair Issac Corporation.
Application design
maintenance?Development/
Persons / teams involved
Inhouse vs. external
Continuity
![Page 20: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/20.jpg)
c©2010 Fair Issac Corporation.
Application design
Solver choice Solverinteraction
Decomposition/Parallelism
Paradigm switch
User extensions
Standard formats
Related problem types
Callbacks Programming facilities
Communication andcoordination mechanisms
Algorithms?
Distributed computing
![Page 21: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/21.jpg)
c©2010 Fair Issac Corporation.
Xpress-Mosel
![Page 22: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/22.jpg)
c©2010 Fair Issac Corporation.
Xpress-Mosel
» A high-level modeling language combinedwith standard functionality of programminglanguages» implementation of models and solution algorithms in
a single environment
» Open, modular architecture» extensions to the language without any need for
modifications to the core system
» Compiled language» platform-independent compiled models for
distribution to protect intellectual property
![Page 23: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/23.jpg)
c©2010 Fair Issac Corporation.
...and also
» Mosel modules» solvers: mmxprs, mmquad, mmxslp, mmnl, kalis» data handling: mmetc, mmodbc, mmoci» model handling, utilities: mmjobs, mmsystem» graphics: mmive, mmxad
» IVE: visual development environment(Windows)
» Library interfaces for embedding models intoapplications (C, Java, C#, VB)
» Tools: debugger, profiler, model conversion,preprocessor
![Page 24: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/24.jpg)
c©2010 Fair Issac Corporation.
Example: Portfolio optimizationProblem description
» An investor wishes to invest a certain amountof money into a selection of shares.
» Constraints:1. Invest at most 30% of the capital into any share.2. Invest at least half of the capital in North-American
shares.3. Invest at most a third in high-risk shares.
» Objective: obtain the highest expected returnon investment
![Page 25: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/25.jpg)
c©2010 Fair Issac Corporation.
Example: Portfolio optimizationMathematical model
maximize∑
s∈SHARES
RETs · fracs∑s∈RISK
fracs ≤ 1 / 3∑s∈NA
fracs ≥ 0. 5∑s∈SHARES
fracs = 1
∀s ∈ SHARES : 0 ≤ fracs ≤ 0. 3
![Page 26: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/26.jpg)
c©2010 Fair Issac Corporation.
Example: Portfolio optimizationMosel model
![Page 27: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/27.jpg)
c©2010 Fair Issac Corporation.
Example: Portfolio optimizationLogical Conditions
1. Binary variables
2. Semi-continuous variables
![Page 28: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/28.jpg)
c©2010 Fair Issac Corporation.
Example: Portfolio optimizationExtended problem
» We wish to» run the model with different limits on the portion of
high-risk shares,» represent the results as a graph, plotting the
resulting total return against the deviation as ameasure of risk.
» Algorithm: for every parameter value» re-define the constraint limiting the percentage of
high-risk values,» solve the resulting problem,» if the problem is feasible: store the solution values.
![Page 29: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/29.jpg)
c©2010 Fair Issac Corporation.
Example: Portfolio optimizationExtended problem
![Page 30: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/30.jpg)
c©2010 Fair Issac Corporation.
Example: Portfolio optimizationExtended problem
![Page 31: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/31.jpg)
c©2010 Fair Issac Corporation.
Data handling
» Physical files:» text files (Mosel format, new: binary format,
diskdata; free format, new: XML,» spreadsheets, databases (ODBC or specific drivers)
» In memory:» memory block/address» streams; pipes; callbacks (new: IO callback)
![Page 32: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/32.jpg)
c©2010 Fair Issac Corporation.
Data handling
![Page 33: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/33.jpg)
c©2010 Fair Issac Corporation.
XAD application
![Page 34: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/34.jpg)
c©2010 Fair Issac Corporation.
Advanced solving tasks
» Infeasibility handling» definition of slack variables» IIS (irreducible infeasible sets)» infeasibility repair meachanism
» Solution enumeration» obtain the N best solutions
![Page 35: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/35.jpg)
c©2010 Fair Issac Corporation.
Solution enumeration
Standard MIP search: Solution enumerator:
![Page 36: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/36.jpg)
c©2010 Fair Issac Corporation.
Schemes of decomposition andconcurrent solving
The "multis":
– multi-solver Mosel instance
Mosel model
uses ’mmxslp’uses ’mmxprs’
![Page 37: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/37.jpg)
c©2010 Fair Issac Corporation.
Schemes of decomposition andconcurrent solving
The "multis":
– multi-solver– multi-problem
Mosel instance
Mosel model
shared
dataProblemProblem
![Page 38: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/38.jpg)
c©2010 Fair Issac Corporation.
Schemes of decomposition andconcurrent solving
The "multis":
– multi-solver– multi-problem– multi-model
Submodel
Mosel instance
Master model
events
start
ProblemProblem
![Page 39: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/39.jpg)
c©2010 Fair Issac Corporation.
Schemes of decomposition andconcurrent solving
The "multis":
– multi-solver– multi-problem– multi-model– multi-node
Remote instance
Submodel
Local instance
Master model
events
start
ProblemProblem
![Page 40: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/40.jpg)
c©2010 Fair Issac Corporation.
Schemes of decomposition andconcurrent solving
» Simple parallel runs» different data instances» different algorithm configurations
» Decomposition» Benders» Dantzig-Wolffe
» Column generation» loop over top node» branch-and-price
» Cut generation» (cut-and-branch, branch-and-cut)» adding constraints
![Page 41: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/41.jpg)
c©2010 Fair Issac Corporation.
Mosel: Selected new features
» Distributed model execution» IO callbacks» XML interface
![Page 42: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/42.jpg)
c©2010 Fair Issac Corporation.
Distributed model execution
» mmjobs: facilities for model management,synchronization of concurrent models basedon event queues, shared memory IO driver.
» New: extending capacities for handlingmultiple models to distributed computingusing several Mosel instances (running locallyor on remote nodes connected through anetwork)
![Page 43: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/43.jpg)
c©2010 Fair Issac Corporation.
Distributed model execution
» Mosel instance management: connecting anddisconnecting Mosel instances, access toremote files, handling of host aliases (newtype: Mosel)
» Remote connection IO drivers: two drivers(xsrv and rcmd) for creating remote Moselinstances.
» Remote file acces IO drivers: access to physicalfiles or streams on remote Mosel instances(rmt), usable wherever Mosel expects a(generalized) filename, in particular ininitializations blocks.
![Page 44: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/44.jpg)
c©2010 Fair Issac Corporation.
Distributed model execution
» Remote machine must run a server» Default (as specified by value of control conntmpl):
Mosel server xprmsrv (started as separate program,available for all platforms supported by Xpress),connect with driver xsrv
connect(mosInst, "ABCD123")! Same as: connect(mosInst, "xsrv:ABCD123")
» Alternative: other servers, connect with driver rcmd,e.g. with rhs, (NB: Mosel command line option -r isrequired for remote runs):
connect(mosInst, "rcmd:rsh ABCD123 mosel -r")
![Page 45: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/45.jpg)
c©2010 Fair Issac Corporation.
Distributed model execution
» The Mosel server can be configured.» Use this command to display the available options:
xprmsrv -h
Configuration options include verbosity settings,choice of the TCP port, and the definition of a logfile.
» Alternatively, use a configuration file for moreflexible configuration and to define multipleenvironments
xprmsrv myconfig.conf
![Page 46: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/46.jpg)
c©2010 Fair Issac Corporation.
Configuration file
» Contents of myconfig.conf:# Global setting of a log fileLOGFILE=/tmp/logfile.txt
# Add a password to the default environment ’xpress’[xpress]PASS=hardone
# Define new environment using a different Xpress version[xptest]XPRESSDIR=/opt/xpressmp/testingXPRESS=/opt/xpressmp/licMOSEL_CWD=$XPRESSDIR/workdir
» Usage:r1:= connect(inst1, "xsrv:localhost/xpress/hardone")r2:= connect(inst2, "xrsv:mypcname/xptest")
![Page 47: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/47.jpg)
c©2010 Fair Issac Corporation.
Local instances
» Remote machine may be identical with thecurrent node (new instance started on thesame machine in a separate process)connect(mosInst, "")! Same as: connect(mosInst, "rcmd:mosel -r")
connect(mosInst, "localhost")! Same as: connect(mosInst, "xsrv:localhost")
![Page 48: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/48.jpg)
c©2010 Fair Issac Corporation.
Executing a submodel
model "Run model rtparams"uses "mmjobs"
declarationsmodPar: Model
end-declarations! Compile the model file
if compile("rtparams.mos")<>0 then exit(1); end-if! Load the bim file
load(modPar, "rtparams.bim")! Start model execution + parameter settings
run(modPar, "PARAM1=" + 3.4 + ",PARAM3=’a string’" + ",PARAM4=" + true)wait ! Wait for model terminationdropnextevent ! Ignore termination event message
end-model
![Page 49: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/49.jpg)
c©2010 Fair Issac Corporation.
Executing a submodel remotely
model "Run model rtparams remotely"uses "mmjobs"
declarationsmodPar: ModelmosInst: Mosel
end-declarations! Compile the model file
if compile("rtparams.mos")<>0 then exit(1); end-if
NODENAME:= "" ! "" for current node, or name, or IP address! Open connection to a remote node
if connect(mosInst, NODENAME)<>0 then exit(2); end-if! Load the bim file
load(mosInst, modPar, "rmt:rtparams.bim")! Start model execution + parameter settings
run(modPar, "PARAM1=" + 3.4 + ",PARAM3=’a string’" + ",PARAM4=" + true)wait ! Wait for model terminationdropnextevent ! Ignore termination event messageend-model
![Page 50: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/50.jpg)
c©2010 Fair Issac Corporation.
Executing a submodel remotely
model "Compile and run model rtparams remotely"uses "mmjobs"
declarationsmodPar: ModelmosInst: Mosel
end-declarations
NODENAME:= "" ! "" for current node, or name, or IP address! Open connection to a remote node
if connect(mosInst, NODENAME)<>0 then exit(2); end-if! Compile the model file remotely
if compile(mosInst, "", "rmt:rtparams.mos", "rtparams.bim")<>0 thenexit(1); end-if ! Load the bim file
load(mosInst, modPar, "rtparams.bim")! Start model execution + parameter settings
run(modPar, "PARAM1=" + 3.4 + ",PARAM3=’a string’" + ",PARAM4=" + true)wait ! Wait for model terminationdropnextevent ! Ignore termination event messageend-model
![Page 51: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/51.jpg)
c©2010 Fair Issac Corporation.
New and overloaded subroutines
» Instance connection/disconnectionr:= connect(myInst, "")disconnect(myInst)
» Remote compilation & loadingr:= compile(myInst, "", "filename.mos", "filename.bim")load(myInst, myModel, "filename.bim")
» Redirecting Mosel streamssetdefstream(myInst, F_OUTPUT, "rmt:instoutput.txt")
![Page 52: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/52.jpg)
c©2010 Fair Issac Corporation.
Some utilities
» System informationcompName:= getsysinfo(SYS_NODE); allinfo:=getsysinfo(myInst)currNode:= getparam("NODENUMBER"); parent:= getparam("PARENTNUMBER")modelID:= getparam("JOBID"); instID:= getid(myInst)
» Instance status informationif getstatus(myInst)<>0 then
writeln("Instance is not connected")end-if
» Aliasessethostalias("localhost2","localhost")r:= connect(myInst, "localhost2")sysName:= gethostalias("localhost2"); getaliases(allAliases)clearaliases
![Page 53: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/53.jpg)
c©2010 Fair Issac Corporation.
Distributed model execution
» Documentation: ’Mosel Language Referencemanual’, Chapter 7 mmjobs
» Examples: see newest version of thewhitepaper ’Multiple models and parallelsolving with Mosel’, Section 2.8 Working withremote Mosel instances
» Another introductory example in ’Guide forevaluators 2’, Section 6 Working in adistributed architecture
![Page 54: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/54.jpg)
c©2010 Fair Issac Corporation.
IO callbacks
» In-memory communication so far: fixed datastructure sizes
» New: alternative communication mechanismworking with flows enables dynamic sizing ofdata structures on the application level» particularly useful for solution output where
effective data sizes are not known a priori» available in C, Java, .NET
![Page 55: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/55.jpg)
c©2010 Fair Issac Corporation.
IO callbacks
» Pass the address of the function (C) or class(Java) implementing the callback to Mosel viamodel parameters
» initializations to: use the Moselpost-processing library functions to retrievedata from Mosel into the application
» initializations from: new set offunctions to send data to Mosel, using thesame format as the default text file format
![Page 56: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/56.jpg)
c©2010 Fair Issac Corporation.
IO callbacks (C)
mydata: [ ("ind1" 3) [5 1.2] ("ind2" 7) [4 6.5] ]
XPRMcb_sendctrl(cb, XPRM_CBC_OPENLST, 0); ! [XPRMcb_sendctrl(cb, XPRM_CBC_OPENNDX, 0); ! (XPRMcb_sendstring(cb, "ind1", 0); ! "ind1"XPRMcb_sendint(cb, 3, 0); ! 3XPRMcb_sendctrl(cb, XPRM_CBC_CLOSENDX, 0); ! )XPRMcb_sendctrl(cb, XPRM_CBC_OPENLST, 0); ! [XPRMcb_sendint(cb, 5, 0); ! 5XPRMcb_sendreal(cb, 1.2, 0); ! 1.2XPRMcb_sendctrl(cb, XPRM_CBC_CLOSELST, 0); ! ]XPRMcb_sendctrl(cb, XPRM_CBC_OPENNDX, 0); ! (XPRMcb_sendstring(cb, "ind2", 0); ! "ind2"XPRMcb_sendint(cb, 7, 0); ! 7XPRMcb_sendctrl(cb, XPRM_CBC_CLOSENDX, 0); ! )XPRMcb_sendctrl(cb, XPRM_CBC_OPENLST, 0); ! [XPRMcb_sendint(cb, 4, 0); ! 4XPRMcb_sendreal(cb, 6.5, 0); ! 6.5XPRMcb_sendctrl(cb, XPRM_CBC_CLOSELST, 0); ! ]XPRMcb_sendctrl(cb, XPRM_CBC_CLOSELST, 0); ! ]
![Page 57: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/57.jpg)
c©2010 Fair Issac Corporation.
IO callbacks (Java)
mydata: [ ("ind1" 3) [5 1.2] ("ind2" 7) [4 6.5] ]
ictx.sendControl(ictx.CONTROL_OPENLST); ! [ictx.sendControl(ictx.CONTROL_OPENNDX); ! (ictx.send("ind1"); ! "ind1"ictx.send(3); ! 3ictx.sendControl(ictx.CONTROL_CLOSENDX); ! )ictx.sendControl(ictx.CONTROL_OPENLST); ! [ictx.send(5); ! 5ictx.send(1.2); ! 1.2ictx.sendControl(ictx.CONTROL_CLOSELST); ! ]ictx.sendControl(ictx.CONTROL_OPENNDX); ! (ictx.send("ind2"); ! "ind2"ictx.send(7); ! 7ictx.sendControl(ictx.CONTROL_CLOSENDX); ! )ictx.sendControl(ictx.CONTROL_OPENLST); ! [ictx.send(4); ! 4ictx.send(6.5); ! 6.5ictx.sendControl(ictx.CONTROL_CLOSELST); ! ]ictx.sendControl(ictx.CONTROL_CLOSELST); ! ]
![Page 58: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/58.jpg)
c©2010 Fair Issac Corporation.
IO callbacks
» Documentation: ’Mosel Library Referencemanual’, Section 1.5.2.2 cb driver – Handlingof initializations blocks
» Examples: see newest version of the ’MoselUser Guide’, Sections 13.4.3 Dynamic data (C),14.1.6.3 Dynamic data (Java)
![Page 59: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/59.jpg)
c©2010 Fair Issac Corporation.
XML interface
» The module smew provides an XML interfacefor the Mosel language.
» smew relies on two external libraries withoutwhich the module will not work:» scew (’simple C expat wrapper’) — handling of the
XML tree» expat — the parser
![Page 60: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/60.jpg)
c©2010 Fair Issac Corporation.
Structure of an XML document
<?xml ... ?> Preamble
<root><parent>
<element attrname="attrvalue">contents<child>
<leaf>leafcontents</leaf></child><child>2nd child contents</child>
</element><emptyelement attrname="attrvalue" />
</parent></root>
![Page 61: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/61.jpg)
c©2010 Fair Issac Corporation.
smew functionality
» New types:» xmldoc represents an XML document» xmleltref is a reference to a node/element in the
document.Several xmleltref may reference the same elementand the module does not check consistency: if anelement is removed, it is up to the user to make surenone of its references will be used afterwards
![Page 62: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/62.jpg)
c©2010 Fair Issac Corporation.
smew functionality
» Subroutines:» File access: load, save» Document structure: getroot, setroot,isvalid, getpreamble, setpreamble,getchildren, getparent, add, remove
» Handling elements: getname, setname,getcontent,get[int|real|bool|str]content,setcontent, getattr,get[int|real|bool|str]attr, setattr,delattr, getallattr
![Page 63: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/63.jpg)
c©2010 Fair Issac Corporation.
Example: Portfolio optimizationXML data format
declarationsSHARES: set of string ! Set of sharesRISK: set of string ! Set of high-risk values among sharesNA: set of string ! Set of shares issued in N.-AmericaRET: array(SHARES) of real ! Estimated return in investment
AllData: xmldoc ! XML documentShareList: list of xmleltref ! List of XML elements
end-declarations
! Reading data from an XML fileload(AllData, "folio.xml")getchildren(getroot(AllData), ShareList, "share")
RISK:= union(l in ShareList | getattr(l,"risk")="high"){getstrattr(l,"name")}
NA:= union(l in ShareList | getattr(l,"region")="NA"){getstrattr(l,"name")}
forall(l in ShareList) RET(getstrattr(l,"name")):= getintattr(l, "ret")
![Page 64: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/64.jpg)
c©2010 Fair Issac Corporation.
Example: Portfolio optimizationXML data format
» Data file folio.xml:
<portfolio><share name="treasury" ret="5" dev="0.1" country="Canada"
region="NA" risk="low" /><share name="hardware" ret="17" dev="19" country="USA"
region="NA" risk="high" />...<share name="electronics" ret="21" dev="16" country="Japan"
region="Asia" risk="high" /></portfolio>
![Page 65: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/65.jpg)
c©2010 Fair Issac Corporation.
Example: Portfolio optimizationXML data format
declarationsSHARES: set of string ! Set of sharesfrac: array(SHARES) of mpvar ! Fraction of capital used per share
AllData: xmldoc ! XML documentShare,Root,Sol: xmleltref ! XML elements
end-declarations
! Create solution representation in XML formatRoot:= setroot(AllData, "result")Sol:= add(Root, "solution")forall(s in SHARES) doShare:= add(Sol, "share")setattr(Share, "name", s)Share.content:= frac(s).sol
end-do
save(AllData, "result.xml") ! Save solution to XML format filesave(AllData, "") ! Display XML format solution on screen
![Page 66: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/66.jpg)
c©2010 Fair Issac Corporation.
Example: Portfolio optimizationXML data format
» Generated output file result.xml:
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<result><solution>
<share name="treasury">0.3</share><share name="hardware">0</share>...<share name="electronics">0</share>
</solution></result>
![Page 67: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/67.jpg)
c©2010 Fair Issac Corporation.
smew distribution
» Available for download from the Mosel opensource webpage
» Archive contains» module source file: smew.c» module library file: smew.dso (copy into subdirectorydso)
» library files: *expat.* and *scew.* (copy intosubdirectory bin [Windows] or lib [Unix])
» documentation: smew.txt» examples: folioxml.mos, folioxmlqp.mos,booksearch.mos, xmltest.mos
![Page 68: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/68.jpg)
c©2010 Fair Issac Corporation.
Application examples
» Alternative interfaces: Portfolio rebalancing» Distributed Mosel: client-server» Visualization: Aircraft routing
![Page 69: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/69.jpg)
c©2010 Fair Issac Corporation.
Portfolio rebalancing:Problem description
» Modify the composition of an investmentportfolio as to achieve or approach a specifiedinvestment profile.
![Page 70: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/70.jpg)
c©2010 Fair Issac Corporation.
Application architecture
» Single, configurable model file» Different interfaces for model execution
» stand-alone mode (command line or throughXpress-IVE) for development
» graphical interface (written with XAD) for singlemodel runs and simulation
» Java application for running batches of modelinstances
![Page 71: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/71.jpg)
c©2010 Fair Issac Corporation.
Optimization application in MoselStandalone
Data files Mosel model
IVE
Output files
start applicationreturn results
![Page 72: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/72.jpg)
c©2010 Fair Issac Corporation.
Optimization application in MoselXAD GUI
Data files Mosel model
XAD
Output files
outputSummary
ration fileConfigu-
start applicationreturn results
![Page 73: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/73.jpg)
c©2010 Fair Issac Corporation.
Optimization application in MoselEmbedded into host application
Mosel model
Output files
outputSummary start application
return results
JavaData files
![Page 74: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/74.jpg)
c©2010 Fair Issac Corporation.
Optimization application in MoselAlternative interfaces
outputSummary
Data files
start application
Mosel model
XAD IVE Java
Output files
outputSummary
Data filesration fileConfigu-
return resultsoutputSummary
![Page 75: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/75.jpg)
c©2010 Fair Issac Corporation.
Input
» Stand-alone and XAD: data input from textfiles directly into Mosel» uses a filter module to accomodate different number
formats
» Java: data read and stored by host application;communication with model instances throughmemory
![Page 76: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/76.jpg)
c©2010 Fair Issac Corporation.
Output
» Textual output log on screen or to file» Optionally detailed HTML output» Java: summary statistics of multiple runs» XAD:
» summary statistics in the case of multiple runs» optional output to Excel
![Page 77: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/77.jpg)
c©2010 Fair Issac Corporation.
XAD interface
» Graphical user interface (Windows)» Configuration of model runs
» data files» parameter settings» selection of constraints
» Choice of solving mode:» repeated runs for a single model (simulation)» solve all instances from customer file (evaluation of
parameter settings)
» Graphical comparison of results
![Page 78: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/78.jpg)
c©2010 Fair Issac Corporation.
XAD interface:Detailed results
![Page 79: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/79.jpg)
c©2010 Fair Issac Corporation.
XAD interface:Parameter and version log
![Page 80: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/80.jpg)
c©2010 Fair Issac Corporation.
XAD interface:Multiple run summary
![Page 81: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/81.jpg)
c©2010 Fair Issac Corporation.
Some highlights
» Model:» easy maintenance through single model» deployment as BIM file: no changes to model by
end-user» language extensions according to specific needs
» Interfaces:» several run modes adapted to different types of
usages» efficient data exchange with host application
through memory» parallel model runs (Java) or repeated sequential runs
(XAD)
![Page 82: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/82.jpg)
c©2010 Fair Issac Corporation.
Distributed Mosel:problem description
» Multi-user optimization application processinga large number of optimization modelinstances
» Idea: replace the preselected, staticassignment of optimization runs by a Moselserver that controls the job queues
![Page 83: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/83.jpg)
c©2010 Fair Issac Corporation.
Distributed Mosel:client-server architecture
Mosel server
User
UserD
atab
ase
Productionmachine
machineProduction
... ...
![Page 84: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/84.jpg)
c©2010 Fair Issac Corporation.
Distributed Mosel:highlights
» Use Mosel lists for representation of dynamicqueueing system
» Mosel master (’server’) model communicateswith database and handles remote submodels
![Page 85: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/85.jpg)
c©2010 Fair Issac Corporation.
Aircraft routing:Problem description
» For given sets of flights and aircraft,determine which aircraft services a flight.
» Aircraft are not identical» they cannot all service every flight» a specific maintenance site must be used per plane» some scheduled long maintenance breaks
» Starting condition: each aircraft has a startingposition and a specific amount of accumulatedflight minutes
![Page 86: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/86.jpg)
c©2010 Fair Issac Corporation.
Aircraft routing:Representation
» Temporal (activity on node) network:» a flight corresponds to a node» ’cost’ of node: flight minutes ( 6= elapsed time)» successor nodes: flights starting from a destination
within a given time window after arrival ofpredecessor
» maintenance: represented by a node» aircraft: commodity traveling through the network
![Page 87: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/87.jpg)
c©2010 Fair Issac Corporation.
Aircraft routing:Decomposition
» Different views are possible:» per time unit (e.g., day)» per commodity (aircraft)
» Idea: generate set of feasible routes peraircraft by solving optimization subproblemsmaximizing the flight minutes up to eachmaintenance stop» iteratively force usage of ’less preferred’ flights» may keep suboptimal solutions
![Page 88: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/88.jpg)
c©2010 Fair Issac Corporation.
Aircraft routing:Application architecture
» Master problem: route selection» Subproblems: route generation (one instance
per plane)» parallel, possibly remote, execution of submodels
» User interface (optional): XAD GUI
![Page 89: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/89.jpg)
c©2010 Fair Issac Corporation.
Aircraft routing:Application GUI
![Page 90: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/90.jpg)
c©2010 Fair Issac Corporation.
Aircraft routing:Visualization
» Visualization of input data helps withunderstanding and analysis of the problem
» Representation of intermediate results duringdevelopment (IVE) or as progress report tousers (XAD)
![Page 91: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/91.jpg)
c©2010 Fair Issac Corporation.
Aircraft routing:Visualization
![Page 92: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/92.jpg)
c©2010 Fair Issac Corporation.
Aircraft routing:User interaction
» Manual construction of routes» Editing generated plans
![Page 93: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/93.jpg)
c©2010 Fair Issac Corporation.
Aircraft routing:User interaction
![Page 94: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/94.jpg)
c©2010 Fair Issac Corporation.
Summary
![Page 95: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/95.jpg)
c©2010 Fair Issac Corporation.
Summary
» Have seen:» design choices for optimization applications
» Xpress-Mosel:» recent developments make possible implementation
of complex algorithms and a high degree of userinteraction
» unique features for handling large-scale problems:support of decomposition, concurrent solving,distributed computing, and also 64bit coefficientindexing
![Page 96: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/96.jpg)
c©2010 Fair Issac Corporation.
Where to get more information
» Xpress website:» http://www.fico.com/xpress
» Xpress resources (documentation,whitepapers)» http://optimization.fico.com
» Searchable on-line examples database:» http://examples.xpress.fico.com
» Trial download:» http://decisions.fico.com/downloadTrial.html
![Page 97: Design choices for optimization applicationsD)Design Choices fo… · » formulate model and develop optimization methods using Mosel language / environment » BCL » build up model](https://reader034.fdocuments.us/reader034/viewer/2022042315/5f03ebe47e708231d40b6dd9/html5/thumbnails/97.jpg)
The material in this presentation is the property of Fair Issac Corporation, is provided for the recipient only, andshall not be used, reproduced, or disclosed without Fair Isaac Corporation’s express consent.
c©2010 Fair Issac Corporation.
www.fico.com/xpress