Local experiment on an Apple M5 Mac with 32 GB of memory. Each search received 4,096 tokens for its prompts and answers combined.
What happens when a candidate has no parents?
When I built Aura, the model kept suggesting excerpts from Atomic Habits. Saving the books we had already accepted gave the next request a reason to look elsewhere. That experience left me curious about the opposite choice. Once a population of ideas has a history, when is it worth letting one candidate start without it?
I ran Gemma on a scheduling problem with three ways to introduce a candidate. It could change one coefficient of a rule, combine the job order from one parent with the machine choice from another, or propose an independent rule without seeing the winners. That last candidate is what I call a migrant here.
I checked what each rule did on six probe schedules. Of 24 migrants, 22 assigned jobs in a pattern their search had never seen. Four set a new high score on the training cases. Crossover produced one new pattern and no new training high. Half of the crossover requests received two copies of the current leader, which limited what they could combine.
A new pattern of job assignments across six probe schedules. Rates include every request.
A score higher than every previous training score in that search. Rates include every request.
Best-only retention supplied identical parents in 12 of the 24 crossover requests.
The edit I could explain to a scheduler
Imagine a job that takes 20 time units even on its faster machine. Another takes just two on its faster machine. If I leave the first job until late in the queue, I have fewer ways to hide those 20 units behind work on the other machine.
Gemma produced a one-coefficient edit that puts jobs like that first. The starting rule took jobs in their input order and assigned each to the machine that would finish it soonest. The edit sorted jobs by their faster processing time, longest first. It kept exactly the same machine-choice rule.
This was the highest-scoring training winner among the mutation runs. Across 96 unseen schedules it raised mean quality from 90.24 to 96.02 out of 100. It finished sooner on 59 schedules, tied on 22 and took longer on 15. I can use that rule, describe its failure cases and check it against the original. Long-job-first ordering is a familiar scheduling idea. What Gemma recovered here was a useful choice inside the small policy language I gave it.
Inspect the schedule
Example 5 was the first held-out improvement by the top training-selected mutation policy over the starting policy. The optimum is 50 time units.
Machine A · J1 (7) → J3 (12) → J5 (15) → J9 (19)
Machine B · J2 (2) → J4 (16) → J6 (6) → J7 (3) → J8 (20)
Machine A · J4 (23) → J5 (15) → J3 (12)
Machine B · J8 (20) → J9 (13) → J1 (7) → J6 (6) → J7 (3) → J2 (2)
How I kept the test fair
I gave Gemma four integer coefficients, each between −2 and 2. Three control job priority using the faster processing time, the difference between the machine times, and which machine is faster. The fourth controls how much the machine decision weighs processing time against existing load. That gives all five strategies access to the same 625 settings. The LLM supplies the numbers. A deterministic scheduler executes the rule.
Four conditions crossed two choices. Gemma could freely rewrite the coefficients or follow a cycle of targeted mutations, crossover and migrant requests. Parents came from either the training leader alone or a small selection containing the leader and a behaviorally distant rule. A fifth condition sampled fresh policies without parent feedback. All started with the same fallback rule and ran at the same temperature.
I repeated each search with four seeds. Each got 4,096 tokens, charging full inputs, outputs, repeats and invalid edits. Fresh sampling fit 27 proposals per seed. The other strategies fit 20. All used between 3,942 and 3,988 tokens per search, stopping when the next prompt and output reserve would exceed the allowance.
Selection used 16 training schedules. I froze all 20 winners before scoring them on the same 96 unseen cases. Each case had nine jobs, two machines and 512 possible assignments, so I could compute the optimum exactly. A score of 100 means the rule finished as early as possible. Half the cases had independently sampled machine times. In the other half, each job ran two to five times faster on its preferred machine.
Did mutation beat starting fresh?
Mutation with an archive averaged 95.65 on the unseen schedules. Fresh sampling averaged 95.58. The difference was just 0.07 quality points. Across the four paired seeds, mutation won twice, tied once and lost once. Both mutation retention strategies reached the same held-out scores seed by seed.
The highest average, 96.90, came from asking Gemma to rewrite the training leader freely. The targeted mutation requests had a measurable cost. Of 112 requested one-coefficient edits, 91 followed the rule. Only 29 introduced a new probe behavior, and 15 of those improved the parent’s mean quality on the unseen cases.
For this scheduler, I would keep the longest-first ordering rule and use fresh generation or a simple rewrite as the comparison before paying for more ancestry. A migrant was a dependable way to get a different pattern in this run. Its 22 new patterns and four training records tell me how much work remained after finding something different. Four search seeds leave considerable uncertainty about the ranking of strategies.
Read the scores and token use
| Search | Quality / 100 | Mean tokens |
|---|---|---|
| Fresh sampling | 95.58 | 3942 |
| Rewrite · best parent | 96.90 | 3954 |
| Mutation · best parent | 95.65 | 3968 |
| Rewrite · archive | 96.71 | 3955 |
| Mutation · archive | 95.65 | 3973 |
Why I charged memory to the budget
In an earlier pilot, an archive improved the average score when every strategy got eight attempts. It also used about 3.1 times as many input tokens as fresh sampling. When I charged the whole prompt on every turn, the archive could afford about five answers where fresh sampling could afford fifteen.
Under that equal allowance, the archive gained 0.9 quality points on Qwen, with an exploratory 95% interval from −6.3 to +8.1. It lost 4.7 points on Gemma, with an interval from −6.8 to −2.5. The models and tasks also changed between pilots. The cost of rereading history helps explain why the early advantage was fragile.
Gemma averaged 14.8 fresh attempts and 4.9 archive attempts. Each request spent tokens on its full input and generated output.
What happened when I replaced crossover?
If an independent arrival could bring a new idea into the population, could I buy a better schedule by spending fewer requests on crossover? I ran the comparison on Gemma. The control kept four mutations, one crossover and one migrant per cycle. In the other arm I replaced alternate crossover slots with independent migrants, alternating the first replacement across eight new paired seeds.
I kept the training cases, six probes, temperature, parent-selection rules and 4,096-token allowance from the previous experiment. I repeated the comparison for best-only and archive parents. Within each pair the calls were identical up to the first substitution. Across 32 searches I froze the training winners, then scored them on 192 new schedules from the same two workload families.
All 24 substituted slots added a probe pattern that was new to that search. The paired runs shared identical migrant requests at full token cost, so those 24 slots drew on 12 model calls and seven distinct coefficient lists. None beat the incumbent training score on arrival. The extra migrants raised average coverage by 1.125 distinct patterns per search. Their shorter prompts also gave some searches enough tokens for one more mutation.
Every one of the 16 pairs chose the same winning coefficients as its control. The two mixes therefore scored identically on every unseen schedule, averaging 93.75 out of 100. In 13 pairs the shared starting history already contained the eventual winner before the first replacement. In the other three, the two branches subsequently arrived at the same rule. Eight seeds and a four-coefficient policy language define the reach of this finding.
For this scheduler, I would spend the extra migrant requests when I need a wider set of candidate behaviors. I found no held-out score gain from making that substitution. For each arrival, I now record which decision changed and whether the new rule ever displaced the incumbent.
16 of 16 pairs chose the same rule. Each arm averaged 93.75 quality points out of 100 on the 192 unseen schedules.
Inspect the paired changes
| Seed | Parents | Change in behaviors | Change in quality |
|---|---|---|---|
| 113 | best | +2.00 | 0.00 |
| 113 | archive | +2.00 | 0.00 |
| 127 | best | 0.00 | 0.00 |
| 127 | archive | 0.00 | 0.00 |
| 149 | best | +2.00 | 0.00 |
| 149 | archive | +2.00 | 0.00 |
| 167 | best | +1.00 | 0.00 |
| 167 | archive | +1.00 | 0.00 |
| 181 | best | +1.00 | 0.00 |
| 181 | archive | +1.00 | 0.00 |
| 199 | best | 0.00 | 0.00 |
| 199 | archive | 0.00 | 0.00 |
| 223 | best | +2.00 | 0.00 |
| 223 | archive | +2.00 | 0.00 |
| 241 | best | +1.00 | 0.00 |
| 241 | archive | +1.00 | 0.00 |
