nils-herrmann/clean_scirepeval huggingface dataset:
Automated synthesis of computational circuits using genetic programming

Analog electrical circuits that perform mathematical functions (e.g., cube root, square) are called computational circuits. Computational circuits are of special practical importance when the small number of required mathematical functions does not warrant converting an analog signal into a digital signal, performing the mathematical function in the digital domain, and then converting the result back to the analog domain. The design of computational circuits is difficult even for mundane mathematical functions and often relies on the clever exploitation of some aspect of the underlying device physics of the components. Moreover, implementation of each different mathematical function typically requires an entirely different clever insight. This paper demonstrates that computational circuits can be designed without such problem-specific insights using a single uniform approach involving genetic programming. Both the circuit topology and the sizing of all circuit components are created by genetic programming. This uniform approach to the automated synthesis of computational circuits is illustrated by evolving circuits that perform the cube root function (for which no circuit was found in the published literature) as well as for the square root, square, and cube functions.
Evolving sorting networks using genetic programming and the rapidly reconfigurable Xilinx 6216 field-programmable gate array

This paper describes how the massive parallelism of the rapidly reconfigurable Xilinx XC6216 FPCA (in conjunction with Virtual Computing Corporation's HOT Works board) can be exploited to accelerate the computationally burdensome fitness measurement task of genetic algorithms and genetic programming. This acceleration is accomplished by embodying each individual of the evolving population into hardware in order to perform this time-consuming fitness measurement task. A 16-step sorting network for seven items was evolved that has two fewer steps than the sorting network described in the 1962 O'Connor and Nelson patent on sorting networks (and the same number of steps as a 7-sorter that was devised by Floyd and Knuth (1973) subsequent to the patent and that is now known to be minimal).
Automatically Choosing the Number of Fitness Cases: The Rational Allocation of Trials

For many problems to which genetic programming has been applied, choosing the number of tness cases with which to evaluate the individuals is a crucial decision. If too few tness cases are used, overrtting may occur, and the measured tness of an individual may not be representative of its true tness. On the other hand, if too many tness cases are used, a great deal of computer time can be wasted. This paper presents a method for the Rational Allocation of Trials (RAT) that dynamically allocates a boundedly optimal number of tness cases for each individual. RAT allocates individuals to tournaments prior to their evaluation, and then, borrowing from previous work in model selection, allocates trials ((tness cases) only to those individuals for whom the cost of evaluating another tness case is outweighed by the expected utility that the new information will provide. For most evolutionary computation approaches, including genetic programming, and for most problems, the RAT algorithm will provide signiicant time savings at minimal additional system complexity.
Automatic programming of a time-optimal robot controller and an analog electrical circuit to implement the robot controller by means of genetic programming

Genetic programming is an automatic programming technique that evolves computer programs to solve, or approximately solve, problems. This paper presents two examples in which genetic programming creates a computer program for controlling a robot so that the robot moves to a specified destination point in minimal time. In the first approach, genetic programming evolves a computer program composed of ordinary arithmetic operations and conditional operations to implement a time-optimal control strategy. In the second approach, genetic programming evolves the design of an analog electrical circuit consisting of transistors, diodes, resistors, and power supplies to implement a near-optimal control strategy.
Evolution using genetic programming of a low-distortion, 96 decibel operational amplifier

The field of engineering design offers a practical yardstick for evaluating automated techniques because the design process is usually viewed as requiring human intelligence and because design is a major activity of practicing engineers. In the design process, the design requirements specify "what needs to be done." A satisfactory design tells us "how to do it." In the field of electrical engineering, the design process typically involves the creation of an electrical circuit that satisfies user-specified design goals. Considerable progress has been made in automating the design of certain categories of purely digital circuits; however, the design of analog circuits and mixed analog-digital circuitshas not proved to be as amenable to automation (Rutenbar 1993). In discussing "the analog dilemma," O. Aaserud and I. Ring Nielsen (1995) (not to be confused with Ivan Riis Nielsen cited later) observe, "Analog designers are few and far between. In contrast to digital design, most of the analog circuits are still handcrafted by the experts or so-called 'zahs' of analog design. The design process is characterized by a combination of experience and intuition and requires a thorough knowledge of the process characteristics and the detailed specifications of the actual product. "Analog circuit design is known to be a knowledge-intensive, multiphase, iterative task, which usually stretches over a significant period of time and is performed by designers with a large portfolio of skills. It is therefore considered by many to be a form of art rather than a science." Of course, engineers employ human reasoning abilities and intelligence in designing complex structures. In contrast, nature employs an entirely different approach to design. In nature, complex structures are designed by means of evolution and natural selection. This suggests the possibility of applying the techniques of evolutionary computation in order to automate the design of complex structures. Genetic algorithms have been applied to the problem of circuit synthesis. A CMOS operational amplifier (op amp) circuit was designed using a modified version of the genetic algorithm (Kruiskamp and Leenaerts 1995); however, the topology of each op amp was one of 24 pre-selected topologies based on the conventional human-designed stages of an op amp. Thompson (1996) used a genetic algorithm to evolve a frequency discriminator on a Xilinx 6216 reconfigurable digital gate array operating in analog mode. Holland (1975) described how an analog of the naturally-occurring evolutionary process can be applied to solving scientific and engineering problems using what is now called the
Automated synthesis of analog electrical circuits by means of genetic programming

Analog circuit synthesis entails the creation of both the topology and the sizing (numerical values) of all of the circuit's components. This paper presents a single uniform approach using genetic programming for the automatic synthesis of both the topology and sizing of a suite of eight different prototypical analog circuits, including a low-pass filter, a crossover filter, a source identification circuit, an amplifier, a computational circuit, a time-optimal controller circuit, a temperature-sensing circuit, and a voltage reference circuit. The problem-specific information required for each of the eight problems is minimal and consists of the number of inputs and outputs of the desired circuit, the types of available components, and a fitness measure that restates the high-level statement of the circuit's desired behavior as a measurable mathematical quantity. The eight genetically evolved circuits constitute an instance of an evolutionary computation technique producing results on a task that is usually thought of as requiring human intelligence.
Four problems for which a computer program evolved by genetic programming is competitive with human performance

It would be desirable if computers could solve problems without the need for humans to write the detailed programmatic steps. That is, it would be desirable to have a domain independent automatic programming technique in which "What You Want Is What You Get" (WYWIWYG). Genetic programming is such a technique. This paper surveys three examples of problems (from the fields of cellular automata and molecular biology) in which genetic programming evolved a computer program that produced results that were slightly better than human performance for the same problem. This paper then discusses the problem of electronic circuit synthesis in greater detail. It shows how genetic programming can evolve both the topology of a desired electrical circuit and the sizing (numerical values) for each component in a crossover (woofer and tweeter) filter. Genetic programming has also evolved the design for a lowpass filter, the design of an amplifier, and the design for an asymmetric bandpass filter that was described as being difficult-to-design.
Automated WYWIWYG design of both the topology and component values of electrical circuits using genetic programming

This paper describes an automated process for designing electrical circuits in which "What You Want Is What You Get" ("WYWIWYG" - pronounced "wow-eee-wig"). The design process uses genetic programming to produce both the topology of the desired circuit and the sizing (numerical values) for all the components of a circuit. Genetic programming successfully evolves both the topology and the sizing for an asymmetric bandpass filter that was described as being difficult-to-design in a leading electrical engineering journal. This evolved circuit is another instance in which a genetically evolved solution to a non-trivial problem is competitive with human performance.
Discovery by genetic programming of a cellular automata rule that is better than any known rule for the majority classification problem

It is difficult to program cellular automata. This is especially true when the desired computation requires global communication and global integration of information across great distances in the cellular space. Various human-written algorithms have appeared in the past two decades for the vexatious majority classification task for one-dimensional two-state cellular automata. This paper describes how genetic programming with automatically defined functions evolved a rule for this task with an accuracy of 82.326%. This level of accuracy exceeds that of the original 1978 Gacs-Kurdyumov-Levin (GKL) rule, all other known human-written rules, and all other known rules produced by automated methods. The rule evolved by genetic programming is qualitatively different from all previous rules in that it employs a larger and more intricate repertoire of domains and particles to represent and communicate information across the cellular space.
A case study where biology inspired a solution to a computer science problem.

This paper describes how the biological theory of gene duplication described in Susumu Ohno's provocative book, Evolution by Means of Gene Duplication, was brought to bear on a vexatious problem from the domain of automated machine learning, namely the problem of architecture discovery. Six new architecture-altering operations for genetic programming were motivated by the way that new biological structures, functions, and behaviors arise in nature using gene duplication. Genetic programming with the new architecture-altering operations was then applied to the transmembrane protein segment identification problem. The out-of-sample error rate for the best genetically-evolved program achieved was slightly better than that of previously-reported human-written algorithms for this problem.
A study in program response and the negative effects of introns in genetic programming

The standard method of obtaining a response in tree-based genetic programming is to take the value returned by the root node. In non-tree representations, alternate methods have been explored. One alternative is to treat a specific location in indexed memory as the response value when the program terminates. The purpose of this paper is to explore the applicability of this technique to tree-structured programs and to explore the intron effects that these studies bring to light. This paper's experimental results support the finding that this memory-based program response technique is an improvement for some, but not all, problems. In addition, this paper's experimental results support the finding that, contrary to past research and speculation, the addition or even facilitation of introns can seriously degrade the search performance of genetic programming.
Use of automatically defined functions and architecture-altering operations in automated circuit synthesis with genetic programming

This paper demonstrates the usefulness of automatically defined functions and architecture-altering operations in designing analog electrical circuits using genetic programming. 
 
A design for a lowpass filter is genetically evolved in which an automatically defined function is profitably reused in the 100% compliant circuit. The symmetric reuse of an evolved substructure directly enhances the performance of the circuit. Genetic programming rediscovered the classical ladder topology used in Butterworth and Chebychev filters as well as the more complex topology used in Cauer (elliptic) filters. 
 
A design for a double-passband filter is genetically evolved in which the architecture-altering operations discover a suitable program architecture dynamically during the run. Two automatically defined functions are profitably reused in the genetically evolved 100% complaint circuit.
Automated Design of Both the Topology and Sizing of Analog Electrical Circuits Using Genetic Programming

This paper describes an automated process for designing analog electrical circuits based on the principles of natural selection, sexual recombination, and developmental biology. The design process starts with the random creation of a large population of program trees composed of circuit-constructing functions. Each program tree specifies the steps by which a fully developed circuit is to be progressively developed from a common embryonic circuit appropriate for the type of circuit that the user wishes to design. The fitness measure is a user-written computer program that may incorporate any calculable characteristic or combination of characteristics of the circuit. The population of program trees is genetically bred over a series of many generations using genetic programming. Genetic programming is driven by a fitness measure and employs genetic operations such as Darwinian reproduction, sexual recombination (crossover), and occasional mutation to create offspring. This automated evolutionary process produces both the topology of the circuit and the numerical values for each component. This paper describes how genetic programming can evolve the circuit for a difficult-to-design low-pass filter.
Reuse, Parameterized Reuse, and Hierarchical Reuse of Substructures in Evolving Electrical Circuits Using Genetic Programming

Most practical electrical circuits contain modular substructures that are repeatedly used to create the overall circuit. Genetic programming with automatically defined functions and the recently developed architecture-altering operations provides a way to build complex structures with reused substructures. In this paper, we successfully evolved a design for a two-band crossover (woofer and tweeter) filter with a crossover frequency of 2,512 Hz. Both the topology and the sizing (numerical values) for each component of the circuit were evolved during the run. The evolved circuit contained three different noteworthy substructures. One substructure was invoked five times thereby illustrating reuse. A second substructure was invoked with different numerical arguments. This second substructure illustrates parameterized reuse because different numerical values were assigned to the components in the different instantiations of the substructure. A third substructure was invoked as part of a hierarchy, thereby illustrating hierarchical reuse.
Evolution of Iteration in Genetic Programming

The solution to many problems requires, or is facilitated by, the use of iteration. Moreover, because iterative steps are repeatedly executed, they must have some degree of generality. An automatic programming system should require that the user make as few problemspecific decisions as possible concerning the size, shape, and character of the ultimate solution to the problem. Work first presented at the Fourth Annual Conference on Evolutionary Programming in 1995 (EP-95) demonstrated that six then-new architecture-altering operations made it possible to automate the decision about the archi tecture of an overal l program dynamically during a run of genetic programming. The question arises as to whether it is also possible to automate the decision about whether to employ iteration, how much iteration to employ, and the particular sequence of iterative steps. This paper introduces the new operation of restricted iteration creation that automatically creates a restricted iteration-performing branch out of a portion of an existing computer program during a run a genetic programming. Genetic programming with the new operation is then used (in conjunction with the other architecture-altering operations first presented at EP-95) to evolve a computer program to solve a non-trivial problem.
The Automatic Programming of Agents that Learn Mental Models and Create Simple Plans of Action

An essential component of an intelligent agent is the ability to notice, encode, store, and utilize information about its environment. Traditional approaches to program induction have focused on evolving functional or reactive programs. This paper presents MAPMAKER, a method for the automatic generation of agents that discover information about their environment, encode this information for later use, and create simple plans utilizing the stored mental models. In this method, agents are multi-part computer programs that communicate through a shared memory. Both the programs and the representation scheme are evolved using genetic programming. An illustrative problem of 'gold' collection is used to demonstrate the method in which one part of a program makes a map of the world and stores it in memory, and the other part uses this map to find the gold The results indicate that the method can evolve programs that store simple representations of their environments and use these representations to produce simple plans.
Evolution of Both the Architecture and the Sequence of Work-Performing Steps of a Computer Program Using Genetic Programming with Architecture-Altering Operations

The goal of automatic programming is to create, in an automated way, a computer program that enables a computer to solve a problem. Ideally, an automatic programming system should require that the user pre-specify as little as possible about the problem environment. In particular, it is desirable that the user not be required to prespecify the architecture of the ultimate solution to his problem. The question of how to automatically create the architecture of the overall program in an evolutionary approach to automatic programming, such as genetic programming, has a parallel in the biological world: how new structures and behaviors are created in living things. This corresponds to the question of how new DNA that encodes for a new protein is created in more complex organisms. This chapter describes how the biological theory of gene duplication described in Susumu Ohno’s provocative book, Evolution by Means of Gene Duplication, was brought to bear on the problem of architecture discovery in genetic programming. The resulting biologicallymotivated approach uses six new architecture-altering operations to enable genetic programming to automatically discover the architecture of the solution at the same time as genetic programming is evolving a solution to the problem. Genetic programming with the architecture-altering operations is used to evolve a computer program to classify a given protein segment as being a transmembrane domain or non-transmembrane area of the protein (without biochemical knowledge, such as the hydrophobicity values used in human-written algorithms for this task). The best genetically-evolved program achieved an out-of-sample error rate that was better than that reported for other previously reported human-written algorithms. This is an instance of an automated machine learning algorithm matching human performance on a non-trivial problem.
Parallel Genetic Programming on a Network of Transputers

This report describes the parallel implementation of genetic programming in the C programming language using a PC 486 type computer (running Windows) acting as a host and a network of transputers acting as processing nodes. Using this approach, researchers of genetic algorithms and genetic programming can acquire computing power that is intermediate between the power of currently available workstations and that of supercomputers at a cost that is intermediate between the two. A comparison is made of the computational effort required to solve the problem of symbolic regression of the Boolean even-5-parity function with different migration rates. Genetic programming required the least computational effort with an 8% migration rate. Moreover, this computational effort was less than that required for solving the problem with a serial computer and a panmictic population of the same size. That is, apart from the nearly linear speed-up in executing a fixed amount of code inherent in the parallel implementation of genetic programming, parallelization delivered more than linear speed-up in solving the problem using genetic programming.