4 research outputs found
Recommended from our members
Correct abstraction in counter-planning : a knowledge compilation approach
Knowledge compilation improves search-intensive problem-solvers that are easily specified but inefficient. One promising approach improves efficiency by constructing a database of problem-instance/best-action pairs that replace problem-solving search with efficient lookup. The database is constructed by reverse enumeration- expanding the complete search space backwards, from the terminal problem instances. This approach has been used successfully in counter-planning to construct perfect problem-solvers for sub domains of chess and checkers. However, the approach is limited to small problems because both the space needed to store the database and the time needed to generate the database grow exponentially with problem size. This thesis addresses these problems through two mechanisms. First, the space needed is reduced through an abstraction mechanism that is especially suited to counter-planning domains. The search space is abstracted by representing problem states as equivalence classes with respect to the goal achieved and the operators as equivalence classes with respect to how they influence the goals. Second, the time needed is reduced through a hueristic best-first control of the reverse enumeration. Since with larger problems it may be impractical to run the compiler to completion, the search is organized to optimize the tradeoff between the time spent compiling a domain and the coverage achieved over that domain. These two mechanisms are implemented in a system that has been applied to problems in chess and checkers. Empirical results demonstrate both the strengths and weaknesses of the approach. In most problems and 80/20 rule was demonstrated, where a small number of patterns were identified early that covered most of the domain, justifying the use of best-first search. In addition, the method was able to automatically generate a set of abstract rules that had previously required two person-months to hand engineer
Aspect-oriented modelling
Aspect-oriented programming is a software engineering paradigm used to modularise parts of a program which are difficult to separate using other means. It does this using aspects: combinations of program modifications and places to apply them. While it has received some academic interest, aspect orientation has seen lukewarm adoption from industry and its practical benefits are not well demonstrated. The paradigm lacks a use-case for which aspects are particularly well-suited.
One such use-case may be in producing and maintaining codebases for research purposes. In many fields, research is conducted with the aid of software models. Changes to these models are delicate: they may invalidate results, add complexity to a codebase, or absorb researchers’ time. These changes could be represented as aspects, but the paradigm is yet to be applied to codebases for scientific models. We propose that aspects are particularly well-suited to describe these changes and that aspect-oriented modelling may ease model maintenance.
This thesis investigates the viability of aspect-oriented modelling for simulation purposes. An aspect-oriented programming framework is implemented which addresses criticisms of the paradigm, and contributes new kinds of aspects which are useful for describing changes to models. With this tool, a case study of aspect-oriented modelling is constructed using a model of a real-world mobile game and its players’ activity. This forms the foundation of three experiments. They demonstrate that aspects can be used to successfully augment models, can add new behaviours and parameters to models, and can be reused across different models in some cases. As these contributions invite new research in many fields, the thesis also enumerates the possibilities enabled for others researching aspect orientation, simulation & modelling, and research software engineering, as well as the methodological implications for researchers whose hypotheses are encoded within software models