SlideShare una empresa de Scribd logo
1 de 53
Geoffrey De Smet Drools Planner optimizes automated planning
Agenda ,[object Object]
Use cases ,[object Object],[object Object]
Results
Future
Drools and jBPM Platform Overview
Business Logic Integration Business Logic Integration Platform Rule engine Workflow Complex event processing (CEP) Business Rule Management System (BRMS) Automated planning
Use cases What are planning problems?
 
 
 
 
 
Hard constraint implementation // a nurse can only work one shift per day rule   "oneShiftPerDay" when $left :  EmployeeAssignment ( $employee : employee, $shiftDate : shiftDate, $leftId : id ) $right :  EmployeeAssignment ( employee == $employee , shiftDate == $shiftDate , id > $leftId ) then // Lower the hard score with a weight ... end
 
Soft constraint implementation rule   "dayOffRequest" when $dayOffRequest :  DayOffRequest ( $employee : employee , $shiftDate : shiftDate , $weight : weight ) $employeeAssignment :  EmployeeAssignment ( employee == $employee , shiftDate == $shiftDate ) then // Lower the soft score with the weight $weight ... end Object orientated Readable by domain experts Fast and scalable: Indexes, ReteOO, ... Java methods usable Isolated
Hospital bed planning
Hospital bed planning constraints Hard constraints No 2 patients in same bed in same night Room gender limitation Department minimum or maximum age Patient requires specific room equipment(s) Soft constraints Patient prefers maximum room size Department specialization Room specialization Patient prefers specific room equipment(s)
Needle in a haystack How many possible solutions? 310 beds in 105 rooms in 4 departments 84 nights 2750 patients (admissions) Numbers from a real dataset
Needle in a haystack How many possible solutions? 310 beds in 105 rooms in 4 departments 84 nights 2750 patients (admissions) > humans? 7 000 000 000 humans Source: NASA (wikipedia)
Needle in a haystack How many possible solutions? 310 beds in 105 rooms in 4 departments 84 nights 2750 patients (admissions) > minimum atoms in the observable universe? 10^80 Source: NASA and ESA (wikipedia)
Needle in a haystack How many possible solutions? 310 beds in 105 rooms in 4 departments 84 nights 2750 patients (admissions) > atoms in the universe if every atom is a universe of atoms? (10^80)^80 = 10^6400 Source: NASA and ESA (wikipedia)
Needle in a haystack How many possible solutions? 310 beds in 105 rooms in 4 departments 84 nights 2750 patients (admissions) A little over 10^6851
Do the math 1 patient 310 beds 310 ways to schedule 1 patient 2 patients 310 * 310 = 96 100 3 patients 310 * 310 * 310 = 29 791 000 2750 patients 310 * 310 * ... * 310 310^2750 = a little over 10^6851
A little over 10^6851 17565400009613647714189309909847019528176031676612802408947467896773536824694320 25377105894429532838896584732142182052033826938421876324335318655320329177415624 34019697177044291997231955740197313574392215860109009013187756616189881491857442 89903563474940721372704649669447515706252843900344472960295273324597346780837674 88697227533874455473777198677633776549677388281039595554235192833141437843928340 51328923587442242154997922875864744269141114570273352582691671031946927906652177 66902628732489519488236496931246157419949856522543510386164584826962224171420152 25565850232385350464349705325292272792440640617915932702527496869105242581827012 17106705526418375034351087944819610624220027292887379804041858752339124281780095 58605680683578864680145557998942327371019832139824665975180911386722774004539981 34278552385168663637443267160148549642311093017595330858041676796683206809536596 46569395830894437089458443238882278162963824641222099807169369905394994720275907 38400791514217875461942733015467480308665074008529461146577114465977072581447925 88212290682716057000722801705649967418814850790871678616492253646749058716362694 56894529270615321506374546152336416456127910274106084164763806424690851439804640 67453971429400369608313929289399595696359958354101721624055729520838609453039985 59272628937624385694142906376790391997713872443251360270344814604597056658507680 95764769840369232215532708782795742398666571567290512950859701002128560257873450 34666683590797377984104207041334053480226788236770435009014979334517769826461063 28117889455452701285996652060625309878869936718080636701237289582496335799276496 97991233610444564616874109815224930933169104649370892996558804470140748763978122 10684054337706530175130912335567383560436635091489083375525519539844805718811296 85807650768511219249940528633766810704609502399987122465510787717422067936021241 05730014911043812216621387647568988345883813404108921585448372002290085339308167 94663631470201197595487045022087615873490295940409113638894083753062801416644858
A little over 10^6851 70757942487218045035508810158461046502812782292385633846174494690914238485407798 37976573852840248463244968564240141089763763217269495446550923090738150172870668 68402081731644263484686141346509306107283418762923467113106773326485539514229919 89751468506508069513397904821612697383659788320905691994864296149528670873271380 18006650770249052559419638332728972636228024127885657959189574420249964658137384 98299648678707389648424263725804209284739296524664530660893065815727451390562561 81505240205578741292314133858985615181677968313683876880079649763914095651402272 04777610845144506688836696844897279181666903094579081039689572524839918882203466 75664835223276850061950801785251074912552450542389767056205475823297598574505575 83834141364747838395082871684183199560673441708538602779816347949276957201268066 62737283137076807355893467941027682428304918329951886951690865417997171855081020 26756284570976172802328890960381286165431282000890478132235199027141966946398442 73986565523012106816309974964021700560537928432528631741787455155275823033005847 63710721074772137206636934675415209083984961138990816735390734923436827652228741 07306375553429574524282669680025732278499336914490634182865013110363140489605282 49465982665132492491072491788618403253474529440348798670244615185355092357283764 93638760707623418191667075526942154653033728468983877312232305317179427144435853 36388068489698718841685828476130163980130066330161405037431756112554842734192914 35502775849577615159921009571496639402549077872124227731739936370100132762333353 47390808021571900433548715701062002052376364885669272869945947160341077659253581 65207459958613365778774312937767961242646970494187951860105460569752264242274554 46011031581123438684685838655333776830823720356749120051129394691394743488410658 61354353779545576065515784960221442891508405618131446589507592449826384604047449 56226545521579338675725427458383708893912437023584592443865610814799055455700844 91443709439642235090455604548030317754849613813010298858282615659336373785985294
A little over 10^6851 58667337266411706925088329158776619790296442059252886388879455197093987039774900 08729398961010317200010000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000
A little over 10^6851 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000 The search space is big! Compare with WWW size 22 020 000 000 pages Each possible solution 2750 patients scheduled into 310 beds Still need to calculate the score!  => Drools Expert
Brute force? Throw hardware at it? ,[object Object]
Algorithms Operations research is fun.
N Queens: use case ,[object Object]
No 2 queens can attack each other ,[object Object],Score = -2 Score = 0
Brute force algorithm Useless with a real world n
A huge performance gain because of Drools Expert Critical for ALL of your constraints! No extra code thanks to Drools Expert
Branch and bound algorithm Useless with a real world n
Useful algorithms ,[object Object]
Easy to implement ,[object Object],[object Object],[object Object],[object Object]
More time = better score
Greedy algorithm First fit
Greedy algorithm First fit decreasing Human planner are worse than this algorithm and take more time. (*) (*) with a real world n
Metaheuristics: Move things around ,[object Object]
Give 2 queens each others rows
... Score = -6 Score = -4
Local search 1/2
Local search 2/2 ,[object Object]
Local optima ,[object Object]
2)  Simple local search
3) Stuck in local optimum! Source: Wikipedia Score function
Local search++ Don't get stuck in local optima ,[object Object]
Great deluge, late acceptance, …
Hyper heuristics
Termination ,[object Object]
Score attained

Más contenido relacionado

La actualidad más candente

Drools and jBPM 6 Overview
Drools and jBPM 6 OverviewDrools and jBPM 6 Overview
Drools and jBPM 6 OverviewMark Proctor
 
Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)Mark Proctor
 
JUDCon London 2011 - Bin packing with drools planner by example
JUDCon London 2011 - Bin packing with drools planner by exampleJUDCon London 2011 - Bin packing with drools planner by example
JUDCon London 2011 - Bin packing with drools planner by exampleGeoffrey De Smet
 
Rule Engine & Drools
Rule Engine & DroolsRule Engine & Drools
Rule Engine & DroolsSandip Jadhav
 
Battle Of The Microservice Frameworks: Micronaut versus Quarkus edition!
Battle Of The Microservice Frameworks: Micronaut versus Quarkus edition! Battle Of The Microservice Frameworks: Micronaut versus Quarkus edition!
Battle Of The Microservice Frameworks: Micronaut versus Quarkus edition! Michel Schudel
 
Integrating Alfresco with MS Dynamics
Integrating Alfresco with MS DynamicsIntegrating Alfresco with MS Dynamics
Integrating Alfresco with MS DynamicsZia Consulting
 
Tweaking the interactive grid
Tweaking the interactive gridTweaking the interactive grid
Tweaking the interactive gridRoel Hartman
 
Drools Expert and Fusion Intro : London 2012
Drools Expert and Fusion Intro  : London 2012Drools Expert and Fusion Intro  : London 2012
Drools Expert and Fusion Intro : London 2012Mark Proctor
 
Rule Engine: Drools .Net
Rule Engine: Drools .NetRule Engine: Drools .Net
Rule Engine: Drools .NetGuo Albert
 
Introduction to Drools
Introduction to DroolsIntroduction to Drools
Introduction to Droolsgiurca
 
Oracle Drivers configuration for High Availability, is it a developer's job?
Oracle Drivers configuration for High Availability, is it a developer's job?Oracle Drivers configuration for High Availability, is it a developer's job?
Oracle Drivers configuration for High Availability, is it a developer's job?Ludovico Caldara
 
Oracle Database on ACFS: a perfect marriage?
Oracle Database on ACFS: a perfect marriage?Oracle Database on ACFS: a perfect marriage?
Oracle Database on ACFS: a perfect marriage?Ludovico Caldara
 
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...Sandesh Rao
 
How to tune Kafka® for production
How to tune Kafka® for productionHow to tune Kafka® for production
How to tune Kafka® for productionconfluent
 
Reactive Relational Database Connectivity
Reactive Relational Database ConnectivityReactive Relational Database Connectivity
Reactive Relational Database ConnectivityVMware Tanzu
 
Kafka error handling patterns and best practices | Hemant Desale and Aruna Ka...
Kafka error handling patterns and best practices | Hemant Desale and Aruna Ka...Kafka error handling patterns and best practices | Hemant Desale and Aruna Ka...
Kafka error handling patterns and best practices | Hemant Desale and Aruna Ka...HostedbyConfluent
 
Low latency in java 8 v5
Low latency in java 8 v5Low latency in java 8 v5
Low latency in java 8 v5Peter Lawrey
 
Streaming using Kafka Flink & Elasticsearch
Streaming using Kafka Flink & ElasticsearchStreaming using Kafka Flink & Elasticsearch
Streaming using Kafka Flink & ElasticsearchKeira Zhou
 
New Approaches for Fraud Detection on Apache Kafka and KSQL
New Approaches for Fraud Detection on Apache Kafka and KSQLNew Approaches for Fraud Detection on Apache Kafka and KSQL
New Approaches for Fraud Detection on Apache Kafka and KSQLconfluent
 

La actualidad más candente (20)

Drools and jBPM 6 Overview
Drools and jBPM 6 OverviewDrools and jBPM 6 Overview
Drools and jBPM 6 Overview
 
Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)
 
JUDCon London 2011 - Bin packing with drools planner by example
JUDCon London 2011 - Bin packing with drools planner by exampleJUDCon London 2011 - Bin packing with drools planner by example
JUDCon London 2011 - Bin packing with drools planner by example
 
Rule Engine & Drools
Rule Engine & DroolsRule Engine & Drools
Rule Engine & Drools
 
Battle Of The Microservice Frameworks: Micronaut versus Quarkus edition!
Battle Of The Microservice Frameworks: Micronaut versus Quarkus edition! Battle Of The Microservice Frameworks: Micronaut versus Quarkus edition!
Battle Of The Microservice Frameworks: Micronaut versus Quarkus edition!
 
Integrating Alfresco with MS Dynamics
Integrating Alfresco with MS DynamicsIntegrating Alfresco with MS Dynamics
Integrating Alfresco with MS Dynamics
 
Tweaking the interactive grid
Tweaking the interactive gridTweaking the interactive grid
Tweaking the interactive grid
 
Drools Expert and Fusion Intro : London 2012
Drools Expert and Fusion Intro  : London 2012Drools Expert and Fusion Intro  : London 2012
Drools Expert and Fusion Intro : London 2012
 
Rule Engine: Drools .Net
Rule Engine: Drools .NetRule Engine: Drools .Net
Rule Engine: Drools .Net
 
Introduction to Drools
Introduction to DroolsIntroduction to Drools
Introduction to Drools
 
Oracle Drivers configuration for High Availability, is it a developer's job?
Oracle Drivers configuration for High Availability, is it a developer's job?Oracle Drivers configuration for High Availability, is it a developer's job?
Oracle Drivers configuration for High Availability, is it a developer's job?
 
Oracle Database on ACFS: a perfect marriage?
Oracle Database on ACFS: a perfect marriage?Oracle Database on ACFS: a perfect marriage?
Oracle Database on ACFS: a perfect marriage?
 
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...
Oracle Real Application Clusters 19c- Best Practices and Internals- EMEA Tour...
 
How to tune Kafka® for production
How to tune Kafka® for productionHow to tune Kafka® for production
How to tune Kafka® for production
 
Reactive Relational Database Connectivity
Reactive Relational Database ConnectivityReactive Relational Database Connectivity
Reactive Relational Database Connectivity
 
Introducing Kogito
Introducing KogitoIntroducing Kogito
Introducing Kogito
 
Kafka error handling patterns and best practices | Hemant Desale and Aruna Ka...
Kafka error handling patterns and best practices | Hemant Desale and Aruna Ka...Kafka error handling patterns and best practices | Hemant Desale and Aruna Ka...
Kafka error handling patterns and best practices | Hemant Desale and Aruna Ka...
 
Low latency in java 8 v5
Low latency in java 8 v5Low latency in java 8 v5
Low latency in java 8 v5
 
Streaming using Kafka Flink & Elasticsearch
Streaming using Kafka Flink & ElasticsearchStreaming using Kafka Flink & Elasticsearch
Streaming using Kafka Flink & Elasticsearch
 
New Approaches for Fraud Detection on Apache Kafka and KSQL
New Approaches for Fraud Detection on Apache Kafka and KSQLNew Approaches for Fraud Detection on Apache Kafka and KSQL
New Approaches for Fraud Detection on Apache Kafka and KSQL
 

Similar a Drools Planner webinar (2011-06-15): Drools Planner optimizes automated planning

2011-03-09 London - Drools Planner in a nutshell
2011-03-09 London - Drools Planner in a nutshell2011-03-09 London - Drools Planner in a nutshell
2011-03-09 London - Drools Planner in a nutshellGeoffrey De Smet
 
Pushing the rule engine to its limits with drools planner (parisjug 2010-11-09)
Pushing the rule engine to its limits with drools planner (parisjug 2010-11-09)Pushing the rule engine to its limits with drools planner (parisjug 2010-11-09)
Pushing the rule engine to its limits with drools planner (parisjug 2010-11-09)Geoffrey De Smet
 
2010 04-20 san diego bootcamp - drools planner - use cases
2010 04-20 san diego bootcamp - drools planner - use cases2010 04-20 san diego bootcamp - drools planner - use cases
2010 04-20 san diego bootcamp - drools planner - use casesGeoffrey De Smet
 
ED conference presentation 2007
ED conference presentation 2007ED conference presentation 2007
ED conference presentation 2007Alexander Kolker
 
Drools Planner Chtijug 2010
Drools Planner Chtijug 2010Drools Planner Chtijug 2010
Drools Planner Chtijug 2010Nicolas Heron
 
Robots, Small Molecules & R
Robots, Small Molecules & RRobots, Small Molecules & R
Robots, Small Molecules & RRajarshi Guha
 
Respiratory Staffing
Respiratory StaffingRespiratory Staffing
Respiratory StaffingAdam Ross
 
Monte Carlo Simulation
Monte Carlo SimulationMonte Carlo Simulation
Monte Carlo SimulationDeepti Singh
 
8 5 Scientific Notation
8 5 Scientific Notation8 5 Scientific Notation
8 5 Scientific Notationtaco40
 
Estimation, Approximation and Standard form
Estimation, Approximation and Standard formEstimation, Approximation and Standard form
Estimation, Approximation and Standard formNsomp
 
딥러닝 기초 - XOR 문제와 딥뉴럴넷(Basic of DL - XOR problem and DNN)
딥러닝 기초 - XOR 문제와 딥뉴럴넷(Basic of DL - XOR problem and DNN)딥러닝 기초 - XOR 문제와 딥뉴럴넷(Basic of DL - XOR problem and DNN)
딥러닝 기초 - XOR 문제와 딥뉴럴넷(Basic of DL - XOR problem and DNN)Hansol Kang
 
Wearable Accelerometer Optimal Positions for Human Motion Recognition(LifeTec...
Wearable Accelerometer Optimal Positions for Human Motion Recognition(LifeTec...Wearable Accelerometer Optimal Positions for Human Motion Recognition(LifeTec...
Wearable Accelerometer Optimal Positions for Human Motion Recognition(LifeTec...sugiuralab
 
Multiple intelligences approach to Number Systems
Multiple intelligences approach to  Number SystemsMultiple intelligences approach to  Number Systems
Multiple intelligences approach to Number SystemsKatrin Becker
 
6.2 Jamie Zeitzer
6.2 Jamie Zeitzer6.2 Jamie Zeitzer
6.2 Jamie Zeitzermomentumbrn
 
22. distribucion normal estandar a
22. distribucion normal estandar a22. distribucion normal estandar a
22. distribucion normal estandar aLuis Miguel
 
7 qc toools LEARN and KNOW how to BUILD IN EXCEL
7 qc toools LEARN and KNOW how to BUILD IN EXCEL7 qc toools LEARN and KNOW how to BUILD IN EXCEL
7 qc toools LEARN and KNOW how to BUILD IN EXCELrajesh1655
 
Test suite minimization
Test suite minimizationTest suite minimization
Test suite minimizationGaurav Saxena
 
Balking and Reneging in the Queuing System
Balking and Reneging in the Queuing SystemBalking and Reneging in the Queuing System
Balking and Reneging in the Queuing SystemIOSR Journals
 

Similar a Drools Planner webinar (2011-06-15): Drools Planner optimizes automated planning (20)

2011-03-09 London - Drools Planner in a nutshell
2011-03-09 London - Drools Planner in a nutshell2011-03-09 London - Drools Planner in a nutshell
2011-03-09 London - Drools Planner in a nutshell
 
Pushing the rule engine to its limits with drools planner (parisjug 2010-11-09)
Pushing the rule engine to its limits with drools planner (parisjug 2010-11-09)Pushing the rule engine to its limits with drools planner (parisjug 2010-11-09)
Pushing the rule engine to its limits with drools planner (parisjug 2010-11-09)
 
2010 04-20 san diego bootcamp - drools planner - use cases
2010 04-20 san diego bootcamp - drools planner - use cases2010 04-20 san diego bootcamp - drools planner - use cases
2010 04-20 san diego bootcamp - drools planner - use cases
 
ED conference presentation 2007
ED conference presentation 2007ED conference presentation 2007
ED conference presentation 2007
 
Drools Planner Chtijug 2010
Drools Planner Chtijug 2010Drools Planner Chtijug 2010
Drools Planner Chtijug 2010
 
Robots, Small Molecules & R
Robots, Small Molecules & RRobots, Small Molecules & R
Robots, Small Molecules & R
 
Respiratory Staffing
Respiratory StaffingRespiratory Staffing
Respiratory Staffing
 
Monte Carlo Simulation
Monte Carlo SimulationMonte Carlo Simulation
Monte Carlo Simulation
 
8 5 Scientific Notation
8 5 Scientific Notation8 5 Scientific Notation
8 5 Scientific Notation
 
Estimation, Approximation and Standard form
Estimation, Approximation and Standard formEstimation, Approximation and Standard form
Estimation, Approximation and Standard form
 
딥러닝 기초 - XOR 문제와 딥뉴럴넷(Basic of DL - XOR problem and DNN)
딥러닝 기초 - XOR 문제와 딥뉴럴넷(Basic of DL - XOR problem and DNN)딥러닝 기초 - XOR 문제와 딥뉴럴넷(Basic of DL - XOR problem and DNN)
딥러닝 기초 - XOR 문제와 딥뉴럴넷(Basic of DL - XOR problem and DNN)
 
Wearable Accelerometer Optimal Positions for Human Motion Recognition(LifeTec...
Wearable Accelerometer Optimal Positions for Human Motion Recognition(LifeTec...Wearable Accelerometer Optimal Positions for Human Motion Recognition(LifeTec...
Wearable Accelerometer Optimal Positions for Human Motion Recognition(LifeTec...
 
Multiple intelligences approach to Number Systems
Multiple intelligences approach to  Number SystemsMultiple intelligences approach to  Number Systems
Multiple intelligences approach to Number Systems
 
6.2 Jamie Zeitzer
6.2 Jamie Zeitzer6.2 Jamie Zeitzer
6.2 Jamie Zeitzer
 
22. distribucion normal estandar a
22. distribucion normal estandar a22. distribucion normal estandar a
22. distribucion normal estandar a
 
7 qc toools LEARN and KNOW how to BUILD IN EXCEL
7 qc toools LEARN and KNOW how to BUILD IN EXCEL7 qc toools LEARN and KNOW how to BUILD IN EXCEL
7 qc toools LEARN and KNOW how to BUILD IN EXCEL
 
09
0909
09
 
Test suite minimization
Test suite minimizationTest suite minimization
Test suite minimization
 
Measurement_and_Units.pptx
Measurement_and_Units.pptxMeasurement_and_Units.pptx
Measurement_and_Units.pptx
 
Balking and Reneging in the Queuing System
Balking and Reneging in the Queuing SystemBalking and Reneging in the Queuing System
Balking and Reneging in the Queuing System
 

Más de Geoffrey De Smet

Drools planner - 2012-10-23 IntelliFest 2012
Drools planner - 2012-10-23 IntelliFest 2012Drools planner - 2012-10-23 IntelliFest 2012
Drools planner - 2012-10-23 IntelliFest 2012Geoffrey De Smet
 
What is Drools, Guvnor and Planner? 2012 02-17 Brno Dev Conference
What is Drools, Guvnor and Planner? 2012 02-17 Brno Dev ConferenceWhat is Drools, Guvnor and Planner? 2012 02-17 Brno Dev Conference
What is Drools, Guvnor and Planner? 2012 02-17 Brno Dev ConferenceGeoffrey De Smet
 
2012 02-04 fosdem 2012 - drools planner
2012 02-04 fosdem 2012 - drools planner2012 02-04 fosdem 2012 - drools planner
2012 02-04 fosdem 2012 - drools plannerGeoffrey De Smet
 
Applying CEP Drools Fusion - Drools jBPM Bootcamps 2011
Applying CEP Drools Fusion - Drools jBPM Bootcamps 2011Applying CEP Drools Fusion - Drools jBPM Bootcamps 2011
Applying CEP Drools Fusion - Drools jBPM Bootcamps 2011Geoffrey De Smet
 
Drools New York City workshop 2011
Drools New York City workshop 2011Drools New York City workshop 2011
Drools New York City workshop 2011Geoffrey De Smet
 
2011-03-29 London - drools
2011-03-29 London - drools2011-03-29 London - drools
2011-03-29 London - droolsGeoffrey De Smet
 
2011-03-29 London - Decision tables in depth (Michael Anstis)
2011-03-29 London - Decision tables in depth (Michael Anstis)2011-03-29 London - Decision tables in depth (Michael Anstis)
2011-03-29 London - Decision tables in depth (Michael Anstis)Geoffrey De Smet
 
2011-03-29 London - Why do I need the guvnor BRMS?
2011-03-29 London - Why do I need the guvnor BRMS?2011-03-29 London - Why do I need the guvnor BRMS?
2011-03-29 London - Why do I need the guvnor BRMS?Geoffrey De Smet
 
2011-03-24 IDC - Adaptive and flexible processes (Mark Proctor)
2011-03-24 IDC - Adaptive and flexible processes (Mark Proctor)2011-03-24 IDC - Adaptive and flexible processes (Mark Proctor)
2011-03-24 IDC - Adaptive and flexible processes (Mark Proctor)Geoffrey De Smet
 
Open source and business rules
Open source and business rulesOpen source and business rules
Open source and business rulesGeoffrey De Smet
 
Drooling for drools (JBoss webex)
Drooling for drools (JBoss webex)Drooling for drools (JBoss webex)
Drooling for drools (JBoss webex)Geoffrey De Smet
 
Developing applications with rules, workflow and event processing (it@cork 2010)
Developing applications with rules, workflow and event processing (it@cork 2010)Developing applications with rules, workflow and event processing (it@cork 2010)
Developing applications with rules, workflow and event processing (it@cork 2010)Geoffrey De Smet
 
Hybrid rule engines (rulesfest 2010)
Hybrid rule engines (rulesfest 2010)Hybrid rule engines (rulesfest 2010)
Hybrid rule engines (rulesfest 2010)Geoffrey De Smet
 
st - demystifying complext event processing
st - demystifying complext event processingst - demystifying complext event processing
st - demystifying complext event processingGeoffrey De Smet
 
jBPM 5 (JUDCon 2010-10-08)
jBPM 5 (JUDCon 2010-10-08)jBPM 5 (JUDCon 2010-10-08)
jBPM 5 (JUDCon 2010-10-08)Geoffrey De Smet
 
Applying complex event processing (2010-10-11)
Applying complex event processing (2010-10-11)Applying complex event processing (2010-10-11)
Applying complex event processing (2010-10-11)Geoffrey De Smet
 
Towards unified knowledge management platform (rulefest 2010)
Towards unified knowledge management platform (rulefest 2010)Towards unified knowledge management platform (rulefest 2010)
Towards unified knowledge management platform (rulefest 2010)Geoffrey De Smet
 

Más de Geoffrey De Smet (19)

Drools planner - 2012-10-23 IntelliFest 2012
Drools planner - 2012-10-23 IntelliFest 2012Drools planner - 2012-10-23 IntelliFest 2012
Drools planner - 2012-10-23 IntelliFest 2012
 
What is Drools, Guvnor and Planner? 2012 02-17 Brno Dev Conference
What is Drools, Guvnor and Planner? 2012 02-17 Brno Dev ConferenceWhat is Drools, Guvnor and Planner? 2012 02-17 Brno Dev Conference
What is Drools, Guvnor and Planner? 2012 02-17 Brno Dev Conference
 
2012 02-04 fosdem 2012 - drools planner
2012 02-04 fosdem 2012 - drools planner2012 02-04 fosdem 2012 - drools planner
2012 02-04 fosdem 2012 - drools planner
 
Applying CEP Drools Fusion - Drools jBPM Bootcamps 2011
Applying CEP Drools Fusion - Drools jBPM Bootcamps 2011Applying CEP Drools Fusion - Drools jBPM Bootcamps 2011
Applying CEP Drools Fusion - Drools jBPM Bootcamps 2011
 
Drools New York City workshop 2011
Drools New York City workshop 2011Drools New York City workshop 2011
Drools New York City workshop 2011
 
JBoss World 2011 - Drools
JBoss World 2011 - DroolsJBoss World 2011 - Drools
JBoss World 2011 - Drools
 
2011-03-29 London - drools
2011-03-29 London - drools2011-03-29 London - drools
2011-03-29 London - drools
 
2011-03-29 London - Decision tables in depth (Michael Anstis)
2011-03-29 London - Decision tables in depth (Michael Anstis)2011-03-29 London - Decision tables in depth (Michael Anstis)
2011-03-29 London - Decision tables in depth (Michael Anstis)
 
2011-03-29 London - Why do I need the guvnor BRMS?
2011-03-29 London - Why do I need the guvnor BRMS?2011-03-29 London - Why do I need the guvnor BRMS?
2011-03-29 London - Why do I need the guvnor BRMS?
 
2011-03-24 IDC - Adaptive and flexible processes (Mark Proctor)
2011-03-24 IDC - Adaptive and flexible processes (Mark Proctor)2011-03-24 IDC - Adaptive and flexible processes (Mark Proctor)
2011-03-24 IDC - Adaptive and flexible processes (Mark Proctor)
 
Open source and business rules
Open source and business rulesOpen source and business rules
Open source and business rules
 
Drooling for drools (JBoss webex)
Drooling for drools (JBoss webex)Drooling for drools (JBoss webex)
Drooling for drools (JBoss webex)
 
Developing applications with rules, workflow and event processing (it@cork 2010)
Developing applications with rules, workflow and event processing (it@cork 2010)Developing applications with rules, workflow and event processing (it@cork 2010)
Developing applications with rules, workflow and event processing (it@cork 2010)
 
Hybrid rule engines (rulesfest 2010)
Hybrid rule engines (rulesfest 2010)Hybrid rule engines (rulesfest 2010)
Hybrid rule engines (rulesfest 2010)
 
st - demystifying complext event processing
st - demystifying complext event processingst - demystifying complext event processing
st - demystifying complext event processing
 
jBPM 5 (JUDCon 2010-10-08)
jBPM 5 (JUDCon 2010-10-08)jBPM 5 (JUDCon 2010-10-08)
jBPM 5 (JUDCon 2010-10-08)
 
Applying complex event processing (2010-10-11)
Applying complex event processing (2010-10-11)Applying complex event processing (2010-10-11)
Applying complex event processing (2010-10-11)
 
Towards unified knowledge management platform (rulefest 2010)
Towards unified knowledge management platform (rulefest 2010)Towards unified knowledge management platform (rulefest 2010)
Towards unified knowledge management platform (rulefest 2010)
 
Drools BeJUG 2010
Drools BeJUG 2010Drools BeJUG 2010
Drools BeJUG 2010
 

Último

Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 

Último (20)

Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 

Drools Planner webinar (2011-06-15): Drools Planner optimizes automated planning

  • 1. Geoffrey De Smet Drools Planner optimizes automated planning
  • 2.
  • 3.
  • 6. Drools and jBPM Platform Overview
  • 7. Business Logic Integration Business Logic Integration Platform Rule engine Workflow Complex event processing (CEP) Business Rule Management System (BRMS) Automated planning
  • 8. Use cases What are planning problems?
  • 9.  
  • 10.  
  • 11.  
  • 12.  
  • 13.  
  • 14. Hard constraint implementation // a nurse can only work one shift per day rule "oneShiftPerDay" when $left : EmployeeAssignment ( $employee : employee, $shiftDate : shiftDate, $leftId : id ) $right : EmployeeAssignment ( employee == $employee , shiftDate == $shiftDate , id > $leftId ) then // Lower the hard score with a weight ... end
  • 15.  
  • 16. Soft constraint implementation rule "dayOffRequest" when $dayOffRequest : DayOffRequest ( $employee : employee , $shiftDate : shiftDate , $weight : weight ) $employeeAssignment : EmployeeAssignment ( employee == $employee , shiftDate == $shiftDate ) then // Lower the soft score with the weight $weight ... end Object orientated Readable by domain experts Fast and scalable: Indexes, ReteOO, ... Java methods usable Isolated
  • 18. Hospital bed planning constraints Hard constraints No 2 patients in same bed in same night Room gender limitation Department minimum or maximum age Patient requires specific room equipment(s) Soft constraints Patient prefers maximum room size Department specialization Room specialization Patient prefers specific room equipment(s)
  • 19. Needle in a haystack How many possible solutions? 310 beds in 105 rooms in 4 departments 84 nights 2750 patients (admissions) Numbers from a real dataset
  • 20. Needle in a haystack How many possible solutions? 310 beds in 105 rooms in 4 departments 84 nights 2750 patients (admissions) > humans? 7 000 000 000 humans Source: NASA (wikipedia)
  • 21. Needle in a haystack How many possible solutions? 310 beds in 105 rooms in 4 departments 84 nights 2750 patients (admissions) > minimum atoms in the observable universe? 10^80 Source: NASA and ESA (wikipedia)
  • 22. Needle in a haystack How many possible solutions? 310 beds in 105 rooms in 4 departments 84 nights 2750 patients (admissions) > atoms in the universe if every atom is a universe of atoms? (10^80)^80 = 10^6400 Source: NASA and ESA (wikipedia)
  • 23. Needle in a haystack How many possible solutions? 310 beds in 105 rooms in 4 departments 84 nights 2750 patients (admissions) A little over 10^6851
  • 24. Do the math 1 patient 310 beds 310 ways to schedule 1 patient 2 patients 310 * 310 = 96 100 3 patients 310 * 310 * 310 = 29 791 000 2750 patients 310 * 310 * ... * 310 310^2750 = a little over 10^6851
  • 25. A little over 10^6851 17565400009613647714189309909847019528176031676612802408947467896773536824694320 25377105894429532838896584732142182052033826938421876324335318655320329177415624 34019697177044291997231955740197313574392215860109009013187756616189881491857442 89903563474940721372704649669447515706252843900344472960295273324597346780837674 88697227533874455473777198677633776549677388281039595554235192833141437843928340 51328923587442242154997922875864744269141114570273352582691671031946927906652177 66902628732489519488236496931246157419949856522543510386164584826962224171420152 25565850232385350464349705325292272792440640617915932702527496869105242581827012 17106705526418375034351087944819610624220027292887379804041858752339124281780095 58605680683578864680145557998942327371019832139824665975180911386722774004539981 34278552385168663637443267160148549642311093017595330858041676796683206809536596 46569395830894437089458443238882278162963824641222099807169369905394994720275907 38400791514217875461942733015467480308665074008529461146577114465977072581447925 88212290682716057000722801705649967418814850790871678616492253646749058716362694 56894529270615321506374546152336416456127910274106084164763806424690851439804640 67453971429400369608313929289399595696359958354101721624055729520838609453039985 59272628937624385694142906376790391997713872443251360270344814604597056658507680 95764769840369232215532708782795742398666571567290512950859701002128560257873450 34666683590797377984104207041334053480226788236770435009014979334517769826461063 28117889455452701285996652060625309878869936718080636701237289582496335799276496 97991233610444564616874109815224930933169104649370892996558804470140748763978122 10684054337706530175130912335567383560436635091489083375525519539844805718811296 85807650768511219249940528633766810704609502399987122465510787717422067936021241 05730014911043812216621387647568988345883813404108921585448372002290085339308167 94663631470201197595487045022087615873490295940409113638894083753062801416644858
  • 26. A little over 10^6851 70757942487218045035508810158461046502812782292385633846174494690914238485407798 37976573852840248463244968564240141089763763217269495446550923090738150172870668 68402081731644263484686141346509306107283418762923467113106773326485539514229919 89751468506508069513397904821612697383659788320905691994864296149528670873271380 18006650770249052559419638332728972636228024127885657959189574420249964658137384 98299648678707389648424263725804209284739296524664530660893065815727451390562561 81505240205578741292314133858985615181677968313683876880079649763914095651402272 04777610845144506688836696844897279181666903094579081039689572524839918882203466 75664835223276850061950801785251074912552450542389767056205475823297598574505575 83834141364747838395082871684183199560673441708538602779816347949276957201268066 62737283137076807355893467941027682428304918329951886951690865417997171855081020 26756284570976172802328890960381286165431282000890478132235199027141966946398442 73986565523012106816309974964021700560537928432528631741787455155275823033005847 63710721074772137206636934675415209083984961138990816735390734923436827652228741 07306375553429574524282669680025732278499336914490634182865013110363140489605282 49465982665132492491072491788618403253474529440348798670244615185355092357283764 93638760707623418191667075526942154653033728468983877312232305317179427144435853 36388068489698718841685828476130163980130066330161405037431756112554842734192914 35502775849577615159921009571496639402549077872124227731739936370100132762333353 47390808021571900433548715701062002052376364885669272869945947160341077659253581 65207459958613365778774312937767961242646970494187951860105460569752264242274554 46011031581123438684685838655333776830823720356749120051129394691394743488410658 61354353779545576065515784960221442891508405618131446589507592449826384604047449 56226545521579338675725427458383708893912437023584592443865610814799055455700844 91443709439642235090455604548030317754849613813010298858282615659336373785985294
  • 27. A little over 10^6851 58667337266411706925088329158776619790296442059252886388879455197093987039774900 08729398961010317200010000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000
  • 28. A little over 10^6851 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000 The search space is big! Compare with WWW size 22 020 000 000 pages Each possible solution 2750 patients scheduled into 310 beds Still need to calculate the score! => Drools Expert
  • 29.
  • 31.
  • 32.
  • 33. Brute force algorithm Useless with a real world n
  • 34. A huge performance gain because of Drools Expert Critical for ALL of your constraints! No extra code thanks to Drools Expert
  • 35. Branch and bound algorithm Useless with a real world n
  • 36.
  • 37.
  • 38. More time = better score
  • 40. Greedy algorithm First fit decreasing Human planner are worse than this algorithm and take more time. (*) (*) with a real world n
  • 41.
  • 42. Give 2 queens each others rows
  • 43. ... Score = -6 Score = -4
  • 45.
  • 46.
  • 47. 2) Simple local search
  • 48. 3) Stuck in local optimum! Source: Wikipedia Score function
  • 49.
  • 50. Great deluge, late acceptance, …
  • 52.
  • 55.
  • 57.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68. Benchmarker class Real output from the Benchmarker class
  • 69. CPU power VS algorithms more CPU power better algorithm Real output from the Benchmarker class
  • 70. Future Simpler, faster and more powerful
  • 72.
  • 74.
  • 76.
  • 77. Adding constraints is easy and scalable
  • 80.
  • 81.