SlideShare a Scribd company logo
Modelling Languages   Monadic Constraint Programming      Benchmarks   Future Work




           Monadic Constraint Programming with Gecode

                      Pieter Wuille           Tom Schrijvers


                                ModRef’09
                        Lisbon, September 20, 2009
Modelling Languages      Monadic Constraint Programming          Benchmarks          Future Work



Modelling languages
   Zinc approach                                   Gecode approach
   Separate language:                              Library for existing language:
          Very declarative                                Boilerplate/function calls
          Transferring data/results                       Directly callable/usable
          Not all language features                       All host-language features
Modelling Languages         Monadic Constraint Programming          Benchmarks          Future Work



Modelling languages
   Zinc approach                                      Gecode approach
   Separate language:                                 Library for existing language:
          Very declarative                                   Boilerplate/function calls
          Transferring data/results                          Directly callable/usable
          Not all language features                          All host-language features




                      MCP approach
                      Best of both worlds:
                          High-level abstractions
                          Very declarative
                          Directly usable
                      + Compositional search transformers
Modelling Languages       Monadic Constraint Programming   Benchmarks         Future Work



MCP Framework

      MCP Framework
         Constraint Solving framework for Haskell
             Multiple solvers, variables, domains, search strategies, . . .
             Fully functional, no side-effects
             Solver states and search trees are first-class data
             Defines common syntactic sugar
Modelling Languages      Monadic Constraint Programming   Benchmarks   Future Work



FD-MCP: FD solving for MCP

      FD-MCP: Common FD Infrastructure
         FD syntax for term and constraint language
             Model optimizations and decompositions
             Multiple solver backends
Modelling Languages   Monadic Constraint Programming   Benchmarks   Future Work



FD-MCP: FD solving for MCP: example



      model :: FDModel
      model =
        exist 4 $ list@[a,b,c,d] ->
          list ‘allin‘ (0,711)                         /
          sorted list                                  /
          a + b + c + d @= 711                         /
          a * b * c * d @= 711*100*100*100             /
          return list

      main = example_main_void model
Modelling Languages      Monadic Constraint Programming   Benchmarks   Future Work



FD-MCP: Solvers




      FD Solvers
          Haskell-only solver
             Pseudo-solver that generates C++ code for Gecode
             new Real solver using Gecode propagation
             new Real solver using Gecode search+propagation
Modelling Languages                      Monadic Constraint Programming            Benchmarks         Future Work



Benchmark: Allinterval


                                                          Benchmark allinterval
                     1000
                                                  C++ Gecode
                                           MCP Generated C++
                      100
                                       MCP using Gecode prop
                                 MCP using Gecode prop+search
                       10                        MCP Haskell

                        1
         time (s)




                       0.1

                      0.01

                     0.001

                    0.0001

                    1e-05
                             2          4          6            8          10     12        14   16
                                                                problem size
Modelling Languages                        Monadic Constraint Programming               Benchmarks             Future Work



Benchmark: Partition


                                                             Benchmark partition
                     1000
                                                  C++ Gecode
                                           MCP Generated C++
                      100              MCP using Gecode prop
                                 MCP using Gecode prop+search
                                                 MCP Haskell
                       10


                        1
         time (s)




                       0.1


                      0.01


                     0.001


                    0.0001
                             4         6          8        10        12            14    16          18   20
                                                                problem size
Modelling Languages        Monadic Constraint Programming   Benchmarks   Future Work



Future Work



      Future work
          More benchmarks
             Improve performance of MCP using Gecode propagation
             Parametrized models, loop constructs, reification, . . .
             More backends, constraints, variable types, . . .
             Optimizations, generalizations
             Concurrency
Modelling Languages     Monadic Constraint Programming   Benchmarks   Future Work



Thank you!



                              Questions?

      Further reading:
      Monadic Constraint Programming,
      T. Schrijvers, P. Stuckey, P. Wadler.
      Journal of Functional Programming – to appear.

      More information:
      Source code, papers, . . .
      http://www.cs.kuleuven.be/~pieterw/site.php/Topics/FDMCP

More Related Content

What's hot

2CPP02 - C++ Primer
2CPP02 - C++ Primer2CPP02 - C++ Primer
2CPP02 - C++ Primer
Michael Heron
 
FregeDay: Roadmap for resolving differences between Haskell and Frege (Ingo W...
FregeDay: Roadmap for resolving differences between Haskell and Frege (Ingo W...FregeDay: Roadmap for resolving differences between Haskell and Frege (Ingo W...
FregeDay: Roadmap for resolving differences between Haskell and Frege (Ingo W...
Dierk König
 
Graal VM: Multi-Language Execution Platform
Graal VM: Multi-Language Execution PlatformGraal VM: Multi-Language Execution Platform
Graal VM: Multi-Language Execution Platform
Thomas Wuerthinger
 
Deep Learning to Text
Deep Learning to TextDeep Learning to Text
Deep Learning to Text
Jian-Kai Wang
 
Domain-Specific Languages for Product Modeling (CWG 2011 Cologne, SAP Configu...
Domain-Specific Languages for Product Modeling (CWG 2011 Cologne, SAP Configu...Domain-Specific Languages for Product Modeling (CWG 2011 Cologne, SAP Configu...
Domain-Specific Languages for Product Modeling (CWG 2011 Cologne, SAP Configu...
Tim Geisler
 
Graal Tutorial at CGO 2015 by Christian Wimmer
Graal Tutorial at CGO 2015 by Christian WimmerGraal Tutorial at CGO 2015 by Christian Wimmer
Graal Tutorial at CGO 2015 by Christian WimmerThomas Wuerthinger
 
C# language
C# languageC# language
C# language
Akanksha Shukla
 
Towards easy program migration using language virtualization
 Towards easy program migration using language virtualization Towards easy program migration using language virtualization
Towards easy program migration using language virtualization
ESUG
 

What's hot (8)

2CPP02 - C++ Primer
2CPP02 - C++ Primer2CPP02 - C++ Primer
2CPP02 - C++ Primer
 
FregeDay: Roadmap for resolving differences between Haskell and Frege (Ingo W...
FregeDay: Roadmap for resolving differences between Haskell and Frege (Ingo W...FregeDay: Roadmap for resolving differences between Haskell and Frege (Ingo W...
FregeDay: Roadmap for resolving differences between Haskell and Frege (Ingo W...
 
Graal VM: Multi-Language Execution Platform
Graal VM: Multi-Language Execution PlatformGraal VM: Multi-Language Execution Platform
Graal VM: Multi-Language Execution Platform
 
Deep Learning to Text
Deep Learning to TextDeep Learning to Text
Deep Learning to Text
 
Domain-Specific Languages for Product Modeling (CWG 2011 Cologne, SAP Configu...
Domain-Specific Languages for Product Modeling (CWG 2011 Cologne, SAP Configu...Domain-Specific Languages for Product Modeling (CWG 2011 Cologne, SAP Configu...
Domain-Specific Languages for Product Modeling (CWG 2011 Cologne, SAP Configu...
 
Graal Tutorial at CGO 2015 by Christian Wimmer
Graal Tutorial at CGO 2015 by Christian WimmerGraal Tutorial at CGO 2015 by Christian Wimmer
Graal Tutorial at CGO 2015 by Christian Wimmer
 
C# language
C# languageC# language
C# language
 
Towards easy program migration using language virtualization
 Towards easy program migration using language virtualization Towards easy program migration using language virtualization
Towards easy program migration using language virtualization
 

Viewers also liked

Local SEO Made Simple
Local SEO Made SimpleLocal SEO Made Simple
Local SEO Made Simple
Three Deep Marketing
 
Presentazione Netlife s.r.l. Comunicazione e Formazione
Presentazione Netlife s.r.l. Comunicazione e FormazionePresentazione Netlife s.r.l. Comunicazione e Formazione
Presentazione Netlife s.r.l. Comunicazione e Formazione
Netlife s.r.l.
 
Presentazione Netlife s.r.l.
Presentazione Netlife s.r.l.Presentazione Netlife s.r.l.
Presentazione Netlife s.r.l.
Netlife s.r.l.
 
Paul Holmes la PR Forum 2014 - AndraZaharia.ro
Paul Holmes la PR Forum 2014 - AndraZaharia.roPaul Holmes la PR Forum 2014 - AndraZaharia.ro
Paul Holmes la PR Forum 2014 - AndraZaharia.ro
Andra Zaharia
 
International workshop on semantic sensor web 2011
International workshop on semantic sensor web 2011International workshop on semantic sensor web 2011
International workshop on semantic sensor web 2011
ITACA-TSB
 
Chapter 07
Chapter 07Chapter 07
Chapter 07 Google
 
How to start your open source project
How to start your open source projectHow to start your open source project
How to start your open source project
Eslam Diaa
 
Intro-to-scrum
Intro-to-scrumIntro-to-scrum
Intro-to-scrum
Eslam Diaa
 
Psychoanaliza.blogi naukowe
Psychoanaliza.blogi naukowePsychoanaliza.blogi naukowe
Psychoanaliza.blogi naukoweWeronika
 
Chapter 09
Chapter 09Chapter 09
Chapter 09 Google
 
SEO - 201: Content Optimization and Strategy
SEO - 201: Content Optimization and StrategySEO - 201: Content Optimization and Strategy
SEO - 201: Content Optimization and Strategy
Three Deep Marketing
 
Op Sy 03 Ch 25
Op Sy 03 Ch 25Op Sy 03 Ch 25
Op Sy 03 Ch 25 Google
 
Brazen Careerist
Brazen CareeristBrazen Careerist
Brazen Careeristbkeenhold
 
Leverage Relationships for Sustainable Advantage
Leverage Relationships for Sustainable AdvantageLeverage Relationships for Sustainable Advantage
Leverage Relationships for Sustainable Advantage
David Hain
 
Vip Hotel Fact Sheet
Vip Hotel Fact SheetVip Hotel Fact Sheet
Vip Hotel Fact Sheet
VIPHotels
 

Viewers also liked (20)

Local SEO Made Simple
Local SEO Made SimpleLocal SEO Made Simple
Local SEO Made Simple
 
Dramatic
DramaticDramatic
Dramatic
 
Presentazione Netlife s.r.l. Comunicazione e Formazione
Presentazione Netlife s.r.l. Comunicazione e FormazionePresentazione Netlife s.r.l. Comunicazione e Formazione
Presentazione Netlife s.r.l. Comunicazione e Formazione
 
Presentazione Netlife s.r.l.
Presentazione Netlife s.r.l.Presentazione Netlife s.r.l.
Presentazione Netlife s.r.l.
 
Paul Holmes la PR Forum 2014 - AndraZaharia.ro
Paul Holmes la PR Forum 2014 - AndraZaharia.roPaul Holmes la PR Forum 2014 - AndraZaharia.ro
Paul Holmes la PR Forum 2014 - AndraZaharia.ro
 
International workshop on semantic sensor web 2011
International workshop on semantic sensor web 2011International workshop on semantic sensor web 2011
International workshop on semantic sensor web 2011
 
Chapter 07
Chapter 07Chapter 07
Chapter 07
 
How to start your open source project
How to start your open source projectHow to start your open source project
How to start your open source project
 
Be social
Be socialBe social
Be social
 
Marys 50th.Pps
Marys 50th.PpsMarys 50th.Pps
Marys 50th.Pps
 
Intro-to-scrum
Intro-to-scrumIntro-to-scrum
Intro-to-scrum
 
Psychoanaliza.blogi naukowe
Psychoanaliza.blogi naukowePsychoanaliza.blogi naukowe
Psychoanaliza.blogi naukowe
 
Chapter 09
Chapter 09Chapter 09
Chapter 09
 
SEO - 201: Content Optimization and Strategy
SEO - 201: Content Optimization and StrategySEO - 201: Content Optimization and Strategy
SEO - 201: Content Optimization and Strategy
 
Op Sy 03 Ch 25
Op Sy 03 Ch 25Op Sy 03 Ch 25
Op Sy 03 Ch 25
 
Brazen Careerist
Brazen CareeristBrazen Careerist
Brazen Careerist
 
Night Settings
Night SettingsNight Settings
Night Settings
 
Leverage Relationships for Sustainable Advantage
Leverage Relationships for Sustainable AdvantageLeverage Relationships for Sustainable Advantage
Leverage Relationships for Sustainable Advantage
 
Vip Hotel Fact Sheet
Vip Hotel Fact SheetVip Hotel Fact Sheet
Vip Hotel Fact Sheet
 
The Biosphere
The BiosphereThe Biosphere
The Biosphere
 

Similar to ModRef'09: Gecode support for MCP

Persistent Memory Programming with Pmemkv
Persistent Memory Programming with PmemkvPersistent Memory Programming with Pmemkv
Persistent Memory Programming with Pmemkv
Intel® Software
 
Event-driven Model Transformations in Domain-specific Modeling Languages
Event-driven Model Transformations in Domain-specific Modeling LanguagesEvent-driven Model Transformations in Domain-specific Modeling Languages
Event-driven Model Transformations in Domain-specific Modeling Languages
Istvan Rath
 
Close encounters in MDD: when Models meet Code
Close encounters in MDD: when Models meet CodeClose encounters in MDD: when Models meet Code
Close encounters in MDD: when Models meet Code
lbergmans
 
Close Encounters in MDD: when models meet code
Close Encounters in MDD: when models meet codeClose Encounters in MDD: when models meet code
Close Encounters in MDD: when models meet code
lbergmans
 
Generating Assertion Code from OCL: A Transformational Approach Based on Simi...
Generating Assertion Code from OCL: A Transformational Approach Based on Simi...Generating Assertion Code from OCL: A Transformational Approach Based on Simi...
Generating Assertion Code from OCL: A Transformational Approach Based on Simi...
Shinpei Hayashi
 
고급컴파일러구성론_개레_230303.pptx
고급컴파일러구성론_개레_230303.pptx고급컴파일러구성론_개레_230303.pptx
고급컴파일러구성론_개레_230303.pptx
ssuser1e7611
 
Working with NIM - By Jordan Hrycaj
Working with NIM - By Jordan HrycajWorking with NIM - By Jordan Hrycaj
Working with NIM - By Jordan Hrycaj
camsec
 
L Fu - Dao: a novel programming language for bioinformatics
L Fu - Dao: a novel programming language for bioinformaticsL Fu - Dao: a novel programming language for bioinformatics
L Fu - Dao: a novel programming language for bioinformatics
Jan Aerts
 
Preparing for Scala 3
Preparing for Scala 3Preparing for Scala 3
Preparing for Scala 3
Martin Odersky
 
The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019
The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019
The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019
corehard_by
 
Turbo charging v8 engine
Turbo charging v8 engineTurbo charging v8 engine
Turbo charging v8 engine
Hyderabad Scalability Meetup
 
From Hours to Minutes: The Journey of Optimizing Mask-RCNN and BERT Using MXNet
From Hours to Minutes: The Journey of Optimizing Mask-RCNN and BERT Using MXNetFrom Hours to Minutes: The Journey of Optimizing Mask-RCNN and BERT Using MXNet
From Hours to Minutes: The Journey of Optimizing Mask-RCNN and BERT Using MXNet
Eric Haibin Lin
 
Quick fix generation for DSMLs
Quick fix generation for DSMLsQuick fix generation for DSMLs
Quick fix generation for DSMLs
Ábel Hegedüs
 
Efficient Validation of Large Models using the Mogwaï Tool
Efficient Validation of Large Models using the Mogwaï ToolEfficient Validation of Large Models using the Mogwaï Tool
Efficient Validation of Large Models using the Mogwaï Tool
Gwendal Daniel
 
XML Amsterdam 2012 Keynote
XML Amsterdam 2012 KeynoteXML Amsterdam 2012 Keynote
XML Amsterdam 2012 Keynote
jimfuller2009
 
Performance Optimization of Deep Learning Frameworks Caffe* and Tensorflow* f...
Performance Optimization of Deep Learning Frameworks Caffe* and Tensorflow* f...Performance Optimization of Deep Learning Frameworks Caffe* and Tensorflow* f...
Performance Optimization of Deep Learning Frameworks Caffe* and Tensorflow* f...
Intel® Software
 
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWare
Michael Vorburger
 

Similar to ModRef'09: Gecode support for MCP (20)

Persistent Memory Programming with Pmemkv
Persistent Memory Programming with PmemkvPersistent Memory Programming with Pmemkv
Persistent Memory Programming with Pmemkv
 
Event-driven Model Transformations in Domain-specific Modeling Languages
Event-driven Model Transformations in Domain-specific Modeling LanguagesEvent-driven Model Transformations in Domain-specific Modeling Languages
Event-driven Model Transformations in Domain-specific Modeling Languages
 
Close encounters in MDD: when Models meet Code
Close encounters in MDD: when Models meet CodeClose encounters in MDD: when Models meet Code
Close encounters in MDD: when Models meet Code
 
Close Encounters in MDD: when models meet code
Close Encounters in MDD: when models meet codeClose Encounters in MDD: when models meet code
Close Encounters in MDD: when models meet code
 
Generating Assertion Code from OCL: A Transformational Approach Based on Simi...
Generating Assertion Code from OCL: A Transformational Approach Based on Simi...Generating Assertion Code from OCL: A Transformational Approach Based on Simi...
Generating Assertion Code from OCL: A Transformational Approach Based on Simi...
 
고급컴파일러구성론_개레_230303.pptx
고급컴파일러구성론_개레_230303.pptx고급컴파일러구성론_개레_230303.pptx
고급컴파일러구성론_개레_230303.pptx
 
Os Rego
Os RegoOs Rego
Os Rego
 
Working with NIM - By Jordan Hrycaj
Working with NIM - By Jordan HrycajWorking with NIM - By Jordan Hrycaj
Working with NIM - By Jordan Hrycaj
 
L Fu - Dao: a novel programming language for bioinformatics
L Fu - Dao: a novel programming language for bioinformaticsL Fu - Dao: a novel programming language for bioinformatics
L Fu - Dao: a novel programming language for bioinformatics
 
Preparing for Scala 3
Preparing for Scala 3Preparing for Scala 3
Preparing for Scala 3
 
The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019
The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019
The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019
 
Turbo charging v8 engine
Turbo charging v8 engineTurbo charging v8 engine
Turbo charging v8 engine
 
From Hours to Minutes: The Journey of Optimizing Mask-RCNN and BERT Using MXNet
From Hours to Minutes: The Journey of Optimizing Mask-RCNN and BERT Using MXNetFrom Hours to Minutes: The Journey of Optimizing Mask-RCNN and BERT Using MXNet
From Hours to Minutes: The Journey of Optimizing Mask-RCNN and BERT Using MXNet
 
Code generation
Code generationCode generation
Code generation
 
Quick fix generation for DSMLs
Quick fix generation for DSMLsQuick fix generation for DSMLs
Quick fix generation for DSMLs
 
Efficient Validation of Large Models using the Mogwaï Tool
Efficient Validation of Large Models using the Mogwaï ToolEfficient Validation of Large Models using the Mogwaï Tool
Efficient Validation of Large Models using the Mogwaï Tool
 
XML Amsterdam 2012 Keynote
XML Amsterdam 2012 KeynoteXML Amsterdam 2012 Keynote
XML Amsterdam 2012 Keynote
 
Performance Optimization of Deep Learning Frameworks Caffe* and Tensorflow* f...
Performance Optimization of Deep Learning Frameworks Caffe* and Tensorflow* f...Performance Optimization of Deep Learning Frameworks Caffe* and Tensorflow* f...
Performance Optimization of Deep Learning Frameworks Caffe* and Tensorflow* f...
 
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWare
 
Os Lattner
Os LattnerOs Lattner
Os Lattner
 

Recently uploaded

FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 

ModRef'09: Gecode support for MCP

  • 1. Modelling Languages Monadic Constraint Programming Benchmarks Future Work Monadic Constraint Programming with Gecode Pieter Wuille Tom Schrijvers ModRef’09 Lisbon, September 20, 2009
  • 2. Modelling Languages Monadic Constraint Programming Benchmarks Future Work Modelling languages Zinc approach Gecode approach Separate language: Library for existing language: Very declarative Boilerplate/function calls Transferring data/results Directly callable/usable Not all language features All host-language features
  • 3. Modelling Languages Monadic Constraint Programming Benchmarks Future Work Modelling languages Zinc approach Gecode approach Separate language: Library for existing language: Very declarative Boilerplate/function calls Transferring data/results Directly callable/usable Not all language features All host-language features MCP approach Best of both worlds: High-level abstractions Very declarative Directly usable + Compositional search transformers
  • 4. Modelling Languages Monadic Constraint Programming Benchmarks Future Work MCP Framework MCP Framework Constraint Solving framework for Haskell Multiple solvers, variables, domains, search strategies, . . . Fully functional, no side-effects Solver states and search trees are first-class data Defines common syntactic sugar
  • 5. Modelling Languages Monadic Constraint Programming Benchmarks Future Work FD-MCP: FD solving for MCP FD-MCP: Common FD Infrastructure FD syntax for term and constraint language Model optimizations and decompositions Multiple solver backends
  • 6. Modelling Languages Monadic Constraint Programming Benchmarks Future Work FD-MCP: FD solving for MCP: example model :: FDModel model = exist 4 $ list@[a,b,c,d] -> list ‘allin‘ (0,711) / sorted list / a + b + c + d @= 711 / a * b * c * d @= 711*100*100*100 / return list main = example_main_void model
  • 7. Modelling Languages Monadic Constraint Programming Benchmarks Future Work FD-MCP: Solvers FD Solvers Haskell-only solver Pseudo-solver that generates C++ code for Gecode new Real solver using Gecode propagation new Real solver using Gecode search+propagation
  • 8. Modelling Languages Monadic Constraint Programming Benchmarks Future Work Benchmark: Allinterval Benchmark allinterval 1000 C++ Gecode MCP Generated C++ 100 MCP using Gecode prop MCP using Gecode prop+search 10 MCP Haskell 1 time (s) 0.1 0.01 0.001 0.0001 1e-05 2 4 6 8 10 12 14 16 problem size
  • 9. Modelling Languages Monadic Constraint Programming Benchmarks Future Work Benchmark: Partition Benchmark partition 1000 C++ Gecode MCP Generated C++ 100 MCP using Gecode prop MCP using Gecode prop+search MCP Haskell 10 1 time (s) 0.1 0.01 0.001 0.0001 4 6 8 10 12 14 16 18 20 problem size
  • 10. Modelling Languages Monadic Constraint Programming Benchmarks Future Work Future Work Future work More benchmarks Improve performance of MCP using Gecode propagation Parametrized models, loop constructs, reification, . . . More backends, constraints, variable types, . . . Optimizations, generalizations Concurrency
  • 11. Modelling Languages Monadic Constraint Programming Benchmarks Future Work Thank you! Questions? Further reading: Monadic Constraint Programming, T. Schrijvers, P. Stuckey, P. Wadler. Journal of Functional Programming – to appear. More information: Source code, papers, . . . http://www.cs.kuleuven.be/~pieterw/site.php/Topics/FDMCP