摘要
arXiv:2502.10802v1 类型:交叉
摘要:大型语言模型(LLMs)在自动代码生成方面展现了卓越的表现。然而,现有方法往往依赖预定义的测试案例,在无法获取这些案例的情况下,变得不可行。虽然先前的工作探讨了程序和测试案例之间的过滤技术,但忽视了测试案例的细化。为解决这一局限性,我们提出了一种名为CoCoEvo的新颖的基于LLM的共进化框架,该框架同时进化程序和测试案例。CoCoEvo通过直接从自然语言问题描述和函数头部生成程序和测试案例,消除了对预定义测试案例的依赖。该框架采用专门的进化算子,包括基于LLM的交叉和变异算子用于程序进化,以及一个测试案例生成算子用于测试案例进化。此外,我们提出了优化策略,如交叉率调度器以平衡探索与收敛,以及用于测试案例选择的多目标优化方法。在多个最先进的LLM上的实验结果表明,CoCoEvo超越了现有方法,在自动代码生成和测试方面达到了最先进的性能。这些结果强调了共进化技术在推进自动化编程领域方面的潜力。