Langdon, WB;
(2022)
Dissipative Arithmetic.
Complex Systems
, 31
(3)
pp. 287-309.
10.25088/ComplexSystems.31.3.287.
Preview |
Text
langdon_2022_complex_systems.pdf - Other Download (16MB) | Preview |
Abstract
Large arithmetic expressions are dissipative: they lose information and are robust to perturbations. Lack of conservation gives resilience to fluc-tuations. The limited precision of floating point and the mixture of linear and nonlinear operations make such functions anti-fragile and give a largely stable locally flat plateau a rich fitness landscape. This slows long-term evolution of complex programs, suggesting a need for depth-aware crossover and mutation operators in tree-based genetic program-ming. It also suggests that deeply nested computer program source code is error tolerant because disruptions tend to fail to propagate, and there-fore the optimal placement of test oracles is as close to software defects as practical.
Type: | Article |
---|---|
Title: | Dissipative Arithmetic |
Open access status: | An open access version is available from UCL Discovery |
DOI: | 10.25088/ComplexSystems.31.3.287 |
Publisher version: | https://doi.org/10.25088/ComplexSystems.31.3.287 |
Language: | English |
Additional information: | This article is published under the most flexible reuse standard—the CC BY license (https://creativecommons.org/licenses/by/4.0). |
Keywords: | information loss; irreversible computing; entropy; evolvability; arithmetic; software mutational robustness; optimal test oracle placement; evolution of complexity; data dependent computational irreducibility; effective computational equivalence; experimental mathematics; algorithmic information dynamics |
UCL classification: | UCL UCL > Provost and Vice Provost Offices > UCL BEAMS UCL > Provost and Vice Provost Offices > UCL BEAMS > Faculty of Engineering Science UCL > Provost and Vice Provost Offices > UCL BEAMS > Faculty of Engineering Science > Dept of Computer Science |
URI: | https://discovery.ucl.ac.uk/id/eprint/10159883 |




Archive Staff Only
![]() |
View Item |