Question about Crossover Operator #412
-
|
Just to double-check, as I understand it, OpenEvolve does not explicitly implement a crossover operator for program mutation, unlike ShinkaEvolve. Am I correct? |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments
-
|
Yes, OpenEvolve does not have an explicit crossover operator. It uses an "inspirations" mechanism where the LLM is shown a parent program plus several other high-performing programs as context, and asked to improve/mutate. The LLM might implicitly draw ideas from those programs, but there is no dedicated crossover step or prompt that explicitly instructs combining multiple programs. ShinkaEvolve does indeed have a dedicated, explicit crossover operator. It has a separate |
Beta Was this translation helpful? Give feedback.
-
|
@codelion Thank you for your reply. Your response resolves my question :) I have another question. I am currently running all the examples (in the
|
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
|
Also the recent ADRS blog post - https://www.sigops.org/2026/let-the-barbarians-in-how-ai-can-accelerate-systems-performance-research/ has some comparision between OpenEvolve, ShinkaEvolve, and GEPA. |
Beta Was this translation helpful? Give feedback.
Yes, OpenEvolve does not have an explicit crossover operator. It uses an "inspirations" mechanism where the LLM is shown a parent program plus several other high-performing programs as context, and asked to improve/mutate. The LLM might implicitly draw ideas from those programs, but there is no dedicated crossover step or prompt that explicitly instructs combining multiple programs.
ShinkaEvolve does indeed have a dedicated, explicit crossover operator. It has a separate
prompts_cross.py(see https://github.com/SakanaAI/ShinkaEvolve/blob/main/shinka/prompts/prompts_cross.py) with its own system prompt that literally tells the LLM: "You are given multiple code scripts implementing the same…