SlideShare une entreprise Scribd logo
1  sur  11
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

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 PlatformThomas Wuerthinger
 
Deep Learning to Text
Deep Learning to TextDeep Learning to Text
Deep Learning to TextJian-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
 
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 virtualizationESUG
 

Tendances (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
 

En vedette

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 FormazioneNetlife 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.roAndra 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 2011ITACA-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 projectEslam Diaa
 
Intro-to-scrum
Intro-to-scrumIntro-to-scrum
Intro-to-scrumEslam 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 StrategyThree 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 AdvantageDavid Hain
 
Vip Hotel Fact Sheet
Vip Hotel Fact SheetVip Hotel Fact Sheet
Vip Hotel Fact SheetVIPHotels
 

En vedette (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
 

Similaire à ModRef'09: Gecode support for MCP

Persistent Memory Programming with Pmemkv
Persistent Memory Programming with PmemkvPersistent Memory Programming with Pmemkv
Persistent Memory Programming with PmemkvIntel® 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 LanguagesIstvan 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 Codelbergmans
 
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 codelbergmans
 
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.pptxssuser1e7611
 
Working with NIM - By Jordan Hrycaj
Working with NIM - By Jordan HrycajWorking with NIM - By Jordan Hrycaj
Working with NIM - By Jordan Hrycajcamsec
 
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 bioinformaticsJan Aerts
 
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 2019corehard_by
 
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 MXNetEric 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ï ToolGwendal Daniel
 
XML Amsterdam 2012 Keynote
XML Amsterdam 2012 KeynoteXML Amsterdam 2012 Keynote
XML Amsterdam 2012 Keynotejimfuller2009
 
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 openArchitectureWareMichael Vorburger
 

Similaire à 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
 

Dernier

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

Dernier (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

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