SlideShare a Scribd company logo
1 of 33
1
Copyright © 2015 Maximal Software, Inc. All rights reserved
OR Vienna – Sept 2015
Introducing New Release 5.0
of the MPL Modeling System and
the OptiMax Component Library
Presented by
Bjarni Kristjansson
Maximal Software, Inc.
2
Copyright © 2015 Maximal Software, Inc. All rights reserved
New MPL Release 5.0
MPL Modeling System 5.0
• New Directory Structure for MPL
• New Documentation for MPL
• Updates for New Solver Releases
• Reverse Hessian Algorithm for Solving Nonlinear Models
• Check Feasibility for the Solution returned by the Solver
• Support for VS 2012, 2013, Python 3.3, 3.4, Java 8
• Enhancements and additions for MPL OptiMax
• New Callbacks for MPL OptiMax and MPL Callable Library
• New Exception Handlers for MPL OptiMax
• Thread-safe for multi-threaded applications
• New Example Files for MPL OptiMax and Callable Library
3
Copyright © 2015 Maximal Software, Inc. All rights reserved
New Directory Structure for MPL
Mplwin50
• bin
• Win32
• Win64
• docs
• examples
• Models
• Mpllib
• OptiMax
• include
• setup
• Matlab
• Python
MplwinModels
• GlobalModels
• Stochastic
• Tutorial
4
Copyright © 2015 Maximal Software, Inc. All rights reserved
New Documentation for MPL
MPL Documentation provided in 10 separate user-guides published
in 6 different output formats (PDF, Help, Web, ePub, iPad, Kindle)
- Implemented in XML and Python - Pythonified, NOT Unified! 
• MPL for Windows User Guide
• MPL Language Reference
• MPL Option Parameters
• MPL Online Tutorial
• MPL 5.0 Release Notes
• MPL OptiMax Library for Python
• MPL OptiMax Library for CSharp
• MPL OptiMax Library for Visual Basic
• MPL OptiMax Library for COM (VBA)
• MPL Callable Library
5
Copyright © 2015 Maximal Software, Inc. All rights reserved
New Documentation for MPL (Solvers)
Plus 15 different solver guides for each supported solver:
• CPLEX Solver for MPL
• GUROBI Solver for MPL
• XPRESS Solver for MPL
• LINDO Solver for MPL
• SULUM Solver for MPL
• MOSEK Solver for MPL
• XA Solver for MPL
• MOPS Solver for MPL
• FortMP Solver for MPL
• CoinMP Solver for MPL
• GLPK Solver for MPL
• LPSolve Solver for MPL
• CONOPT Solver for MPL
• KNITRO Solver for MPL
• LGO Solver for MPL
6
Copyright © 2015 Maximal Software, Inc. All rights reserved
MPL for Windows 5.0 – New Solver Support
• Cplex 12.6 (LP, MIP, BAR, MIQP)
• Gurobi 6.0 (LP, MIP, BAR, MIQP)
• Xpress 18.0 (LP, MIP, BAR, MIQP)
• Lindo 9.0 (LP, MIP , BAR, MIQP, NLP, MINLP, SP)
• Sulum 4.3 (LP, MIP)
• Mosek 7.1 (LP, MIP, BAR)
• XA 16.0 (LP, MIP)
• CoinMP 1.7 (LP, MIP)
• GLPK 4.52 (LP, MIP, BAR)
• LPSolve 5.5 (LP, MIP)
• Conopt 3.0 (LP, NLP)
• Knitro 9.0 (LP, MIP, NLP, MINLP)
• Ipopt 3.11 (LP, NLP)
• LGO (NLP Global)
7
Copyright © 2015 Maximal Software, Inc. All rights reserved
MPL OptiMax Applications
Phase I - Development
• Model Development Environment
• Formulating the Model
• Connecting to External Data
• Solver Testing and Tuning
Phase II - Deployment
• End-User Applications
• Run-times / Component Libraries
• Embedding Optimization into Application
• Packaging/Distribution
8
Copyright © 2015 Maximal Software, Inc. All rights reserved
Application Programming
• Programming Languages (Procedural)
• Application/User-Interface
• Database Programming
• Most programmers tend to know rather little about
optimization and formulating models
Optimization Modeling
• Modeling Languages (Declarative)
• Optimization Packages
• Most model builders tend to know rather little about
application/GUI and database programming
Programming vs. Optimization Modeling
9
Copyright © 2015 Maximal Software, Inc. All rights reserved
DBDB
ProgramProgram
SolverSolver
ModLangModLang
OptiMaxOptiMax
Application
Optimization
Optimization Component Library
10
Copyright © 2015 Maximal Software, Inc. All rights reserved
New release 5.0 of MPL OptiMax
MPL OptiMax Library
• Multiple new objects, methods, and properties for OptiMax
• Full support for both 32-bit and 64-bit platforms
MPL OptiMax for .Net (CSharp / VB.Net)
MPL OptiMax for Java (JAR files)
MPL OptiMax for Python (PYD files)
MPL Connection for Matlab (MEX files)
• Seamless integration with native data structures - Add()
• Thread-safe for multi-threaded applications
• Exception handling with detailed error messages
• Callback support
11
Copyright © 2015 Maximal Software, Inc. All rights reserved
MPL OptiMax 5.0 for .Net
• Supports both CSharp and Visual Basic
(VS 2008/2010/2012/2013 - 32/64 bit)
• Multiple new objects, methods and properties
• Seamless integration with native .Net data structures
• Array
• ArrayList
• Generic List
• ICollection
• IEnumerable
• Iterators for all collection classes to support foreach loops
• ToString() implementation for all classes
• Thread-safe for multi-threaded applications
• Exception handling with detailed error messages
• Callback support
12
Copyright © 2015 Maximal Software, Inc. All rights reserved
MPL OptiMax 5.0 for Python
• Supports Python 2.6, 2.7, 3.1, 3.2, 3.3, and 3.4
in both 32-bit and 64-bit mode
• Distributed as compiled PYD files for increased speed
• Multiple new objects, methods and properties
• Seamless integration with native python data structures
• Lists, List of Lists
• Tuples, Tuples of Tuples
• Iterators for all collection classes to support for loops
• Implementation of magic methods for all classes
__init__(), __len__(), __iter__(), __getitem__(), __str__()
• Dynamic object attributes for model identifiers
• Thread-safe for multi-threaded applications
• Exception handling with detailed error messages
• Callback support
13
Copyright © 2015 Maximal Software, Inc. All rights reserved
New Callbacks for MPL OptiMax 5.0
Callback support for reporting status and interaction between
the calling application and MPL/solvers
• Message Log Callback
• Request Data Value Callback
• Status Header Callback
• Status Counter Callback
• Status Filename Callback
• Status Memory Used Callback
• Status Algorithm Callback
• Solver Message Log Callback
• Solver LP Iteration Callback
• Solver Presolve Callback
• Solver MIP Node Callback
• Solver MIP Improve Callback
• Solver Terminate Callback
14
Copyright © 2015 Maximal Software, Inc. All rights reserved
New Exception Handlers for MPL OptiMax 5.0
Exception handling with detailed error messages
• CollectionIndexTypeException
• CollectionNotChangedIndexException
• CollectionValidNameIndexException
• CollectionValidRangeIndexException
• MethodArgEnumIndexException
• MethodArgListTypeException
• MethodArgTypeException
• MethodRuntimeException
• ModelResultException
• ModelAddException
• PropertyTypeException (Python)
• PropertyValidRangeIndexException
15
Copyright © 2015 Maximal Software, Inc. All rights reserved
MPL OptiMax 5.0 for Matlab
MPL Matlab MEX interface
• Supports MATLAB in both 32-bit and 64-bit mode
• Utilizes the MPL Callable Library (mpllib.dll)
• Based on the standard interface of MATLAB Optimization
Toolbox
• mpl_initlibrary()
• mpl_linprog()
• mpl_bintprog()
• mpl_mintprog()
• mpl_freelibrary()
• MPL can be kept in memory through the hmpl library handle
• Solver can be specified through the solverName argument
• Solver options can be set through the option list argument
16
Copyright © 2015 Maximal Software, Inc. All rights reserved
MPL Callable Library 5.0
MPL C-API DLL Library:
• Full C-Api library interface with close to 500 functions
• Available in both 32-bit and 64-bit versions
• Utilized by MPL OptiMax Component Libraries
• MPL OptiMax for .Net
• MPL OptiMax for Python
• MPL OptiMax for Matlab
• Supports all functionality of MPL OptiMax from the C language
• Thread-safe for multi-threaded applictions
• Callback Handling
17
Copyright © 2015 Maximal Software, Inc. All rights reserved
Simple MPL OptiMax Example in Python
from mplpy import *
def RunModel(modelName):
modelFile = mpl.HomeDir + modelName + ".mpl"
print("MPL file: " + modelFile)
mod.ReadModel(modelFile)
print("Variables = " + str(mod.Matrix.Variables.Count))
print("Constraints = " + str(mod.Matrix.Constraints.Count))
print("")
print("Solving " + modelName + " with " + mpl.Solver.Name + " solver:")
mod.Solve(mpl.coinmp)
print("")
print(mod.Solution.ResultString)
print("ObjectValue = " + str(mod.Solution.ObjectValue))
for var in mod.Solution.Variables:
print(var.Name + " = " + str(var.Activity))
18
Copyright © 2015 Maximal Software, Inc. All rights reserved
Planning Example in CSharp
OptiMax mpl = new OptiMax();
mpl.UseExceptions = false;
Solver solver = mpl.Solvers.Add("CPLEX");
Model model = mpl.Models.Add("Planning");
string modelFile = mpl.HomeDirectory + modelName + ".mpl";
Console.WriteLine("Reading MPL file: " + modelFile);
ResultType result = model.ReadModel(modelFile);
if (result != ResultType.Success)
{
Console.WriteLine(model.Error.ToString());
}
Console.WriteLine("Solving " + modelName + " with " + solver.Name + " solver");
result = model.Solve(solver);
foreach (Variable var in model.Solution.Nonzeros)
{
Console.WriteLine(var.Name + " " + var.Activity.ToString());
}
Console.WriteLine(model.Solution.ResultString +
" ObjectValue = " + model.Solution.ObjectValue);
Console.WriteLine("Nonzeros = " + model.Solution.Nonzeros.Count.ToString());
19
Copyright © 2015 Maximal Software, Inc. All rights reserved
Portfolio Example - Dynamic Attributes
from mplpy import mpl
from numpy import arange, float32
from matplotlib import pyplot as plot
modelFilename = mpl.HomeDir + "Portfolio.mpl"
result = mpl.model.SolveModel(modelFilename, mpl.cplex)
investVect = mpl.model.Invest
investVect.ZeroTol = 0.001
count = investVect.Nonzeros.Count
investAmount = arange(count, dtype=float32)
stockNames = range(count)
for i, var in enumerate(investVect.Nonzeros):
investAmount[i] = var.Activity
stockNames[i] = investVect.stock.ValueStr
print((stockNames[i] + ":").ljust(8) +
("%1.1f%%" % (investAmount[i] * 100.0)).rjust(6))
20
Copyright © 2015 Maximal Software, Inc. All rights reserved
EFrontier Example - Changing RHS
iterCount = 100
deltaPercent = 0.02
CPLEX_OPTIMAL = 1
targetReturnData = model.TargetReturn
varianceMacro = model.Variance
meetTargetCon = model.MeetTarget
TargetArray = arange(iterCount, dtype=float32)
VarianceArray = arange(iterCount, dtype=float32)
for i in range(iterCount):
target = targetReturnData.Value * (1 + i * deltaPercent)
meetTargetCon.RHSValue = target
model.Solve(mpl.cplex)
print(str(i) + ") " + str(target) + ", " + str(varianceMacro.Value))
if model.Solution.ResultCode == CPLEX_OPTIMAL:
TargetArray[i] = target
VarianceArray[i] = varianceMacro.Value
else:
solCount = i
print(str(solCount + 1) + ") " +
model.Solution.ResultString + " (" +
str(model.Solution.ResultCode) + ")")
break
21
Copyright © 2015 Maximal Software, Inc. All rights reserved
Add Statements - IndexSet / DataVectors
Adding IndexSet:
cutNames = ['w1', 'w2', 'w3', 'w4', 'w5', 'w6', 'w7', 'w8']
model.IndexSets.AddNameSet("cuts", cutNames)
Adding DataVectors:
cutDemand = [500, 400, 300, 450, 350, 200, 800, 200]
model.DataVectors.AddDense("CutDemand[cuts]", cutDemand)
cutsInPattern = ['p1', 'w1', 1,
'p1', 'w8', 1,
'p2', 'w2', 1,
'p2', 'w7', 1,
. . .
'p28', 'w8', 5,
'p29', 'w8', 7]
model.DataVectors.Add("CutsInPattern[patterns, cuts]", cutsInPattern)
22
Copyright © 2015 Maximal Software, Inc. All rights reserved
CutStock Example – Add() Statements
def LoadModel(self, model, cutNames, patternNames, priceSheet,
sheetsAvail, cutDemand, cutsInPattern):
try:
model.IndexSets.AddNameSet("cuts", cutNames)
model.IndexSets.AddNameSet("patterns", patternNames)
model.DataConstants.Add("PriceSheet", priceSheet)
model.DataConstants.Add("SheetsAvail", sheetsAvail)
model.DataVectors.AddDense("CutDemand[cuts]", cutDemand)
model.DataVectors.Add("CutsInPattern[patterns, cuts]",
cutsInPattern)
model.ReadFilePart("Cutstock.mpl", 19);
except Exception as ex:
print(str(ex))
result = model.LastResult
return result
23
Copyright © 2015 Maximal Software, Inc. All rights reserved
CutStock Example – Add() Statements
def LoadModel(self, model, cutNames, patternNames, priceSheet,
sheetsAvail, cutDemand, cutsInPattern):
try:
. . . # previous model index and data Add() statements
model.PlainVariables.Add("SheetsCut", "-> T1")
model.PlainVariables.Add("TotalCost", "-> TC")
model.VariableVectors.Add("PatternCount[patterns]", "-> """)
model.VariableVectors.Add("ExcessCuts[cuts]", "-> X")
model.Objectives.Add("TotalCost", ObjectSense.Minimize)
model.PlainConstraints.Add("TotCost", "TotalCost =
PriceSheet*SheetsCut")
model.PlainConstraints.Add("RawAvail", "SheetsCut < SheetsAvail")
model.PlainConstraints.Add("Sheets",
"SheetsCut = SUM(patterns: PatternCount[patterns])")
model.ConstraintVectors.Add("CutReq[cuts]",
"SUM(patterns: CutsInPattern[patterns, cuts] *
PatternCount[patterns]) =
CutDemand[cuts] + ExcessCuts[cuts]")
except Exception as ex:
print(str(ex))
result = model.LastResult
return result
24
Copyright © 2015 Maximal Software, Inc. All rights reserved
Exceptions with Detailed Syntax Error Messages
Syntax Error:
model.PlainConstraints.Add("TotCost", "TotalCost = PriceSheet */ SheetsCut")
Exception Output:
The PlainConstraints.Add('TotCost', expr='TotalCost = PriceSheet */ SheetsCut') method
returned 'SyntaxError' (2) with the following error message:
**** A minor mistake was found in line 1:
6. I expected to see either a number or a variable, but found instead '/'.
File: C:MplWin4OptiMaxPythonCutStock
Line: (line=1, col=43)
SUBJECT TO TotCost: TotalCost = PriceSheet */ SheetsCut;
^
25
Copyright © 2015 Maximal Software, Inc. All rights reserved
Exceptions with Wrong Data Types
Syntax Error:
cutNames = ['w1', 'w2', 'w3', 'w4', 'w5', 'w6', 'w7', 'w8']
model.DataConstants.Add("SheetsAvail", cutNames)
Exception Output:
The argument 'dataValue' for the 'DataConstants.Add('SheetsAvail', dataValue, dataAttr)' method
cannot be assigned the value '['w1', 'w2', 'w3', 'w4', 'w5', 'w6', 'w7', 'w8']' of type 'list'.
Quick fix: Please enter either a numeric or string value.
26
Copyright © 2015 Maximal Software, Inc. All rights reserved 26
Server-Based Optimization
Optimization is well-suited for running on Servers
• Well-defined input (model) and output (solution)
• Optimization algorithms require serious computing power
• Robust standards-based programming libraries
• Easy deployment in multiple locations
• Easier to update / maintain the model
• Hardware can be easily upgraded
• CPU / Memory
• Less overall cost
The old IT model of a single person, running a single
application on a single machine is going away fast
27
Copyright © 2015 Maximal Software, Inc. All rights reserved
MPL OptiMax on Optimization Servers
Full support for multi-threaded applications
• Optimization Servers
• Web Services (REST / SOAP)
• Web API’s
• Mobile / Tablet Applications
Support for server-side application frameworks
• ASP.Net
• Python
28
Copyright © 2015 Maximal Software, Inc. All rights reserved
Google Web API Toolkits
• Google Drive (Google Apps)
• Google Spreadsheets API
• Full control of visibility and who can update
• Built-in Javascript
• Support SQL types of queries
• Google Query API
• Google Visualization API
• Bar charts, Pie charts, Line charts and many more
• Very customizable
• Data Tables and Data Views
• Google Maps API
• Add markers, Polylines and Info Windows
29
Copyright © 2015 Maximal Software, Inc. All rights reserved
Google Visualization API – Portfolio Opt.
30
Copyright © 2015 Maximal Software, Inc. All rights reserved
Google Maps API - Shortest Path Optimization
31
Copyright © 2015 Maximal Software, Inc. All rights reserved
Applications with MPL OptiMax
• Model written in MPL
• Data transferred to/from MPL through
• Excel Ranges
• Database Connection
• Text files
• End-User Application Building
• User-Interface done in VB/CSharp/C/C++/Java/Python
• Process Input from User
• Control Solver Runs
• Process Output from Model
• Display graphs
• Model solved with any supported solver
No limits on size, speed, or robustness
32
Copyright © 2015 Maximal Software, Inc. All rights reserved
Free Development Copies of MPL
Maximal Software offers several new special free
and subscription programs for MPL:
• Free Development Copies of MPL
• Free MPL Software for Academics
• Pay Maintenance Only
• Subscription-based Pricing
• Free Open-source Solvers
• Affordable Runtime / Floating Licenses
• Free Model Conversion to MPL
• To apply, please go to and fill out the application form:
www.maximalsoftware.com/FreeDev
33
Copyright © 2015 Maximal Software, Inc. All rights reserved
Academic Program from Maximal
Academic Program Highlights
• Free full-size MPL version for Academic Users
• Fully functional time-limited versions of MPL
• Distributed with the full-size open source CoinMP and IPOPT solvers
• Can be used with several other free academic solvers
supported by MPL (CPLEX, GUROBI, XPRESS, SULUM)
• Mainly intended for classroom and research purposes:
Educational Research
Classroom Teaching
Student Projects
• Includes the Stochastic Programming and Nonlinear extensions
• To apply, please go to and fill out the application form:
www.maximalsoftware.com/Academic

More Related Content

What's hot

Apache NiFi + Tensorflow + Hadoop: Big Data AI サンドイッチの作り方
Apache NiFi + Tensorflow + Hadoop:Big Data AI サンドイッチの作り方Apache NiFi + Tensorflow + Hadoop:Big Data AI サンドイッチの作り方
Apache NiFi + Tensorflow + Hadoop: Big Data AI サンドイッチの作り方HortonworksJapan
 
Hive 3.0 - HDPの最新バージョンで実現する新機能とパフォーマンス改善
Hive 3.0 - HDPの最新バージョンで実現する新機能とパフォーマンス改善Hive 3.0 - HDPの最新バージョンで実現する新機能とパフォーマンス改善
Hive 3.0 - HDPの最新バージョンで実現する新機能とパフォーマンス改善HortonworksJapan
 
SparkR best practices for R data scientist
SparkR best practices for R data scientistSparkR best practices for R data scientist
SparkR best practices for R data scientistDataWorks Summit
 
Meet HBase 2.0 and Phoenix-5.0
Meet HBase 2.0 and Phoenix-5.0Meet HBase 2.0 and Phoenix-5.0
Meet HBase 2.0 and Phoenix-5.0DataWorks Summit
 
The First Mile - Edge and IoT Data Collection With Apache Nifi and MiniFi
The First Mile - Edge and IoT Data Collection With Apache Nifi and MiniFiThe First Mile - Edge and IoT Data Collection With Apache Nifi and MiniFi
The First Mile - Edge and IoT Data Collection With Apache Nifi and MiniFiDataWorks Summit
 
TensorFlow meetup: Keras - Pytorch - TensorFlow.js
TensorFlow meetup: Keras - Pytorch - TensorFlow.jsTensorFlow meetup: Keras - Pytorch - TensorFlow.js
TensorFlow meetup: Keras - Pytorch - TensorFlow.jsStijn Decubber
 
Best practices and lessons learnt from Running Apache NiFi at Renault
Best practices and lessons learnt from Running Apache NiFi at RenaultBest practices and lessons learnt from Running Apache NiFi at Renault
Best practices and lessons learnt from Running Apache NiFi at RenaultDataWorks Summit
 
Apache Spark 2.3 boosts advanced analytics and deep learning with Python
Apache Spark 2.3 boosts advanced analytics and deep learning with PythonApache Spark 2.3 boosts advanced analytics and deep learning with Python
Apache Spark 2.3 boosts advanced analytics and deep learning with PythonDataWorks Summit
 
Forget Duplicating Local Changes: Apache NiFi and the Flow Development Lifecy...
Forget Duplicating Local Changes: Apache NiFi and the Flow Development Lifecy...Forget Duplicating Local Changes: Apache NiFi and the Flow Development Lifecy...
Forget Duplicating Local Changes: Apache NiFi and the Flow Development Lifecy...DataWorks Summit
 
Using Spark Streaming and NiFi for the next generation of ETL in the enterprise
Using Spark Streaming and NiFi for the next generation of ETL in the enterpriseUsing Spark Streaming and NiFi for the next generation of ETL in the enterprise
Using Spark Streaming and NiFi for the next generation of ETL in the enterpriseDataWorks Summit
 
Meet HBase 2.0 and Phoenix 5.0
Meet HBase 2.0 and Phoenix 5.0Meet HBase 2.0 and Phoenix 5.0
Meet HBase 2.0 and Phoenix 5.0DataWorks Summit
 
Dataflow Management From Edge to Core with Apache NiFi
Dataflow Management From Edge to Core with Apache NiFiDataflow Management From Edge to Core with Apache NiFi
Dataflow Management From Edge to Core with Apache NiFiDataWorks Summit
 
BigDataSpain 2016: Stream Processing Applications with Apache Apex
BigDataSpain 2016: Stream Processing Applications with Apache ApexBigDataSpain 2016: Stream Processing Applications with Apache Apex
BigDataSpain 2016: Stream Processing Applications with Apache ApexThomas Weise
 

What's hot (14)

Apache NiFi + Tensorflow + Hadoop: Big Data AI サンドイッチの作り方
Apache NiFi + Tensorflow + Hadoop:Big Data AI サンドイッチの作り方Apache NiFi + Tensorflow + Hadoop:Big Data AI サンドイッチの作り方
Apache NiFi + Tensorflow + Hadoop: Big Data AI サンドイッチの作り方
 
Hive 3.0 - HDPの最新バージョンで実現する新機能とパフォーマンス改善
Hive 3.0 - HDPの最新バージョンで実現する新機能とパフォーマンス改善Hive 3.0 - HDPの最新バージョンで実現する新機能とパフォーマンス改善
Hive 3.0 - HDPの最新バージョンで実現する新機能とパフォーマンス改善
 
SparkR best practices for R data scientist
SparkR best practices for R data scientistSparkR best practices for R data scientist
SparkR best practices for R data scientist
 
Meet HBase 2.0 and Phoenix-5.0
Meet HBase 2.0 and Phoenix-5.0Meet HBase 2.0 and Phoenix-5.0
Meet HBase 2.0 and Phoenix-5.0
 
The First Mile - Edge and IoT Data Collection With Apache Nifi and MiniFi
The First Mile - Edge and IoT Data Collection With Apache Nifi and MiniFiThe First Mile - Edge and IoT Data Collection With Apache Nifi and MiniFi
The First Mile - Edge and IoT Data Collection With Apache Nifi and MiniFi
 
TensorFlow meetup: Keras - Pytorch - TensorFlow.js
TensorFlow meetup: Keras - Pytorch - TensorFlow.jsTensorFlow meetup: Keras - Pytorch - TensorFlow.js
TensorFlow meetup: Keras - Pytorch - TensorFlow.js
 
Apache Nifi Crash Course
Apache Nifi Crash CourseApache Nifi Crash Course
Apache Nifi Crash Course
 
Best practices and lessons learnt from Running Apache NiFi at Renault
Best practices and lessons learnt from Running Apache NiFi at RenaultBest practices and lessons learnt from Running Apache NiFi at Renault
Best practices and lessons learnt from Running Apache NiFi at Renault
 
Apache Spark 2.3 boosts advanced analytics and deep learning with Python
Apache Spark 2.3 boosts advanced analytics and deep learning with PythonApache Spark 2.3 boosts advanced analytics and deep learning with Python
Apache Spark 2.3 boosts advanced analytics and deep learning with Python
 
Forget Duplicating Local Changes: Apache NiFi and the Flow Development Lifecy...
Forget Duplicating Local Changes: Apache NiFi and the Flow Development Lifecy...Forget Duplicating Local Changes: Apache NiFi and the Flow Development Lifecy...
Forget Duplicating Local Changes: Apache NiFi and the Flow Development Lifecy...
 
Using Spark Streaming and NiFi for the next generation of ETL in the enterprise
Using Spark Streaming and NiFi for the next generation of ETL in the enterpriseUsing Spark Streaming and NiFi for the next generation of ETL in the enterprise
Using Spark Streaming and NiFi for the next generation of ETL in the enterprise
 
Meet HBase 2.0 and Phoenix 5.0
Meet HBase 2.0 and Phoenix 5.0Meet HBase 2.0 and Phoenix 5.0
Meet HBase 2.0 and Phoenix 5.0
 
Dataflow Management From Edge to Core with Apache NiFi
Dataflow Management From Edge to Core with Apache NiFiDataflow Management From Edge to Core with Apache NiFi
Dataflow Management From Edge to Core with Apache NiFi
 
BigDataSpain 2016: Stream Processing Applications with Apache Apex
BigDataSpain 2016: Stream Processing Applications with Apache ApexBigDataSpain 2016: Stream Processing Applications with Apache Apex
BigDataSpain 2016: Stream Processing Applications with Apache Apex
 

Similar to New Release 5.0 of MPL and OptiMax Library - OR Vienna 2015

Maximal: Deploying Optimization Models on Servers and Mobile Platforms - Oct ...
Maximal: Deploying Optimization Models on Servers and Mobile Platforms - Oct ...Maximal: Deploying Optimization Models on Servers and Mobile Platforms - Oct ...
Maximal: Deploying Optimization Models on Servers and Mobile Platforms - Oct ...Bjarni Kristjánsson
 
PyMADlib - A Python wrapper for MADlib : in-database, parallel, machine learn...
PyMADlib - A Python wrapper for MADlib : in-database, parallel, machine learn...PyMADlib - A Python wrapper for MADlib : in-database, parallel, machine learn...
PyMADlib - A Python wrapper for MADlib : in-database, parallel, machine learn...Srivatsan Ramanujam
 
Suneel Marthi – BigPetStore Flink: A Comprehensive Blueprint for Apache Flink
Suneel Marthi – BigPetStore Flink: A Comprehensive Blueprint for Apache FlinkSuneel Marthi – BigPetStore Flink: A Comprehensive Blueprint for Apache Flink
Suneel Marthi – BigPetStore Flink: A Comprehensive Blueprint for Apache FlinkFlink Forward
 
My sql5.7 whatsnew_presentedatgids2015
My sql5.7 whatsnew_presentedatgids2015My sql5.7 whatsnew_presentedatgids2015
My sql5.7 whatsnew_presentedatgids2015Sanjay Manwani
 
Seminar: CoinMP - Open Source Solver - Nov 2011
Seminar: CoinMP - Open Source Solver - Nov 2011Seminar: CoinMP - Open Source Solver - Nov 2011
Seminar: CoinMP - Open Source Solver - Nov 2011Bjarni Kristjánsson
 
Getting started with OpenERP
Getting started with OpenERPGetting started with OpenERP
Getting started with OpenERPAbeer AlSayed
 
Jfokus 2019-dowling-logical-clocks
Jfokus 2019-dowling-logical-clocksJfokus 2019-dowling-logical-clocks
Jfokus 2019-dowling-logical-clocksJim Dowling
 
Deep learning beyond the learning - Jörg Schad - Codemotion Rome 2018
Deep learning beyond the learning - Jörg Schad - Codemotion Rome 2018 Deep learning beyond the learning - Jörg Schad - Codemotion Rome 2018
Deep learning beyond the learning - Jörg Schad - Codemotion Rome 2018 Codemotion
 
Toward Hybrid Cloud Serverless Transparency with Lithops Framework
Toward Hybrid Cloud Serverless Transparency with Lithops FrameworkToward Hybrid Cloud Serverless Transparency with Lithops Framework
Toward Hybrid Cloud Serverless Transparency with Lithops FrameworkLibbySchulze
 
Seminar: New Pricing Programs and Free Software Offers by Maximal - Oct 2012
Seminar: New Pricing Programs and Free Software Offers by Maximal - Oct 2012Seminar: New Pricing Programs and Free Software Offers by Maximal - Oct 2012
Seminar: New Pricing Programs and Free Software Offers by Maximal - Oct 2012Bjarni Kristjánsson
 
Webinar gravado: Programando Microcontroladores ARM da Microchip usando MPLAB...
Webinar gravado: Programando Microcontroladores ARM da Microchip usando MPLAB...Webinar gravado: Programando Microcontroladores ARM da Microchip usando MPLAB...
Webinar gravado: Programando Microcontroladores ARM da Microchip usando MPLAB...Embarcados
 
Diagnose Your Microservices
Diagnose Your MicroservicesDiagnose Your Microservices
Diagnose Your MicroservicesMarcus Hirt
 
Software AG Application Modularity - OSGi and JPMS (Jigsaw)
Software AG Application Modularity - OSGi and JPMS (Jigsaw)Software AG Application Modularity - OSGi and JPMS (Jigsaw)
Software AG Application Modularity - OSGi and JPMS (Jigsaw)mfrancis
 
PCM18 (Big Data Analytics)
PCM18 (Big Data Analytics)PCM18 (Big Data Analytics)
PCM18 (Big Data Analytics)Stratebi
 
SigOpt at MLconf - Reducing Operational Barriers to Model Training
SigOpt at MLconf - Reducing Operational Barriers to Model TrainingSigOpt at MLconf - Reducing Operational Barriers to Model Training
SigOpt at MLconf - Reducing Operational Barriers to Model TrainingSigOpt
 
Alexandra johnson reducing operational barriers to model training
Alexandra johnson   reducing operational barriers to model trainingAlexandra johnson   reducing operational barriers to model training
Alexandra johnson reducing operational barriers to model trainingMLconf
 
OpenPOWER Acceleration of HPCC Systems
OpenPOWER Acceleration of HPCC SystemsOpenPOWER Acceleration of HPCC Systems
OpenPOWER Acceleration of HPCC SystemsHPCC Systems
 
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket KnifePolyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket KnifeSeveralnines
 
Data collection in AWS at Schibsted
Data collection in AWS at SchibstedData collection in AWS at Schibsted
Data collection in AWS at SchibstedLars Marius Garshol
 

Similar to New Release 5.0 of MPL and OptiMax Library - OR Vienna 2015 (20)

Maximal: Deploying Optimization Models on Servers and Mobile Platforms - Oct ...
Maximal: Deploying Optimization Models on Servers and Mobile Platforms - Oct ...Maximal: Deploying Optimization Models on Servers and Mobile Platforms - Oct ...
Maximal: Deploying Optimization Models on Servers and Mobile Platforms - Oct ...
 
PyMADlib - A Python wrapper for MADlib : in-database, parallel, machine learn...
PyMADlib - A Python wrapper for MADlib : in-database, parallel, machine learn...PyMADlib - A Python wrapper for MADlib : in-database, parallel, machine learn...
PyMADlib - A Python wrapper for MADlib : in-database, parallel, machine learn...
 
Suneel Marthi – BigPetStore Flink: A Comprehensive Blueprint for Apache Flink
Suneel Marthi – BigPetStore Flink: A Comprehensive Blueprint for Apache FlinkSuneel Marthi – BigPetStore Flink: A Comprehensive Blueprint for Apache Flink
Suneel Marthi – BigPetStore Flink: A Comprehensive Blueprint for Apache Flink
 
My sql5.7 whatsnew_presentedatgids2015
My sql5.7 whatsnew_presentedatgids2015My sql5.7 whatsnew_presentedatgids2015
My sql5.7 whatsnew_presentedatgids2015
 
Seminar: CoinMP - Open Source Solver - Nov 2011
Seminar: CoinMP - Open Source Solver - Nov 2011Seminar: CoinMP - Open Source Solver - Nov 2011
Seminar: CoinMP - Open Source Solver - Nov 2011
 
Getting started with OpenERP
Getting started with OpenERPGetting started with OpenERP
Getting started with OpenERP
 
Jfokus 2019-dowling-logical-clocks
Jfokus 2019-dowling-logical-clocksJfokus 2019-dowling-logical-clocks
Jfokus 2019-dowling-logical-clocks
 
Deep learning beyond the learning - Jörg Schad - Codemotion Rome 2018
Deep learning beyond the learning - Jörg Schad - Codemotion Rome 2018 Deep learning beyond the learning - Jörg Schad - Codemotion Rome 2018
Deep learning beyond the learning - Jörg Schad - Codemotion Rome 2018
 
Toward Hybrid Cloud Serverless Transparency with Lithops Framework
Toward Hybrid Cloud Serverless Transparency with Lithops FrameworkToward Hybrid Cloud Serverless Transparency with Lithops Framework
Toward Hybrid Cloud Serverless Transparency with Lithops Framework
 
Seminar: New Pricing Programs and Free Software Offers by Maximal - Oct 2012
Seminar: New Pricing Programs and Free Software Offers by Maximal - Oct 2012Seminar: New Pricing Programs and Free Software Offers by Maximal - Oct 2012
Seminar: New Pricing Programs and Free Software Offers by Maximal - Oct 2012
 
Webinar gravado: Programando Microcontroladores ARM da Microchip usando MPLAB...
Webinar gravado: Programando Microcontroladores ARM da Microchip usando MPLAB...Webinar gravado: Programando Microcontroladores ARM da Microchip usando MPLAB...
Webinar gravado: Programando Microcontroladores ARM da Microchip usando MPLAB...
 
Diagnose Your Microservices
Diagnose Your MicroservicesDiagnose Your Microservices
Diagnose Your Microservices
 
Knime &amp; bioinformatics
Knime &amp; bioinformaticsKnime &amp; bioinformatics
Knime &amp; bioinformatics
 
Software AG Application Modularity - OSGi and JPMS (Jigsaw)
Software AG Application Modularity - OSGi and JPMS (Jigsaw)Software AG Application Modularity - OSGi and JPMS (Jigsaw)
Software AG Application Modularity - OSGi and JPMS (Jigsaw)
 
PCM18 (Big Data Analytics)
PCM18 (Big Data Analytics)PCM18 (Big Data Analytics)
PCM18 (Big Data Analytics)
 
SigOpt at MLconf - Reducing Operational Barriers to Model Training
SigOpt at MLconf - Reducing Operational Barriers to Model TrainingSigOpt at MLconf - Reducing Operational Barriers to Model Training
SigOpt at MLconf - Reducing Operational Barriers to Model Training
 
Alexandra johnson reducing operational barriers to model training
Alexandra johnson   reducing operational barriers to model trainingAlexandra johnson   reducing operational barriers to model training
Alexandra johnson reducing operational barriers to model training
 
OpenPOWER Acceleration of HPCC Systems
OpenPOWER Acceleration of HPCC SystemsOpenPOWER Acceleration of HPCC Systems
OpenPOWER Acceleration of HPCC Systems
 
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket KnifePolyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
 
Data collection in AWS at Schibsted
Data collection in AWS at SchibstedData collection in AWS at Schibsted
Data collection in AWS at Schibsted
 

More from Bjarni Kristjánsson

Maximal: Achieving Optimal Solution Performance for your Optimization Modelin...
Maximal: Achieving Optimal Solution Performance for your Optimization Modelin...Maximal: Achieving Optimal Solution Performance for your Optimization Modelin...
Maximal: Achieving Optimal Solution Performance for your Optimization Modelin...Bjarni Kristjánsson
 
Maximal: Comparison of Optimization Modeling Software for Python - Oct 2012
Maximal: Comparison of Optimization Modeling Software for Python - Oct 2012Maximal: Comparison of Optimization Modeling Software for Python - Oct 2012
Maximal: Comparison of Optimization Modeling Software for Python - Oct 2012Bjarni Kristjánsson
 
Seminar: New Stochastic Programming Features for MPL - Nov 2011
Seminar: New Stochastic Programming Features for MPL - Nov 2011Seminar: New Stochastic Programming Features for MPL - Nov 2011
Seminar: New Stochastic Programming Features for MPL - Nov 2011Bjarni Kristjánsson
 
Seminar: Data Modeling for Optimization with MPL - Oct 2012
Seminar: Data Modeling for Optimization with MPL - Oct 2012Seminar: Data Modeling for Optimization with MPL - Oct 2012
Seminar: Data Modeling for Optimization with MPL - Oct 2012Bjarni Kristjánsson
 
OR Connect: A New Web 2.0 Online Initiative for O.R. - INFORMS Jan 2011
OR Connect: A New Web 2.0 Online Initiative for O.R. - INFORMS Jan 2011OR Connect: A New Web 2.0 Online Initiative for O.R. - INFORMS Jan 2011
OR Connect: A New Web 2.0 Online Initiative for O.R. - INFORMS Jan 2011Bjarni Kristjánsson
 
INFORMS: IT Board Report - April 2011
INFORMS: IT Board Report - April 2011INFORMS: IT Board Report - April 2011
INFORMS: IT Board Report - April 2011Bjarni Kristjánsson
 
INFORMS: IT Committee Report - August 2011
INFORMS: IT Committee Report - August 2011INFORMS: IT Committee Report - August 2011
INFORMS: IT Committee Report - August 2011Bjarni Kristjánsson
 

More from Bjarni Kristjánsson (7)

Maximal: Achieving Optimal Solution Performance for your Optimization Modelin...
Maximal: Achieving Optimal Solution Performance for your Optimization Modelin...Maximal: Achieving Optimal Solution Performance for your Optimization Modelin...
Maximal: Achieving Optimal Solution Performance for your Optimization Modelin...
 
Maximal: Comparison of Optimization Modeling Software for Python - Oct 2012
Maximal: Comparison of Optimization Modeling Software for Python - Oct 2012Maximal: Comparison of Optimization Modeling Software for Python - Oct 2012
Maximal: Comparison of Optimization Modeling Software for Python - Oct 2012
 
Seminar: New Stochastic Programming Features for MPL - Nov 2011
Seminar: New Stochastic Programming Features for MPL - Nov 2011Seminar: New Stochastic Programming Features for MPL - Nov 2011
Seminar: New Stochastic Programming Features for MPL - Nov 2011
 
Seminar: Data Modeling for Optimization with MPL - Oct 2012
Seminar: Data Modeling for Optimization with MPL - Oct 2012Seminar: Data Modeling for Optimization with MPL - Oct 2012
Seminar: Data Modeling for Optimization with MPL - Oct 2012
 
OR Connect: A New Web 2.0 Online Initiative for O.R. - INFORMS Jan 2011
OR Connect: A New Web 2.0 Online Initiative for O.R. - INFORMS Jan 2011OR Connect: A New Web 2.0 Online Initiative for O.R. - INFORMS Jan 2011
OR Connect: A New Web 2.0 Online Initiative for O.R. - INFORMS Jan 2011
 
INFORMS: IT Board Report - April 2011
INFORMS: IT Board Report - April 2011INFORMS: IT Board Report - April 2011
INFORMS: IT Board Report - April 2011
 
INFORMS: IT Committee Report - August 2011
INFORMS: IT Committee Report - August 2011INFORMS: IT Committee Report - August 2011
INFORMS: IT Committee Report - August 2011
 

Recently uploaded

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfryanfarris8
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 

Recently uploaded (20)

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 

New Release 5.0 of MPL and OptiMax Library - OR Vienna 2015

  • 1. 1 Copyright © 2015 Maximal Software, Inc. All rights reserved OR Vienna – Sept 2015 Introducing New Release 5.0 of the MPL Modeling System and the OptiMax Component Library Presented by Bjarni Kristjansson Maximal Software, Inc.
  • 2. 2 Copyright © 2015 Maximal Software, Inc. All rights reserved New MPL Release 5.0 MPL Modeling System 5.0 • New Directory Structure for MPL • New Documentation for MPL • Updates for New Solver Releases • Reverse Hessian Algorithm for Solving Nonlinear Models • Check Feasibility for the Solution returned by the Solver • Support for VS 2012, 2013, Python 3.3, 3.4, Java 8 • Enhancements and additions for MPL OptiMax • New Callbacks for MPL OptiMax and MPL Callable Library • New Exception Handlers for MPL OptiMax • Thread-safe for multi-threaded applications • New Example Files for MPL OptiMax and Callable Library
  • 3. 3 Copyright © 2015 Maximal Software, Inc. All rights reserved New Directory Structure for MPL Mplwin50 • bin • Win32 • Win64 • docs • examples • Models • Mpllib • OptiMax • include • setup • Matlab • Python MplwinModels • GlobalModels • Stochastic • Tutorial
  • 4. 4 Copyright © 2015 Maximal Software, Inc. All rights reserved New Documentation for MPL MPL Documentation provided in 10 separate user-guides published in 6 different output formats (PDF, Help, Web, ePub, iPad, Kindle) - Implemented in XML and Python - Pythonified, NOT Unified!  • MPL for Windows User Guide • MPL Language Reference • MPL Option Parameters • MPL Online Tutorial • MPL 5.0 Release Notes • MPL OptiMax Library for Python • MPL OptiMax Library for CSharp • MPL OptiMax Library for Visual Basic • MPL OptiMax Library for COM (VBA) • MPL Callable Library
  • 5. 5 Copyright © 2015 Maximal Software, Inc. All rights reserved New Documentation for MPL (Solvers) Plus 15 different solver guides for each supported solver: • CPLEX Solver for MPL • GUROBI Solver for MPL • XPRESS Solver for MPL • LINDO Solver for MPL • SULUM Solver for MPL • MOSEK Solver for MPL • XA Solver for MPL • MOPS Solver for MPL • FortMP Solver for MPL • CoinMP Solver for MPL • GLPK Solver for MPL • LPSolve Solver for MPL • CONOPT Solver for MPL • KNITRO Solver for MPL • LGO Solver for MPL
  • 6. 6 Copyright © 2015 Maximal Software, Inc. All rights reserved MPL for Windows 5.0 – New Solver Support • Cplex 12.6 (LP, MIP, BAR, MIQP) • Gurobi 6.0 (LP, MIP, BAR, MIQP) • Xpress 18.0 (LP, MIP, BAR, MIQP) • Lindo 9.0 (LP, MIP , BAR, MIQP, NLP, MINLP, SP) • Sulum 4.3 (LP, MIP) • Mosek 7.1 (LP, MIP, BAR) • XA 16.0 (LP, MIP) • CoinMP 1.7 (LP, MIP) • GLPK 4.52 (LP, MIP, BAR) • LPSolve 5.5 (LP, MIP) • Conopt 3.0 (LP, NLP) • Knitro 9.0 (LP, MIP, NLP, MINLP) • Ipopt 3.11 (LP, NLP) • LGO (NLP Global)
  • 7. 7 Copyright © 2015 Maximal Software, Inc. All rights reserved MPL OptiMax Applications Phase I - Development • Model Development Environment • Formulating the Model • Connecting to External Data • Solver Testing and Tuning Phase II - Deployment • End-User Applications • Run-times / Component Libraries • Embedding Optimization into Application • Packaging/Distribution
  • 8. 8 Copyright © 2015 Maximal Software, Inc. All rights reserved Application Programming • Programming Languages (Procedural) • Application/User-Interface • Database Programming • Most programmers tend to know rather little about optimization and formulating models Optimization Modeling • Modeling Languages (Declarative) • Optimization Packages • Most model builders tend to know rather little about application/GUI and database programming Programming vs. Optimization Modeling
  • 9. 9 Copyright © 2015 Maximal Software, Inc. All rights reserved DBDB ProgramProgram SolverSolver ModLangModLang OptiMaxOptiMax Application Optimization Optimization Component Library
  • 10. 10 Copyright © 2015 Maximal Software, Inc. All rights reserved New release 5.0 of MPL OptiMax MPL OptiMax Library • Multiple new objects, methods, and properties for OptiMax • Full support for both 32-bit and 64-bit platforms MPL OptiMax for .Net (CSharp / VB.Net) MPL OptiMax for Java (JAR files) MPL OptiMax for Python (PYD files) MPL Connection for Matlab (MEX files) • Seamless integration with native data structures - Add() • Thread-safe for multi-threaded applications • Exception handling with detailed error messages • Callback support
  • 11. 11 Copyright © 2015 Maximal Software, Inc. All rights reserved MPL OptiMax 5.0 for .Net • Supports both CSharp and Visual Basic (VS 2008/2010/2012/2013 - 32/64 bit) • Multiple new objects, methods and properties • Seamless integration with native .Net data structures • Array • ArrayList • Generic List • ICollection • IEnumerable • Iterators for all collection classes to support foreach loops • ToString() implementation for all classes • Thread-safe for multi-threaded applications • Exception handling with detailed error messages • Callback support
  • 12. 12 Copyright © 2015 Maximal Software, Inc. All rights reserved MPL OptiMax 5.0 for Python • Supports Python 2.6, 2.7, 3.1, 3.2, 3.3, and 3.4 in both 32-bit and 64-bit mode • Distributed as compiled PYD files for increased speed • Multiple new objects, methods and properties • Seamless integration with native python data structures • Lists, List of Lists • Tuples, Tuples of Tuples • Iterators for all collection classes to support for loops • Implementation of magic methods for all classes __init__(), __len__(), __iter__(), __getitem__(), __str__() • Dynamic object attributes for model identifiers • Thread-safe for multi-threaded applications • Exception handling with detailed error messages • Callback support
  • 13. 13 Copyright © 2015 Maximal Software, Inc. All rights reserved New Callbacks for MPL OptiMax 5.0 Callback support for reporting status and interaction between the calling application and MPL/solvers • Message Log Callback • Request Data Value Callback • Status Header Callback • Status Counter Callback • Status Filename Callback • Status Memory Used Callback • Status Algorithm Callback • Solver Message Log Callback • Solver LP Iteration Callback • Solver Presolve Callback • Solver MIP Node Callback • Solver MIP Improve Callback • Solver Terminate Callback
  • 14. 14 Copyright © 2015 Maximal Software, Inc. All rights reserved New Exception Handlers for MPL OptiMax 5.0 Exception handling with detailed error messages • CollectionIndexTypeException • CollectionNotChangedIndexException • CollectionValidNameIndexException • CollectionValidRangeIndexException • MethodArgEnumIndexException • MethodArgListTypeException • MethodArgTypeException • MethodRuntimeException • ModelResultException • ModelAddException • PropertyTypeException (Python) • PropertyValidRangeIndexException
  • 15. 15 Copyright © 2015 Maximal Software, Inc. All rights reserved MPL OptiMax 5.0 for Matlab MPL Matlab MEX interface • Supports MATLAB in both 32-bit and 64-bit mode • Utilizes the MPL Callable Library (mpllib.dll) • Based on the standard interface of MATLAB Optimization Toolbox • mpl_initlibrary() • mpl_linprog() • mpl_bintprog() • mpl_mintprog() • mpl_freelibrary() • MPL can be kept in memory through the hmpl library handle • Solver can be specified through the solverName argument • Solver options can be set through the option list argument
  • 16. 16 Copyright © 2015 Maximal Software, Inc. All rights reserved MPL Callable Library 5.0 MPL C-API DLL Library: • Full C-Api library interface with close to 500 functions • Available in both 32-bit and 64-bit versions • Utilized by MPL OptiMax Component Libraries • MPL OptiMax for .Net • MPL OptiMax for Python • MPL OptiMax for Matlab • Supports all functionality of MPL OptiMax from the C language • Thread-safe for multi-threaded applictions • Callback Handling
  • 17. 17 Copyright © 2015 Maximal Software, Inc. All rights reserved Simple MPL OptiMax Example in Python from mplpy import * def RunModel(modelName): modelFile = mpl.HomeDir + modelName + ".mpl" print("MPL file: " + modelFile) mod.ReadModel(modelFile) print("Variables = " + str(mod.Matrix.Variables.Count)) print("Constraints = " + str(mod.Matrix.Constraints.Count)) print("") print("Solving " + modelName + " with " + mpl.Solver.Name + " solver:") mod.Solve(mpl.coinmp) print("") print(mod.Solution.ResultString) print("ObjectValue = " + str(mod.Solution.ObjectValue)) for var in mod.Solution.Variables: print(var.Name + " = " + str(var.Activity))
  • 18. 18 Copyright © 2015 Maximal Software, Inc. All rights reserved Planning Example in CSharp OptiMax mpl = new OptiMax(); mpl.UseExceptions = false; Solver solver = mpl.Solvers.Add("CPLEX"); Model model = mpl.Models.Add("Planning"); string modelFile = mpl.HomeDirectory + modelName + ".mpl"; Console.WriteLine("Reading MPL file: " + modelFile); ResultType result = model.ReadModel(modelFile); if (result != ResultType.Success) { Console.WriteLine(model.Error.ToString()); } Console.WriteLine("Solving " + modelName + " with " + solver.Name + " solver"); result = model.Solve(solver); foreach (Variable var in model.Solution.Nonzeros) { Console.WriteLine(var.Name + " " + var.Activity.ToString()); } Console.WriteLine(model.Solution.ResultString + " ObjectValue = " + model.Solution.ObjectValue); Console.WriteLine("Nonzeros = " + model.Solution.Nonzeros.Count.ToString());
  • 19. 19 Copyright © 2015 Maximal Software, Inc. All rights reserved Portfolio Example - Dynamic Attributes from mplpy import mpl from numpy import arange, float32 from matplotlib import pyplot as plot modelFilename = mpl.HomeDir + "Portfolio.mpl" result = mpl.model.SolveModel(modelFilename, mpl.cplex) investVect = mpl.model.Invest investVect.ZeroTol = 0.001 count = investVect.Nonzeros.Count investAmount = arange(count, dtype=float32) stockNames = range(count) for i, var in enumerate(investVect.Nonzeros): investAmount[i] = var.Activity stockNames[i] = investVect.stock.ValueStr print((stockNames[i] + ":").ljust(8) + ("%1.1f%%" % (investAmount[i] * 100.0)).rjust(6))
  • 20. 20 Copyright © 2015 Maximal Software, Inc. All rights reserved EFrontier Example - Changing RHS iterCount = 100 deltaPercent = 0.02 CPLEX_OPTIMAL = 1 targetReturnData = model.TargetReturn varianceMacro = model.Variance meetTargetCon = model.MeetTarget TargetArray = arange(iterCount, dtype=float32) VarianceArray = arange(iterCount, dtype=float32) for i in range(iterCount): target = targetReturnData.Value * (1 + i * deltaPercent) meetTargetCon.RHSValue = target model.Solve(mpl.cplex) print(str(i) + ") " + str(target) + ", " + str(varianceMacro.Value)) if model.Solution.ResultCode == CPLEX_OPTIMAL: TargetArray[i] = target VarianceArray[i] = varianceMacro.Value else: solCount = i print(str(solCount + 1) + ") " + model.Solution.ResultString + " (" + str(model.Solution.ResultCode) + ")") break
  • 21. 21 Copyright © 2015 Maximal Software, Inc. All rights reserved Add Statements - IndexSet / DataVectors Adding IndexSet: cutNames = ['w1', 'w2', 'w3', 'w4', 'w5', 'w6', 'w7', 'w8'] model.IndexSets.AddNameSet("cuts", cutNames) Adding DataVectors: cutDemand = [500, 400, 300, 450, 350, 200, 800, 200] model.DataVectors.AddDense("CutDemand[cuts]", cutDemand) cutsInPattern = ['p1', 'w1', 1, 'p1', 'w8', 1, 'p2', 'w2', 1, 'p2', 'w7', 1, . . . 'p28', 'w8', 5, 'p29', 'w8', 7] model.DataVectors.Add("CutsInPattern[patterns, cuts]", cutsInPattern)
  • 22. 22 Copyright © 2015 Maximal Software, Inc. All rights reserved CutStock Example – Add() Statements def LoadModel(self, model, cutNames, patternNames, priceSheet, sheetsAvail, cutDemand, cutsInPattern): try: model.IndexSets.AddNameSet("cuts", cutNames) model.IndexSets.AddNameSet("patterns", patternNames) model.DataConstants.Add("PriceSheet", priceSheet) model.DataConstants.Add("SheetsAvail", sheetsAvail) model.DataVectors.AddDense("CutDemand[cuts]", cutDemand) model.DataVectors.Add("CutsInPattern[patterns, cuts]", cutsInPattern) model.ReadFilePart("Cutstock.mpl", 19); except Exception as ex: print(str(ex)) result = model.LastResult return result
  • 23. 23 Copyright © 2015 Maximal Software, Inc. All rights reserved CutStock Example – Add() Statements def LoadModel(self, model, cutNames, patternNames, priceSheet, sheetsAvail, cutDemand, cutsInPattern): try: . . . # previous model index and data Add() statements model.PlainVariables.Add("SheetsCut", "-> T1") model.PlainVariables.Add("TotalCost", "-> TC") model.VariableVectors.Add("PatternCount[patterns]", "-> """) model.VariableVectors.Add("ExcessCuts[cuts]", "-> X") model.Objectives.Add("TotalCost", ObjectSense.Minimize) model.PlainConstraints.Add("TotCost", "TotalCost = PriceSheet*SheetsCut") model.PlainConstraints.Add("RawAvail", "SheetsCut < SheetsAvail") model.PlainConstraints.Add("Sheets", "SheetsCut = SUM(patterns: PatternCount[patterns])") model.ConstraintVectors.Add("CutReq[cuts]", "SUM(patterns: CutsInPattern[patterns, cuts] * PatternCount[patterns]) = CutDemand[cuts] + ExcessCuts[cuts]") except Exception as ex: print(str(ex)) result = model.LastResult return result
  • 24. 24 Copyright © 2015 Maximal Software, Inc. All rights reserved Exceptions with Detailed Syntax Error Messages Syntax Error: model.PlainConstraints.Add("TotCost", "TotalCost = PriceSheet */ SheetsCut") Exception Output: The PlainConstraints.Add('TotCost', expr='TotalCost = PriceSheet */ SheetsCut') method returned 'SyntaxError' (2) with the following error message: **** A minor mistake was found in line 1: 6. I expected to see either a number or a variable, but found instead '/'. File: C:MplWin4OptiMaxPythonCutStock Line: (line=1, col=43) SUBJECT TO TotCost: TotalCost = PriceSheet */ SheetsCut; ^
  • 25. 25 Copyright © 2015 Maximal Software, Inc. All rights reserved Exceptions with Wrong Data Types Syntax Error: cutNames = ['w1', 'w2', 'w3', 'w4', 'w5', 'w6', 'w7', 'w8'] model.DataConstants.Add("SheetsAvail", cutNames) Exception Output: The argument 'dataValue' for the 'DataConstants.Add('SheetsAvail', dataValue, dataAttr)' method cannot be assigned the value '['w1', 'w2', 'w3', 'w4', 'w5', 'w6', 'w7', 'w8']' of type 'list'. Quick fix: Please enter either a numeric or string value.
  • 26. 26 Copyright © 2015 Maximal Software, Inc. All rights reserved 26 Server-Based Optimization Optimization is well-suited for running on Servers • Well-defined input (model) and output (solution) • Optimization algorithms require serious computing power • Robust standards-based programming libraries • Easy deployment in multiple locations • Easier to update / maintain the model • Hardware can be easily upgraded • CPU / Memory • Less overall cost The old IT model of a single person, running a single application on a single machine is going away fast
  • 27. 27 Copyright © 2015 Maximal Software, Inc. All rights reserved MPL OptiMax on Optimization Servers Full support for multi-threaded applications • Optimization Servers • Web Services (REST / SOAP) • Web API’s • Mobile / Tablet Applications Support for server-side application frameworks • ASP.Net • Python
  • 28. 28 Copyright © 2015 Maximal Software, Inc. All rights reserved Google Web API Toolkits • Google Drive (Google Apps) • Google Spreadsheets API • Full control of visibility and who can update • Built-in Javascript • Support SQL types of queries • Google Query API • Google Visualization API • Bar charts, Pie charts, Line charts and many more • Very customizable • Data Tables and Data Views • Google Maps API • Add markers, Polylines and Info Windows
  • 29. 29 Copyright © 2015 Maximal Software, Inc. All rights reserved Google Visualization API – Portfolio Opt.
  • 30. 30 Copyright © 2015 Maximal Software, Inc. All rights reserved Google Maps API - Shortest Path Optimization
  • 31. 31 Copyright © 2015 Maximal Software, Inc. All rights reserved Applications with MPL OptiMax • Model written in MPL • Data transferred to/from MPL through • Excel Ranges • Database Connection • Text files • End-User Application Building • User-Interface done in VB/CSharp/C/C++/Java/Python • Process Input from User • Control Solver Runs • Process Output from Model • Display graphs • Model solved with any supported solver No limits on size, speed, or robustness
  • 32. 32 Copyright © 2015 Maximal Software, Inc. All rights reserved Free Development Copies of MPL Maximal Software offers several new special free and subscription programs for MPL: • Free Development Copies of MPL • Free MPL Software for Academics • Pay Maintenance Only • Subscription-based Pricing • Free Open-source Solvers • Affordable Runtime / Floating Licenses • Free Model Conversion to MPL • To apply, please go to and fill out the application form: www.maximalsoftware.com/FreeDev
  • 33. 33 Copyright © 2015 Maximal Software, Inc. All rights reserved Academic Program from Maximal Academic Program Highlights • Free full-size MPL version for Academic Users • Fully functional time-limited versions of MPL • Distributed with the full-size open source CoinMP and IPOPT solvers • Can be used with several other free academic solvers supported by MPL (CPLEX, GUROBI, XPRESS, SULUM) • Mainly intended for classroom and research purposes: Educational Research Classroom Teaching Student Projects • Includes the Stochastic Programming and Nonlinear extensions • To apply, please go to and fill out the application form: www.maximalsoftware.com/Academic