Skip to content

Add cell tower coverage template#58

Open
vladimirvalenta wants to merge 4 commits intomainfrom
vv-cell-towers
Open

Add cell tower coverage template#58
vladimirvalenta wants to merge 4 commits intomainfrom
vv-cell-towers

Conversation

@vladimirvalenta
Copy link
Copy Markdown
Contributor

Summary

  • Add cell_tower_coverage, a prescriptive optimization template for wireless infrastructure coverage planning.
  • Model candidate tower selection, demand-zone assignment, tower capacity, budget, and rollout limits.
  • Include sample input CSVs and README documentation.

Verification

  • python3 -m py_compile cell_tower_coverage.py
  • ./.venv/bin/python cell_tower_coverage/cell_tower_coverage.py

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 7, 2026

The docs preview for this pull request has been deployed to Vercel!

✅ Preview: https://relationalai-docs-2q232hcz1-relationalai.vercel.app/build/templates
🔍 Inspect: https://vercel.com/relationalai/relationalai-docs/5jmAHZanwZYSBCRbmA65QMth8hdZ

Copy link
Copy Markdown
Collaborator

@cafzal cafzal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approve with one small fix

Clean MCLP template — fills a real portfolio gap (single-reasoner site-selection prescriptive, distinct from telco_network_recovery's upgrade planning and subscriber_retention's churn ML). Code, sample data, and narrative all hold up. py_compile and ruff check both pass.

Please fix before merge

industry: "Energy & Utilities"industry: "Telecommunications" (README.md:6). Title, tags, entities, and units are all wireless/telco; mis-classification would mislead customers browsing by industry. Matches subscriber_retention and telco_network_recovery.

Nits (optional)

  • Drop the # Cell Tower Coverage H1 at README.md:19 — sample-template says front-matter title: is sufficient.
  • Section headers drift from sample-template canonical (# Configure coverage policy# Configure inputs; # Solve# Solve and check solution). Meaning is clear; aligning helps cross-template readers.
  • Replace Objective: covered population = ... in the README expected-output block with a real number from a run, so users can sanity-check.

Highlights worth keeping

  • Pre-solve validation block (cell_tower_coverage.py:49-73) catches dangling IDs and unreachable zones — not required but a great pattern.
  • Sample data is domain-realistic: tower types (Macro / Small Cell), plausible build-cost and distance/signal ranges, names like "Midtown Rooftop" and "East Utility Pole" that read like a real screening shortlist.
  • Combinatorial enough to be non-trivial: 6 sites × 10 zones × 19 feasible pairs with capacity + budget + cardinality interacting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants