The design of divide and conquer algorithms
Science of Computer Programming
Top-down synthesis of divide-and-conquer algorithms
Artificial Intelligence
A 15 Year Perspective on Automatic Programming
IEEE Transactions on Software Engineering - Special issue on artificial intelligence and software engineering
Domain-Specific Automatic Programming
IEEE Transactions on Software Engineering - Special issue on artificial intelligence and software engineering
SOAR: an architecture for general intelligence
Artificial Intelligence
Communications of the ACM
Chunking in Soar: The Anatomy of a General Learning Mechanism
Machine Learning
Derived Preconditions and Their Use in Program Synthesis
Proceedings of the 6th Conference on Automated Deduction
Synthesizing UNIX shell scripts using derivational analogy: an empirical assessment
AAAI'91 Proceedings of the ninth National conference on Artificial intelligence - Volume 2
Hi-index | 0.00 |
This paper describes a partial reimplementation of Doug Smith's CYPRESS algorithm design system within the Soar problem-solving architecture. The system, CYPRESS-SOAR, reproduces most of CYPRESS' behavior in the synthesis of three divide-and-conquer sorting algorithms from formal specifications. CYPRESS-Soar is based on heuristic search of problem spaces, and uses search to compensate for missing knowledge in some instances. CYPRESS-Soar also learns as it designs algorithms, exhibiting significant transfer of learned knowledge, both within a single design run, and across designs of several different algorithms. These results were produced by reimplementing just the high-level synthesis control of CYPRESS, simulating the results of calls to CYPRESS deduction engine. Thus after only two months of effort, we had a surprisingly effective research vehicle for investigating the roles of search, knowledge, and learning in this domain.