← Back to Skills Marketplace
wu-uk

map-optimization-strategy

by wu-uk · GitHub ↗ · v0.1.0 · MIT-0
cross-platform ✓ Security Clean
80
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install civ6-adjacency-optimizer-map-optimization-strategy
Description
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 satisf...
README (SKILL.md)

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
Usage Guidance
This skill is a low-risk, instruction-only guide (no downloads, no credentials). Before installing, consider: if you or an agent implement the provided pseudocode, review any generated code before running it; do not paste secrets into prompts; and test implementations on non-sensitive data. If you expect the agent to autonomously execute code derived from these instructions, ensure your agent's runtime sandboxing and execution policies are appropriate.
Capability Analysis
Type: OpenClaw Skill Name: civ6-adjacency-optimizer-map-optimization-strategy Version: 0.1.0 The skill bundle contains a strategic guide (SKILL.md) for solving spatial constraint optimization problems, likely intended for game strategy like Civilization VI. It provides pseudocode and logical phases for pruning search spaces and identifying high-value placements without any malicious code, network activity, or prompt injection attempts.
Capability Assessment
Purpose & Capability
The name and description match the SKILL.md content: a three-phase algorithmic strategy for placing items on a map. There are no unexpected environment variables, binaries, or config paths requested that would be unrelated to the stated purpose.
Instruction Scope
SKILL.md contains algorithmic guidance and a small Python skeleton for implementing the strategy. It does not instruct the agent to read system files, access environment variables, call external endpoints, or exfiltrate data. The scope stays within describing how to prune, score, and search placements.
Install Mechanism
There is no install spec and no code files. This instruction-only format means nothing is written to disk or downloaded by the skill itself.
Credentials
The skill declares no required environment variables, credentials, or config paths. It does not request broad or unrelated secrets, which is proportionate for a strategy guide.
Persistence & Privilege
always is false and the skill does not request persistent presence or modify other skills or system-wide settings. Default autonomous invocation is allowed but that is the platform norm and not a concern here given the skill's limited scope.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install civ6-adjacency-optimizer-map-optimization-strategy
  3. After installation, invoke the skill by name or use /civ6-adjacency-optimizer-map-optimization-strategy
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.1.0
Bulk publish from all-task-skills-dedup
Metadata
Slug civ6-adjacency-optimizer-map-optimization-strategy
Version 0.1.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is 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 satisf... It is an AI Agent Skill for Claude Code / OpenClaw, with 80 downloads so far.

How do I install map-optimization-strategy?

Run "/install civ6-adjacency-optimizer-map-optimization-strategy" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is map-optimization-strategy free?

Yes, map-optimization-strategy is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does map-optimization-strategy support?

map-optimization-strategy is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created map-optimization-strategy?

It is built and maintained by wu-uk (@wu-uk); the current version is v0.1.0.

💬 Comments