Project Topics: MCI 2007.1

Download Report

Transcript Project Topics: MCI 2007.1

Project Topics: MCI 2007.1
Jacques Robin
Ontologies
Reasoning
Components
Agents
Simulations
Topic
 Developing a component framework of search algorithms
 Based on the books:
 Artificial Intelligence a Modern Approach by Russell & Norvig
 Constraint Processing by Dechter
 Stochastic Local Search by Hoos & Stützle
 Using under development KobrA-2 method for PIM modeling
 Maximizing separation of concerns:
 Search problem specifications
 Search algorithms
 Search heuristics (variable choice, value choice, backtracking point
choice, etc.)
 Search visualization (GUI to follow reasoning)
Topic
 Modeling a hierarchical framework of abstract components
 which generic description is inherited by concrete components
 that can be used to assemble variations of two main target algorithms
 Conflict directed backjumping (complete, not very scalable)
 Min-conflict (incomplete, very scalable)
Something along those lines ...
SearchProblem
PartialStateFormulation
SearchProblem
GlobalSearchAlgo
LocalSearchAlgo
CSPSearchProblem
CSPSearchAlgo
FDCSP
SearchProblem
FDCSP
SearchAlgo
PartialStateFormulation
FDCSPSearchProblem
Backtracking
Heuristic
FullStateFormulation
SearchProblem
VariableChoice
Heuristic
SearchAlgo
FullStateFormulation
FDCSPSearchProblem
ValueChoice
Heuristic
GlobalFDCSP
SearchAlgo
LocalFDCSP
SearchAlgo
CDBJ
Min-Confllict
PSM and Code
 Develop a partial UML Profile for Java OSGi Component Model
 Model the PSM using this profile
 Either:
 Manually translate the PIM to PSM and to source code
 Write ATL rules that automatically perform these translations
 Test the framework on a set of benchmark problems including:
 Map coloring
 N-Queens
Division of Labor
 All four students:
 PIM of general abstract framework classes
 Problem formulations (Heron)
 Algorithms (Geovane)
 Heuristics (Juliana)
 UML profile for Java OSGi (Weslei)
 PIM of benchmark problems (Roberto)
 Can suggest division of labor for those tasks
Division of Labor
 Heron & Weslei:
 PIM of abstract superclasses of Conflict-Direct Backjumping
 PIM of abstract Conflict-Direct Backjumping
 PIM of benchmark problems Partial State Formulation
 PIM of concrete Conflict-Direct Backjumping variant assemblies
 PSM of these PIM
Java code of these PIM
 Geovane, Juliana & Roberto:
PIM of abstract superclasses of Min-Conflict
 PIM of abstract Min-Conflict
 PIM of benchmark problem Full State Formulations
 PIM of concrete Min-Conflict variant assemblies
 PSM of these PIM
Java code of these PIM
Timetable
 21/03: Version 1.0 of KobrA PIM for common components
 10/04:
 Version 2.0 of KobrA PIM for common components
 Version 1.0 of KobrA PIM for concrete components
 Version 1.0 of UML Profile for OSGi Java
 24/04:
Version 2.0 of KobrA PIM for concrete components
 Version 2.0 of UML Profile for OSGi Java
 Version 1.0 of PSM and Source Code for common and concrete
components
 03/05: Final oral presentation and demos
Reminder: KobrA’s PIM as a
Recursive Component Assembly
Clientship +
Containment rules
Clientship +
Containment rules
Containment rules
Clientship
rules
Cliensthip
rules
Clientship +
Containment rules
Clientship
rules
KobrA-2 Artifacts for each
Component Specification
 Class diagrams: interfaces with operations, realizing component
classes, classes defining non-primitives types of operation
parameters
 Structural OCL constraints of these class diagrams
 (if needed) OCL derived attributes
 OCL pre and post conditions or body for each operation of each
interface
 Component diagrams: socket-lollypop interfaces, port types,
realizing component classes
 (if needed) Protocol state machine: states changes of components
resulting from calling operations of the interface that it realizes,
primitive operation calls or OCL expressions on the transitions,
primitive state attribute specification or OCL expression on the
nodes
KobrA-2 Artifacts for each
Component Realization
 Class diagrams: interfaces with operations, realizing component
classes, classes defining non-primitives types of operation
parameters
 Structural OCL constraints of these class diagrams
 (if needed) OCL derived attributes
 OCL pre and post conditions or body for each operation of each
interface
 Component diagrams: socket-lollypop interfaces, port types,
realizing component classes
 Composite structure diagrams (one for each constructor operation):
component instances, port instances, connections
 Activity diagrams (one for each operation): nodes either names of
other activities, names of primitive actions or OCL expressions
joining primitive actions