Skip to content
cccskills
FreePublished on GitHub

map-optimization-strategy

Strategy for solving constraint optimization problems on spatial maps. Use when you need to place items on a grid/map to maximize some objective while satisfying constraints.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md4.3 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Map-Based Constraint Optimization Strategy

A systematic approach to solving placement optimization problems on spatial maps. This applies to any problem where you must place items on a grid to maximize an objective while respecting placement constraints.

Why Exhaustive Search Fails

Exhaustive search (brute-force enumeration of all possible placements) is the worst approach:

  • Combinatorial explosion: Placing N items on M valid tiles = O(M^N) combinations
  • Even small maps become intractable (e.g., 50 tiles, 5 items = 312 million combinations)
  • Most combinations are clearly suboptimal or invalid

The Three-Phase Strategy

Phase 1: Prune the Search Space

Goal: Eliminate tiles that cannot contribute to a good solution.

Remove tiles that are:

  1. Invalid for any placement - Violate hard constraints (wrong terrain, out of range, blocked)
  2. Dominated - Another tile is strictly better in all respects
  3. Isolated - Too far from other valid tiles to form useful clusters
Before: 100 tiles in consideration
After pruning: 20-30 candidate tiles

This alone can reduce search space by 70-90%.

Phase 2: Identify High-Value Spots

Goal: Find tiles that offer exceptional value for your objective.

Score each remaining tile by:

  1. Intrinsic value - What does this tile contribute on its own?
  2. Adjacency potential - What bonuses from neighboring tiles?
  3. Cluster potential - Can this tile anchor a high-value group?

Rank tiles and identify the top candidates. These are your priority tiles - any good solution likely includes several of them.

Example scoring:
- Tile A: +4 base, +3 adjacency potential = 7 points (HIGH)
- Tile B: +1 base, +1 adjacency potential = 2 points (LOW)

Phase 3: Anchor Point Search

Goal: Find placements that capture as many high-value spots as possible.

  1. Select anchor candidates - Tiles that enable access to multiple high-value spots
  2. Expand from anchors - Greedily add placements that maximize marginal value
  3. Validate constraints - Ensure all placements satisfy requirements
  4. Local search - Try swapping/moving placements to improve the solution

For problems with a "center" constraint (e.g., all placements within range of a central point):

  • The anchor IS the center - try different center positions
  • For each center, the reachable high-value tiles are fixed
  • Optimize placement within each center's reach

Algorithm Skeleton

def optimize_placements(map_tiles, constraints, num_placements):
    # Phase 1: Prune
    candidates = [t for t in map_tiles if is_valid_tile(t, constraints)]

    # Phase 2: Score and rank
    scored = [(tile, score_tile(tile, candidates)) for tile in candidates]
    scored.sort(key=lambda x: -x[1])  # Descending by score
    high_value = scored[:top_k]

    # Phase 3: Anchor search
    best_solution = None
    best_score = 0

    for anchor in get_anchor_candidates(high_value, constraints):
        solution = greedy_expand(anchor, candidates, num_placements, constraints)
        solution = local_search(solution, candidates, constraints)

        if solution.score > best_score:
            best_solution = solution
            best_score = solution.score

    return best_solution

Key Insights

  1. Prune early, prune aggressively - Every tile removed saves exponential work later

  2. High-value tiles cluster - Good placements tend to be near other good placements (adjacency bonuses compound)

  3. Anchors constrain the search - Once you fix an anchor, many other decisions follow logically

  4. Greedy + local search is often sufficient - You don't need the global optimum; a good local optimum found quickly beats a perfect solution found slowly

  5. Constraint propagation - When you place one item, update what's valid for remaining items immediately

Common Pitfalls

  • Ignoring interactions - Placing item A may change the value of placing item B (adjacency effects, mutual exclusion)
  • Over-optimizing one metric - Balance intrinsic value with flexibility for remaining placements
  • Forgetting to validate - Always verify final solution satisfies ALL constraints

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Perform various data analysis on SEC 13-F and obtain some insights of fund activities such as number of holdings, AUM, and change of holdings between two quarters.

The English summary is being prepared. Showing the original description.

benchflow-ai/skillsbench1.9KUpdated Oct 13, 2026

AC branch pi-model power flow equations (P/Q and |S|) with transformer tap ratio and phase shift, matching `acopf-math-model.md` and MATPOWER branch fields. Use when computing branch flows in either direction, aggregating bus injections for nodal balance, checking MVA (rateA) limits, computing branch loading %, or debugging sign/units issues in AC power flow.

The English summary is being prepared. Showing the original description.

benchflow-ai/skillsbench1.9KUpdated Oct 13, 2026

Redact text from PDF documents for blind review anonymization

The English summary is being prepared. Showing the original description.

benchflow-ai/skillsbench1.9KUpdated Oct 13, 2026

Use when checking simplified ADA-derived plan-view bathroom accessibility constraints such as turning space, door clear width, toilet centerline, grab bars, and lavatory knee/toe clearance.

The English summary is being prepared. Showing the original description.

benchflow-ai/skillsbench1.9KUpdated Oct 13, 2026

Analyze failed GitHub Action jobs for a pull request.

The English summary is being prepared. Showing the original description.

benchflow-ai/skillsbench1.9KUpdated Oct 13, 2026

Use when extracting plan-view architectural geometry from DXF files with semantic CAD layers, especially when outputs must normalize rooms, doors, fixtures, clearances, and grab bars into machine-checkable JSON.

The English summary is being prepared. Showing the original description.

benchflow-ai/skillsbench1.9KUpdated Oct 13, 2026

See all skills by benchflow-ai

Report a problem with this skill