Automatic Synthesis of Numerical Computer Programs

نویسنده

  • Richard H. Brown
چکیده

This paper is about rule-based problem solving. It has a motto: The less a rule can do, the better the effects of using it can be predicted. This motto suggests the key to obtaining coherent behavior by avoiding exponential behavior (combinatorial explosion) in a problem solving program for the domain of synthesizing numerical computer programs from their non-procedural specifications Introduction To construct an automatic programming system, several separate but related sub-domains and their corresponding experts are required. These include program understanding, specification acquisition, program verification, and program synthesis. The last is the domain of expertise of the system described by this paper. A program synthesis system takes a specification (for example, a predicate calculus description of the relationships between the inputs and the outputs) of a program and produces a program meets those specifications. Diagram "Bernoulli Example" shows an input specification (in mathematical notation) and the LISP code produced by the system. The fundamental difficulty in constructing problem-solving systems is the so-called "combinatorial explosion" problem. That is to say, given a reasonable measure of how hard the problem at hand should be, a "combinatorially explosive" problem solver takes an amount of time proportional to an exponential (or worse!) function of that measure In general, the size of program (and therefore certainly the time needed to write it) is an unbounded function of the size of its specification For purposes of measuring the coherence of a problem solver, a measure of "how hard a problem is" could be the number of rule applications that were needed (as opposed to the larger number actually performed) in the solution found. The result of this research is a collection of techniques (embedded in a synthesis system) that synthesize numerical computer programs. These techniques do not depend strongly on the fact that the task is synthesizing programs, so there is hope that they could be adapted to problem-solving in other domains. I conjecture that these techniques in fact run in time proportional to a polynomial function of the number of rules required to solve a synthesis problem A working program was obtained that (on a relatively unloaded PDP-IO) can solve several examples faster than an expert human programmer.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Automatic Diierentiation of Numerical Integration Algorithms

Automatic diierentiation (AD) is a technique for automatically augmenting computer programs with statements for the computation of derivatives. This article discusses the application of automatic diierentiation to numerical integration algorithms for ordinary diierential equations (ODEs), in particular, the ramiications of the fact that AD is applied not only to the solution of such an algorith...

متن کامل

Program Synthesis and Transformation Techniques for Simulation, Optimization and Constraint Satisfaction (Research Statement)

Computational scientists and design engineers face recurring problems of specifying, constructing, testing and modifying numerical programs. Scientists often do not know in advance what objects and processes must be modeled in numerical simulation programs. Engineers often do not know in advance the best way to formulate objectives, constraints and search spaces that are used in programs for au...

متن کامل

Automatic Differentiation Applied to Economics

This paper discusses the use of the Automatic Differentiation approach in evaluating derivatives of functions represented by computer programs. We then considered a Cournot oligopoly modeled by a system of stochastic differential equations. The setting is that of a set of self-interested firms striving to adjust their productions in the direction of higher profits subject to mistakes or random ...

متن کامل

Automatic Creation of Computer Programs for Designing Electrical Circuits Using Genetic Programming

One of the central goals of computer science is to get computers to solve problems starting from only a high-level statement of the problem. The goal of automating the design process bears many similarities to the goal of automatically creating computer programs. The design process entails creation of a complex structure to satisfy user-defined requirements. The design process is usually viewed...

متن کامل

A Grid-based Ant Colony System for Automatic Program Synthesis

The Ant Colony Metaheuristic was originally proposed for tackling optimization problems. More recent research has suggested that it can be applied for automatic generation of programs. By allowing the artificial ants to visit functions and terminals nodes, they become able to build pheromone trails that represent computer programs for optimizing a fitness domain-specific function. In this paper...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1981