28,197 research outputs found
A rewriting grammar for heat exchanger network structure evolution with stream splitting
The design of cost optimal heat exchanger networks is a difficult optimisation problem due
both to the nonlinear models required and also the combinatorial size of the search space.
When stream splitting is considered, the combinatorial aspects make the problem even harder.
This paper describes the implementation of a two level evolutionary algorithm based on a
string rewriting grammar for the evolution of the heat exchanger network structure. A biological analogue of genotypes and phenotypes is used to describe structures and specific solutions respectively. The top level algorithm evolves structures while the lower level optimises specific
structures. The result is a hybrid optimisation procedure which can identify the best structures including stream splitting. Case studies from the literature are presented to demonstrate the capabilities of the novel procedure
Feedback Generation for Performance Problems in Introductory Programming Assignments
Providing feedback on programming assignments manually is a tedious, error
prone, and time-consuming task. In this paper, we motivate and address the
problem of generating feedback on performance aspects in introductory
programming assignments. We studied a large number of functionally correct
student solutions to introductory programming assignments and observed: (1)
There are different algorithmic strategies, with varying levels of efficiency,
for solving a given problem. These different strategies merit different
feedback. (2) The same algorithmic strategy can be implemented in countless
different ways, which are not relevant for reporting feedback on the student
program.
We propose a light-weight programming language extension that allows a
teacher to define an algorithmic strategy by specifying certain key values that
should occur during the execution of an implementation. We describe a dynamic
analysis based approach to test whether a student's program matches a teacher's
specification. Our experimental results illustrate the effectiveness of both
our specification language and our dynamic analysis. On one of our benchmarks
consisting of 2316 functionally correct implementations to 3 programming
problems, we identified 16 strategies that we were able to describe using our
specification language (in 95 minutes after inspecting 66, i.e., around 3%,
implementations). Our dynamic analysis correctly matched each implementation
with its corresponding specification, thereby automatically producing the
intended feedback.Comment: Tech report/extended version of FSE 2014 pape
- …