Xpress-Kalis - CP 2013

Post on 10-Feb-2017

218 views 0 download

transcript

www.artelys.com !"#$%&'%()*%#+,!-#

Xpress-Kalis A CP Solver integrated in the FICO Xpress Optimization Suite Alexandre Marié, Sylvain Mouret, Susanne Heipcke

© 2011 Fair Isaac Corporation. Confidential. 1 © 2011 Fair Isaac Corporation. Confidential. 1

Profile The leader in predictive analytics for decision management Founded: 1956 NYSE: FICO Revenues: $676 million (fiscal 2012)

Products and Services

Scores and related analytic models Analytic applications for risk management, fraud, marketing, mobility Tools for decision management

Clients and Markets

5,000+ clients in 80 countries Industry focus: Banking, insurance, retail, health care

Recent Rankings

#1 in services operations analytics (IDC) #6 in worldwide analytics analytics software (IDC) #7 in Business Intelligence, CPM and Analytic Applications (Gartner) #26 in the FinTech 100 (American Banker)

Offices

20+ offices worldwide, HQ in San Jose, California, USA 2,400 employees Regional Hubs: San Rafael (CA); San Diego (CA); New York; Roseville, MN; London; Birmingham (UK); Istanbul; Madrid; Munich; Sao Paulo; Bangalore; Beijing; and Singapore.

FICO Snapshot

© 2011 Fair Isaac Corporation. Confidential. 2 © 2013 Fair Isaac Corporation. Confidential. 2

FICO Product Portfolio For Specific Decision Processes

Marketing Origination Customer Management

Collections and Recovery

Fraud Management Mobile

Applications

FICO® Customer Dialogue Manager

FICO® Analytic Offer Manager

FICO® Origination Manager

FICO® TRIAD®

Customer Manager

FICO® Debt Manager

FICO® Recovery Management

System

FICO® Falcon® Fraud Manager

FICO® Insurance Fraud Manager FICO® Claims

Fraud Manager

FICO® Adeptra® Fraud Resolution FICO® Adeptra® Risk Intervention

Manager

Custom / Embedded Analytics

Targeting Models

Time-to-Event Analytics

Consumer and Small

Business Risk Models

Economic Impact Models

Behavior Scorecards Transaction

Analytics

Collections Scores

Consortium Fraud Models Custom Fraud

Models Application Fraud

Models

For Any Decision Process

Scores B2B: FICO® Score FICO® Credit Capacity Index FICO® Insurance Risk Scores B2C: myFICO®

Tools Business Rules Management: FICO® Blaze Advisor® Predictive Analytics: FICO® Model Builder FICO® Model Central Optimization: FICO® Xpress Optimization Suite FICO® Decision Optimizer

Professional Services

Custom Analytics Operational Best Practices Strategy Design and Optimization

!"#$%&'%()*%#+,!-# .&*%//01234/5#6#78#/93:%*#4;'%<*2'%=#4;#'>%#?@7A#.&*%//#A&B(4C2B9;#$D4'%# +#

XPRESS-KALIS

More than a CP solver!

!"#$%&'%()*%#+,!-# .&*%//01234/5#6#78#/93:%*#4;'%<*2'%=#4;#'>%#?@7A#.&*%//#A&B(4C2B9;#$D4'%# -#

FICO XPRESS OPTIMIZATION SUITE

!"#$%&'(')*+,'-./&'+)*0,'-.1$

23*4)',$&'5637+8*-$9:67)78'5$

;*)('35$

.&*%//0@EF##-.'<3:.'&$=75>:)$?-(73*-,'-.$

.&*%//0@;/4<>'#@++)76:8*-$A'+)*0,'-.$

.&*%//0G9/%3#B*&')7-<$:-&$+3*<3:,,7-<$):-<>:<'$

.&*%//01234/###

! C2/B#2$#

.&*%//0A&B(4C%*#

.&*%//0H9;I4;%2*#

#! I8#! G@8#! J8#! G@J8#! J7J8#! G@J7J8##

! J8#! J7J8#! $A78#! HI8###

;7,+)'D$E+8,7F'3$

G:337'3$E+8,7F'3$

B#2$E+8,7F'3$

!"#$%&'%()*%#+,!-# .&*%//01234/5#6#78#/93:%*#4;'%<*2'%=#4;#'>%#?@7A#.&*%//#A&B(4C2B9;#$D4'%# K#

" Developed by Artelys since 2001 "   Object-oriented environment to model and solve complex

problems using constraints programming (CP) and mixed-integer programming (MIP) techniques

"   C++ libraries "   Many applications successfully deployed and in use

ARTELYS KALIS (IN A NUTSHELL)

!"#$%&'%()*%#+,!-# .&*%//01234/5#6#78#/93:%*#4;'%<*2'%=#4;#'>%#?@7A#.&*%//#A&B(4C2B9;#$D4'%# L#

EXAMPLE OF APPLICATIONS

!"!#$%&'!"()#*"+!",#M -./0123/4'56744849'740':2;<016849'

M +784=<4742<'56744849'

+>"?@>A,?#)"$'M -./0123/4':2;<016849'M B/8:=':2;<016849'M (<;826<'#/1349'

,#>"C-*#,'M #<:/1.2<'766/273/4'M +784=<4742<'-6744849'

B?+>"'#!CC*?#A!C'M A.<D'./:=<.849&'./=73/4'M ,8E<=7F6849'

"!,G*#H&',!I!A*+C'M "<=D/.J'0<:894'M @.<K1<42L'7::894E<4='

>'G)M!'#>"$!'*@'>--I)A>,)*"C'

!"#$%&'%()*%#+,!-# .&*%//01234/5#6#78#/93:%*#4;'%<*2'%=#4;#'>%#?@7A#.&*%//#A&B(4C2B9;#$D4'%# "#

"   A flexible framework for constraint optimization, result of joint efforts between Artelys and FICO (Xpress Team)

"   Eases the experimentation with alternative model formulations and simulation of different data scenarios: quick prototyping

"   Seamless integration within the FICO Xpress Optimization Suite

XPRESS-KALIS

!"#$%&'%()*%#+,!-# .&*%//01234/5#6#78#/93:%*#4;'%<*2'%=#4;#'>%#?@7A#.&*%//#A&B(4C2B9;#$D4'%# N#

"   A Mosel module: implement and solve CP problems using the Mosel language " D/%*0O*4%;=3P#(9=%34;<#9O#Q9(&3%R#/4'D2B9;/S#;9'#*%/%*:%=#'9#/9TU2*%#/&%Q4234/'/#

" O*9(#O9*(D32B9;#'9#4(&3%(%;'2B9;#4;#2#/>9*'#32&/%#9O#B(%#" /(233#&%*O9*(2;Q%#9:%*>%2=#" D/%#/'2;=2*=#G9/%3#O2Q434B%/#O9*#=2'2#>2;=34;<S#(9=%3#2;23P/4/S#=%)D<<4;<S#V#

" &9//4)434'P#'9#4;'%*2Q'#U4'>#9'>%*#/93:%*/#WA&B(4C%*#2;=#H9;I4;%2*X#" &9//4)434'P#'9#4(&3%(%;'#2=:2;Q%=#/93DB9;#/'*2'%<4%/#2;=#>%D*4/BQ/#

XPRESS-KALIS

!"#$%&'%()*%#+,!-# .&*%//01234/5#6#78#/93:%*#4;'%<*2'%=#4;#'>%#?@7A#.&*%//#A&B(4C2B9;#$D4'%# Y#

XPRESS-KALIS

!"#$%&'()"*&+,&-($"-.'/01""""1$)2&+&3450$%&'()6(-57"89:"1$)2&+&3450$%&'()6'-57";9"!!"#$%&'&()*+,!!!!!<=">"?@A@7@B@7@C@7@#@7@D@7@E@7@F@7@G@7@H@I"!"C.('3/1""""""J=">"8KK;"!"L.M1"""""*N"&++&O4<=7J=9".%"P2*&+"!"Q'3-$+"&11,R/$0")."P$(("4S7O9""!!#+"-"#$%&'&()*+,!!!!"#&)&"%+.3"5TU$"F'&+0,&/57"V;"W'(O7"VXXYK"U))2NZZMMMKR'&+0,&/KP.K'[Z1'0.['"""*4@A@789>\:"*4@E@789>]:"*4@B@7V9>Y:"*4@F@7V9>^:"""*4@A@7]9>V:"*4@D@7]9>_:"*4@G@7]9>`:"*4@#@7^9>8:""""*4@H@7^9>Y:"*4@C@7Y9>]:"*4@F@7Y9>;:"*4@A@7`9>`:""""*4@E@7`9>^:"*4@B@7_9>_:"*4@D@7_9>V:"*4@H@7_9>]:"""*4@C@7\9>^:"*4@G@7\9>8:"*4@#@7;9>;:"*4@H@7;9>\:""!"A((a0,%%$+$/)"*&('$1",/"+.M1""""%.+&((4O",/"J=9!&%%.")//#'#+(4'/,./4S",/"<=9"?*4S7O9I9""!"A((a0,%%$+$/)"*&('$1",/"P.('3/1""""%.+&((4S",/"<=9"&%%.")//#'#+(4'/,./4O",/"J=9"?*4S7O9I9""!"A((a0,%%$+$/)"*&('$1",/"]S]"1b'&+$1"""%.+&((4,",/"XKKV9"0."""""&%%.")//#'#+(4'/,./4S",/"?@A@7@B@7@C@I7"O",/"?8c]d,7Vc]d,7]c]d,I9"?*4S7O9I9"""""""&%%.")//#'#+(4'/,./4S",/"?@#@7@D@7@E@I7"O",/"?8c]d,7Vc]d,7]c]d,I9"?*4S7O9I9""""""&%%.")//#'#+(4'/,./4S",/"?@F@7@G@7@H@I7"O",/"?8c]d,7Vc]d,7]c]d,I9"?*4S7O9I9""""$/0a0."""!"=.(*$")U$"2+.-($3""""1.(P)N>"X""""MU,($"4$0./)+".+#1(.,*%9"0."""""1.(P)c>8"2+,/)61.('),./41.(P)9""""$/0a0.""""M+,)$(/45Q'3-$+".%"1.('),./1N"57"1.(P)9""""M+,)$(/45T,3$"12$/)",/"$/'3$+&),./N"57"R$)2&+&345CefghTATHeQ6THfD597"51$P59""""M+,)$(/45Q'3-$+".%"/.0$1N"57"R$)2&+&345Qe#D=599""

(>#)>NI!C'

M>,>'

A*"C,#>)",C'

C*I()"$##

!"#$%&'%()*%#+,!-# .&*%//01234/5#6#78#/93:%*#4;'%<*2'%=#4;#'>%#?@7A#.&*%//#A&B(4C2B9;#$D4'%# Z#

"   Xpress-IVE: solver-specific features for Xpress-Kalis "  :4/D234C2B9;#9O#78#/%2*Q>#'*%%#"  /%2*Q>#/'2B/BQ/#"  )D43'04;#/Q>%=D34;<#*%&*%/%;'2B9;#U4'>#[2;\#Q>2*'#2;=#*%/9D*Q%#D/2<%#=42<*2(#

"  D/%#/'2;=2*=#@EF#O2Q434B%/#O9*#U9*]4;<#U4'>#(9=%3/S#=%^;4;<#D/%*#<*2&>/S#=%)D<<4;<S#%'Q_#

XPRESS-KALIS

!"#$%&'%()*%#+,!-# .&*%//01234/5#6#78#/93:%*#4;'%<*2'%=#4;#'>%#?@7A#.&*%//#A&B(4C2B9;#$D4'%# !,#

FEATURES

Specialized for your problems…

!"#$%&'%()*%#+,!-# .&*%//01234/5#6#78#/93:%*#4;'%<*2'%=#4;#'>%#?@7A#.&*%//#A&B(4C2B9;#$D4'%# !!#

" Decision Variables " `4/Q*%'%#W/%'#9*#*2;<%#9O#4;'%<%*/X#" 79;B;D9D/#Wa92B;<0&94;'#4;'%*:23X#

" Constraints " I4;%2*#b#H9;34;%2*#

" /D(S#&9U%*S#&*9=DQ'S#=4:4=%S#%R&9;%;B23S#V#" I9<4Q23#

"  W6#9*#cXS#W6#2;=#cXS#W6"cXS#W6decX#" $P()934Q#

" 233f=4g%*%;'S#2)/S#=4/'2;Q%S#%3%(%;'#W!`b+`XS#9QQD**%;Q%S#=4/'*4)D'%S#4(&34%/S#%hD4:S#QPQ3%S#%'Q_#

"  i/%*0=%^;%=#Q9;'*24;'/#

FEATURES OF XPRESS-KALIS

!"#$%&'%()*%#+,!-# .&*%//01234/5#6#78#/93:%*#4;'%<*2'%=#4;#'>%#?@7A#.&*%//#A&B(4C2B9;#$D4'%# !+#

"   Search "  ^;=#9;%#b#233#b#)%/'#W2QQ9*=4;<#'9#/9(%#9&B(4C2B9;#Q*4'%*49;X#/93DB9;W/X#

"  79;^<D*2)3%#&*%0=%^;%=#/'*2'%<4%/#"  $%2*Q>#U4'>#*%/'2*'S#=4Q>9'9(4Q#9)j%QB:%#/%2*Q>S#V#

"  7D/'9(4C2)3%#Q>94Q%#9O#)*2;Q>4;<#/Q>%(%/#"  F;D(%*2B9;#9O#:23D%/S#=9(24;#/&34k;<S#)*2;Q>4;<#9;#=4/jD;QB9;/S#V#

"  i/%*0=%^;%=#/%2*Q>#>%D*4/BQ/#

FEATURES OF XPRESS-KALIS

!"#$%&'%()*%#+,!-# .&*%//01234/5#6#78#/93:%*#4;'%<*2'%=#4;#'>%#?@7A#.&*%//#A&B(4C2B9;#$D4'%# !-#

"   Scheduling "  l4<>03%:%3#(9=%34;<#9)j%Q'/#O9*#/Q>%=D34;<#W'2/]/#b#*%/9D*Q%/X#"  7D(D32B:%#2;=#=4/jD;QB:%S#*%;%U2)3%#b#;9;0*%;%U2)3%#*%/9D*Q%/#Q9;/'*24;'/#

"  $%'D&#B(%/S#*%/9D*Q%#4=3%#B(%/S#*%/9D*Q%#D/2<%#&*9^3%/#"  $Q>%=D34;<#9*4%;'%=#/%2*Q>#&*9Q%//#

"   Example: job-shop scheduling "  $Q>%=D3%#'>%#&*9=DQB9;#9O#2#/%'#9O#j9)/#9;#2#/%'#9O#(2Q>4;%/_#"  F:%*P#j9)#4/#&*9=DQ%=#)P#2#/%hD%;Q%#9O#'2/]/S#%2Q>#9O#'>%/%#'2/]/#4/#&*9Q%//%=#9;#2#=4g%*%;'#(2Q>4;%_#

"  6#(2Q>4;%#&*9Q%//%/#2'#(9/'#9;%#j9)#2'#2#B(%_#

SCHEDULING WITH XPRESS-KALIS

!"#$%&'%()*%#+,!-# .&*%//01234/5#6#78#/93:%*#4;'%<*2'%=#4;#'>%#?@7A#.&*%//#A&B(4C2B9;#$D4'%# !K#

"   Scheduling model "  D/4;<#'2/]/#2;=#D;2*P#*%/9D*Q%#9)j%Q'/#"  =%O2D3'#/Q>%=D34;<#/%2*Q>#

EXAMPLE: JOBSHOP SCHEDULING

0$P(&+&),./1""WeB=">"8KKQW " " " "!"=$)".%"i.-1""fACG">"8KKQf " " " "!"=$)".%"+$1.'+P$1""LD=N"&++&O4WeB=7fACG9".%",/)$R$+"!"L$1.'+P$"'1$".%")&1[1""#hLN"&++&O4WeB=7fACG9".%",/)$R$+"!"#'+&),./1".%")&1[1"""+$1N"&++&O4fACG9".%"P2+$1.'+P$ " "!"L$1.'+P$1"")&1[N"&++&O4WeB=7fACG9".%"P2)&1["!"T&1[1"$/0a0$P(&+&),./1""KKK " " " " "!"H/,),&(,j$")U$"0&)&"!

!"#$%&'%()*%#+,!-# .&*%//01234/5#6#78#/93:%*#4;'%<*2'%=#4;#'>%#?@7A#.&*%//#A&B(4C2B9;#$D4'%# !L#

EXAMPLE: JOBSHOP SCHEDULING

"GeLHkeQN>"1'34i",/"WeB=7"3",/"fACG9"#hL4i739""%.+&((4i",/"WeB=9"R$)$/04)&1[4i7Qf99"l>"GeLHkeQ""!"=$)),/R"'2")U$"+$1.'+P$1"4P&2&P,)O"89""%.+&((43",/"fACG9"""1$)6+$1.'+P$6&))+,-')$14+$14397"mAnH=6hQALJ6LD=ehLCD7"89""!"=$)),/R"'2")U$")&1[1"40'+&),./17"+$1.'+P$"'1$09""%.+&((4i",/"WeB=7"3",/"fACG9"""1$)6)&1[6&))+,-')$14)&1[4i7397"#hL4i7397"+$14LD=4i73999""!"g+$P$0$/P$"P./1)+&,/)1"-$)M$$/")U$")&1[1".%"$*$+O"i.-""%.+&(("4i",/"WeB=7"3",/"8KKQfa89"""1$)1'PP$11.+14)&1[4i7397"?)&1[4i73c89I9""!"=.(*$")U$"2+.-($3"o"2+,/)"1.('),./"",%"P261PU$0'($4R$)3&[$12&/9lpX")U$/"""M+,)$(/45T.)&("P.32($),./"),3$N"57"R$)1.(4R$)3&[$12&/99""$/0a,%"!

!"#$%&'%()*%#+,!-# .&*%//01234/5#6#78#/93:%*#4;'%<*2'%=#4;#'>%#?@7A#.&*%//#A&B(4C2B9;#$D4'%# !"#

"   Xpress-IVE: automated display (Gantt chart, resource diagrams) of results for scheduling problems

EXAMPLE: JOBSHOP SCHEDULING

[2;\#Q>2*'5#`%'243%=#'2/]#4;O9*(2B9;5#

!"#$%&'%()*%#+,!-# .&*%//01234/5#6#78#/93:%*#4;'%<*2'%=#4;#'>%#?@7A#.&*%//#A&B(4C2B9;#$D4'%# !N#

"   Integration of CP and MIP algorithms

MIP/CP INTEGRATION

M @;O%*%;Q%#(%'>9=/#M 79;Q4/%#(9=%334;<#M FR&394'/#39Q23#Q9;/'*24;'#/'*DQ'D*%#

78#

M m%32R2B9;#(%'>9=/#M `D234'P#'>%9*P#M FR&394'/#<39)23#(2'*4R#/'*DQ'D*%#

G@8#

G@8#2;=#78#>2:%#Q9(&3%(%;'2*P#/'*%;<'>/#

!"#$%&'%()*%#+,!-# .&*%//01234/5#6#78#/93:%*#4;'%<*2'%=#4;#'>%#?@7A#.&*%//#A&B(4C2B9;#$D4'%# !Y#

"   Automatic linear relaxations generated by Kalis "  2:2432)3%#O9*#34;%2*#Q9;/'*24;'/S#2330=4g%*%;'S#9QQD**%;Q%S#=4/'*4)D'%S#(4;4(D(b(2R4(D(S#2)/93D'%#:23D%S#=4/'2;Q%S#%3%(%;'S#QPQ3%S#39<4Q23#W4(&34%/S#9*S#2;=S#%hD4:X#

"   Possibility to display and extend the linear relaxations generated by Kalis (or else define your own)

"   Linear relaxations solved by Xpress-Optimizer "   Fully automatic, configurable or even user-defined interaction "   Can be used to solve min max problems found in game theory

MIP/CP INTEGRATION

!"#$%&'%()*%#+,!-# .&*%//01234/5#6#78#/93:%*#4;'%<*2'%=#4;#'>%#?@7A#.&*%//#A&B(4C2B9;#$D4'%# !Z#

APPLICATION EXAMPLE

Nuclear Power Plant Preventive Maintenance Planning

!"#$%&'%()*%#+,!-# .&*%//01234/5#6#78#/93:%*#4;'%<*2'%=#4;#'>%#?@7A#.&*%//#A&B(4C2B9;#$D4'%# +,#

"   Schedule nuclear power plant preventive maintenances "  Y#P%2*#&%*49=#O9*#LY#;DQ3%2*#*%2Q'9*/#

"   Different kinds of maintenance stops: "  F:%*P#P%2*#b#L#P%2*/#b#!,#P%2*/#WLbYb!K#U%%]/X#"  G2R4(D(#=4/'2;Q%#4;#B(%#)%'U%%;#'U9#/'9&/#

"   Subject to cumulative resource constraints: "  $&%Q4^Q#'993#;%%=%=#'9#*%(9:%#2;=#*%&32Q%#'>%#*%2Q'9*#Q9:%*#O9*#!,#P%2*/#(24;'%;2;Q%#

"  l4<>3P#/&%Q4234C%=#(24;'%;2;Q%#9&%*2'9*/#2;=#%;<4;%%*/#2*%#;%%=%=#O9*#'>%/%#Q9(&3%R#9&%*2B9;/#

"   Enough active power plants to satisfy demand

PREVENTIVE MAINTENANCE PLANNING

!"#$%&'%()*%#+,!-# .&*%//01234/5#6#78#/93:%*#4;'%<*2'%=#4;#'>%#?@7A#.&*%//#A&B(4C2B9;#$D4'%# +!#

Scheduling subproblem

PREVENTIVE MAINTENANCE PLANNING

!"#$%&'%()*%#+,!-# .&*%//01234/5#6#78#/93:%*#4;'%<*2'%=#4;#'>%#?@7A#.&*%//#A&B(4C2B9;#$D4'%# ++#

Planning subproblem

PREVENTIVE MAINTENANCE PLANNING

!"#$%&'%()*%#+,!-# .&*%//01234/5#6#78#/93:%*#4;'%<*2'%=#4;#'>%#?@7A#.&*%//#A&B(4C2B9;#$D4'%# +-#

Combined subproblem

PREVENTIVE MAINTENANCE PLANNING

!"#$%&'%()*%#+,!-# .&*%//01234/5#6#78#/93:%*#4;'%<*2'%=#4;#'>%#?@7A#.&*%//#A&B(4C2B9;#$D4'%# +K#

"   Main difficulty: "  8*9=DQB9;#2;=#(24;'%;2;Q%#'2/]/#(D/'#)%#/Q>%=D3%=#9;#2#=243P#)2/4/#

"  8*9=DQB9;#&9U%*#2;=#=%(2;=#=2'2#2*%#'9#)%#=%23'#U4'>#9;#2#(9;'>3P#)2/4/#

"   Need for a problem-specific constraints that links production tasks with production power variables ##n2/]#&*9j%QB9;#Q9;/'*24;'/#

PREVENTIVE MAINTENANCE PLANNING

!"#$%&'%()*%#+,!-# .&*%//01234/5#6#78#/93:%*#4;'%<*2'%=#4;#'>%#?@7A#.&*%//#A&B(4C2B9;#$D4'%# +L#

Task projection constraints

PREVENTIVE MAINTENANCE PLANNING

!"#$%&'%()*%#+,!-# .&*%//01234/5#6#78#/93:%*#4;'%<*2'%=#4;#'>%#?@7A#.&*%//#A&B(4C2B9;#$D4'%# +"#

Solution display in IVE

PREVENTIVE MAINTENANCE PLANNING

!"#$%&'%()*%#+,!-# .&*%//01234/5#6#78#/93:%*#4;'%<*2'%=#4;#'>%#?@7A#.&*%//#A&B(4C2B9;#$D4'%# +N#

ANY QUESTIONS?

Thank you for your attention