This paper validates the combination of nonlinear model predictive control and moving horizon estimation to optimally control an overhead crane. Real-time implementation of this combined optimal control and estimation...
详细信息
A number of automatic code generation systems have been proposed for stencil computations on modern parallel com- puters. However, codes they generate are rather inefficient. Typically they achieve
ISBN:
(纸本)9781450323086
A number of automatic code generation systems have been proposed for stencil computations on modern parallel com- puters. However, codes they generate are rather inefficient. Typically they achieve
The development of distributed systems has become a complex task. An approach that has become widely accepted in this context is the component-based development. However, the effort aimed at developing technical code ...
详细信息
Ant Colony Optimization (ACO) is a swarm-based search method. Multiple ant agents search various solutions and their searches focus on around good solutions by positive feedback mechanism based on pheromone communicat...
详细信息
Ant Colony Optimization (ACO) is a swarm-based search method. Multiple ant agents search various solutions and their searches focus on around good solutions by positive feedback mechanism based on pheromone communication. ACO is effective for combinatorial optimization problems. The attempt of applying ACO to automatic programming has been studied in recent years. As one of the attempts, we have previously proposed Cartesian Ant programming (CAP) as an ant-based automatic programming method. Cartesian Genetic programming (CGP) is well-known as an evolutionary optimization method for graph-structural programs. CAP combines graph representations in CGP with pheromone communication in ACO. The connections of program primitives, terminal and functional symbols, can be optimized by ants. CAP showed better performance than CGP. However, quantities of respective symbols are limited due to the fixed assignments of functional symbols to nodes. Therefore, if the number of given nodes is not enough for representing program, the search performance becomes poor. In this paper, to solve the problem, we propose CAP with adaptive node replacements. This method finds unnecessary nodes which are not used for representing programs. Then, new functional symbols, which seems to be useful for constructing good programs, are assigned to the nodes. By this method, given nodes can be utilized efficiently. In order to examine the effectiveness of our method, we apply it to a symbolic regression problem. CAP with adaptive node replacements showed better results than conventional methods, CGP and CAP.
The language in which evolving programs are expressed can have significant impacts on the problem-solving capabilities of a genetic programming system. These impacts stem both from the absolute computational power of ...
详细信息
ISBN:
(纸本)9781450328814
The language in which evolving programs are expressed can have significant impacts on the problem-solving capabilities of a genetic programming system. These impacts stem both from the absolute computational power of the languages that are used, as elucidated by formal language theory, and from the ease with which various computational structures can be produced by random code generation and by the action of genetic operators. Highly expressive languages can facilitate the evolution of programs for any computable function using, when appropriate, multiple data types, evolved subroutines, evolved control structures, evolved data structures, and evolved modular program and data architectures. In some cases expressive languages can even support the evolution of programs that express methods for their own reproduction and variation (and hence for the evolution of their offspring).This tutorial will begin with a comparative survey of approaches to the evolution of programs in expressive programming languages ranging from machine code to graphical and grammatical representations. Within this context it will then provide a detailed introduction to the Push programming language, which was designed specifically for expressiveness and specifically for use in genetic programming systems. Push programs are syntactically unconstrained but can nonetheless make use of multiple data types and express arbitrary control structures, supporting the evolution of complex, modular programs in a particularly simple and flexible way. The Push language will be described and demonstrated, and ten years of Push-based research, including the production of human-competitive results, will be briefly surveyed. The tutorial will conclude with a discussion of recent enhancements to Push that are intended to support the evolution of complex and robust software systems.
It is time consuming for lecturers to manually compile, run and verify students' programming assignments. Moreover, they also need to define test cases for different programming exercises in order to assess studen...
详细信息
It is time consuming for lecturers to manually compile, run and verify students' programming assignments. Moreover, they also need to define test cases for different programming exercises in order to assess students' code. This paper presents a swarm inspired automatic test case generation for Online programming Assessment or Judge (UOJ) system. The UOJ is built with the purpose to assist lecturers in evaluating codes submitted from students and generate test cases for every programming problem automatically. It also helps students to practice and enhance their programming skills. In this study, the mechanism of automatic test case generation was explored using Particle Swarm Optimization (PSO) algorithm and new fitness function is proposed to determine the optimal solution for each problem. Experiments were set up to benchmark between manual and automatic PSO test case generation results to evaluate the efficiency of the proposed method. The preliminary results are satisfactory for automatic test case generation using swarm inspired PSO algorithm in C++ programming assignments.
State-based interactive applications, whether they run on the desktop or as a web application, can be considered as collections of interconnected editors of structured values that allow users to manipulate data. This ...
详细信息
State-based interactive applications, whether they run on the desktop or as a web application, can be considered as collections of interconnected editors of structured values that allow users to manipulate data. This is the view that is advocated by the GEC and iData toolkits, which offer a high level of abstraction to programming desktop and web GUI applications respectively. Special features of these toolkits are that editors have shared, persistent state, and that they handle events individually. In this paper we cast these toolkits within the Arrow framework and present EditorArrow: a single, unified semantic model that defines shared state and event handling. We study the properties of EditorArrow, and of editors in particular. Furthermore, we present the definedness properties of the combinators. A reference implementation of the EditorArrow model is given with some small program examples. We discuss formal reasoning about the model using the proof assistant Sparkle. The availability of this tool has proved to be indispensable in this endeavor.
Multi-scale biological function models are constructed from several elementary models in the different spatial and temporal scales. In the simulation of such models, complex coupling calculation schemes are used for t...
详细信息
Proving refactoring sound with respect to a formal semantics is considered a challenge. In practice, developers write test cases to check their refactoring implementations. However, it is difficult and time consuming ...
详细信息
Proving refactoring sound with respect to a formal semantics is considered a challenge. In practice, developers write test cases to check their refactoring implementations. However, it is difficult and time consuming to have a good test suite since it requires complex inputs (programs) and an oracle to check whether it is possible to apply the transformation. If it is possible, the resulting program must preserve the observable behavior. There are some automated techniques for testing refactoring engines. Nevertheless, they may have limitations related to the program generator (exhaustiveness, setup, expressiveness), automation (types of oracles, bug categorization), time consumption or kinds of refactorings that can be tested. In this paper, we extend our previous technique to test refactoring engines. We improve expressiveness of the program generator for testing more kinds of refactorings, such as Extract Function. Moreover, developers just need to specify the input's structure in a declarative language. They may also set the technique to skip some consecutive test inputs to improve performance. We evaluate our technique in 18 refactoring implementations of Java (Eclipse and JRRT) and C (Eclipse). We identify 76 bugs (53 new bugs) related to compilation errors, behavioral changes, and overly strong conditions. We also compare the impact of the skip on the time consumption and bug detection in our technique. By using a skip of 25 in the program generator, it reduces in 96% the time to test the refactoring implementations while missing only 3.9% of the bugs. In a few seconds, it finds the first failure related to compilation error or behavioral change.
暂无评论