200 likes | 373 Views
Capturing Constraint Programming Experience: A Case-Based Approach. James Little, Cormac Gebruers, Derek Bridge, Eugene Freuder. Introduction What are we doing?. Tool Support for Constraint Programming.
E N D
Capturing Constraint Programming Experience:A Case-Based Approach James Little, Cormac Gebruers, Derek Bridge, Eugene Freuder
Introduction What are we doing? Tool Support for Constraint Programming Developing a tool that will store, retrieve and reuse constraint programming experience.
Motivations Why Case-Based Reasoning? Constraint programming seems case based No one representation is good at solving all problems: Finkel et al, University of Kentucky
The CBRCP Architecture Overview Logic Puzzle (NL)
Round of Golf Logic Puzzle • 4 first names • 4 surnames • 4 occupations • 4 golf scores from a possible 16 values • “Clues such as Bill is not the maintenance man” • Work out the 4 scores and match everything up.
Formal Representation Round of Golf % schema(TableName, Columns, NumOfRows) schema(player, [firstname, surname, occ, score], 4), % attribute(Name, Values) attribute(firstname, [jack, bill, paul, frank]), … attribute(score, [70..85]), … % Clue 1 player(bill, _, BillOcc, _), BillOcc #\= maint, ETC.
Translate Golf Formal Representation Case Base Formal Representation Program Plan The CBRCP Architecture Overview Golf Logic Puzzle (NL)
As before Case Base %PP Zebra Puzzle print header, create_DVs, create_Differences, … Formal Representation Program Plan Zebra ------------------ Zebra Program Plan Flying ------------------ Flying Program Plan cp1 cp2 The CBRCP Case Base Different!
Translate Golf Formal Representation Case Base Flying Formal Representation Program Plan The CBRCP Architecture Overview Golf Puzzle (NL)
Formal Representation Round of Golf % schema(TableName, Columns, NumOfRows) schema(player, [firstname, surname, occ, score], 4), % attribute(Name, Values) attribute(firstname, [jack, bill, paul, frank]), … attribute(score, [70..85]), … % Clue 1 player(bill, _, BillOcc, _), BillOcc #\= maint, ETC.
Retrieve Flying Program Plan Flying Formal Representation Program Plan The CBRCP Architecture Overview Translate Golf (NL) Golf Formal Representation Case Base
Flying Formal Representation Reuse Program Plan CP Program(ECLiPSe) The CBRCP Architecture Overview Retrieve Translate Golf (NL) Golf Formal Representation Flying Program Plan Case Base
Execute Program Plan %PP Flying Puzzle print header, create_DVs, create_Differences, generate_clue_constraints, generate_subset_search, … … alldistinct([Xjack, Xbill , Xpaul , Xfrank ]) … … Xbill #\= Xmaint, …
Flying Formal Representation Program Plan Solution to Golf CP Program(ECLiPSe) Execute The CBRCP Architecture Overview Retrieve Translate Golf (NL) Golf Formal Representation Flying Program Plan Case Base Reuse
Issues Similarity Adaptation
Flying Formal Representation Program Plan The CBRCP Architecture Overview Retrieve Translate Golf (NL) Golf Formal Representation Flying Program Plan Case Base Adapt & Reuse Adapted Flying Program Plan Solution to Golf CP Program(ECLiPSe) Execute
Flying Formal Representation Program Plan The CBRCP Architecture Overview Retrieve Translate Golf (NL) Golf Formal Representation Flying Program Plan Case Base Adapt & Reuse Adapted Flying Program Plan Revised Program Plan (now Golf) Revise Solution to Golf CP Program(ECLiPSe) Execute
Flying Formal Representation Golf Formal Representation Program Plan Golf Program Plan Retain The CBRCP Architecture Overview Retrieve Translate Golf (NL) Golf Formal Representation Flying Program Plan Case Base Adapt & Reuse Adapted Flying Program Plan Revised Program Plan Revise Solution to Program CP Program(ECLiPSe) Execute
Future Work Future Work: Similarity Adaptation Evaluate prototype end…