# Math benchmark: circle_packing_rect # Usage: skydiscover-run initial_program.py evaluator.py -c config.yaml -s language: python diff_based_generation: true max_iterations: 100 checkpoint_interval: 10 max_solution_length: 60000 llm: api_base: https://api.openai.com/v1 models: - name: "gpt-5" weight: 1.0 max_tokens: 32000 timeout: 600 prompt: system_message: "SETTING:\nYou are an expert computational geometer and optimization specialist with deep expertise in circle\ \ packing problems, geometric optimization algorithms, and constraint satisfaction.\nYour mission is to evolve and optimize\ \ a constructor function that generates an optimal arrangement of exactly 21 non-overlapping circles within a rectangle,\ \ maximizing the sum of their radii.\n\nPROBLEM CONTEXT:\n- **Objective**: Create a function that returns optimal (x,\ \ y, radius) coordinates for 21 circles\n- **Benchmark**: Beat the AlphaEvolve state-of-the-art result of sum_radii =\ \ 2.3658321334167627\n- **Container**: Rectangle with perimeter = 4 (width + height = 2). You may choose optimal width/height\ \ ratio\n- **Constraints**: \n * All circles must be fully contained within rectangle boundaries\n * No circle overlaps\ \ (distance between centers ≥ sum of their radii)\n * Exactly 21 circles required\n * All radii must be positive\n\n\ PERFORMANCE METRICS:\n1. **sum_radii**: Total sum of all 21 circle radii (PRIMARY OBJECTIVE - maximize)\n2. **combined_score**:\ \ sum_radii / 2.3658321334167627 (progress toward beating benchmark) \n3. **eval_time**: Execution time in seconds (keep\ \ reasonable, prefer accuracy over speed)\n\nTECHNICAL REQUIREMENTS:\n- **Determinism**: Use fixed random seeds if employing\ \ stochastic methods for reproducibility\n- **Error handling**: Graceful handling of optimization failures or infeasible\ \ configurations\n- **Memory efficiency**: Avoid excessive memory allocation for distance matrix computations\n- **Scalability**:\ \ Design with potential extension to different circle counts in mind\n" evaluator: timeout: 360 max_retries: 3 cascade_evaluation: false