让遗传编程学会看懂代码语义,找潜力股程序。
Learning Semantics-aware Search Operators for Genetic Programming
- 用图神经网络分析代码指令与数据的交互,生成搜索决策指引。
- 在符号回归任务中,比传统方法更快找到高质量解。
- 适合想提升程序合成效率的研究者或工程师。
基于测试的程序合成中,适应度景观极为崎岖,程序的微小修改常导致行为和适应度值的根本性变化。仅依赖适应度指导迭代搜索算法(如遗传编程),尤其结合完全忽略程序行为影响的纯语法搜索算子时,显得过于局限。本文提出一种语义感知的搜索算子,引导搜索不仅关注当前高适应度的候选程序,更关注那些虽当前表现不佳但具有成为高质量解潜力的程序。该方法的核心是一个图神经网络,用于建模程序指令与处理数据之间的交互,并生成节点重要性图谱,作为潜在搜索决策依据。在一系列符号回归基准测试中,所提方法优于传统的基于树的遗传编程及方法消融版本。
原文摘要 · Abstract (English)
Fitness landscapes in test-based program synthesis are known to be extremely rugged, with even minimal modifications of programs often leading to fundamental changes in their behavior and, consequently, fitness values. Relying on fitness as the only guidance in iterative search algorithms like genetic programming is thus unnecessarily limiting, especially when combined with purely syntactic search operators that are agnostic about their impact on program behavior. In this study, we propose a semantics-aware search operator that steers the search towards candidate programs that are valuable not only actually (high fitness) but also only potentially, i.e. are likely to be turned into high-quality solutions even if their current fitness is low. The key component of the method is a graph neural network that learns to model the interactions between program instructions and processed data, and produces a saliency map over graph nodes that represents possible search decisions. When applied to a suite of symbolic regression benchmarks, the proposed method outperforms conventional tree-based genetic programming and the ablated variant of the method.
Thank you to arXiv for use of its open access interoperability. PaperDance 不是 arXiv 官方产品;中文卡片由大模型生成,请以原文为准。