facility-location-problem

Solve facility location problems using PuLP optimization and NumPy.

56|16|Updated Oct 18, 2025
One-click install
npx skills add https://github.com/kishorkukreja/awesome-supply-chain --skill facility-location-problem
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: facility-location-problem
Source: https://github.com/kishorkukreja/awesome-supply-chain/tree/main/skills/facility-location-problem
Command: npx skills add https://github.com/kishorkukreja/awesome-supply-chain --skill facility-location-problem

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires numpy, pulp, and includes scripts (resource) and references (resource) components.

What problem does it solve?

This Skill helps determine the optimal locations for facilities (like warehouses or plants) to minimize total costs while meeting demand and capacity constraints.

Core Features & Use Cases

  • Problem Classification: Understand and solve Uncapacitated (UFLP), Capacitated (CFLP), p-Median, and p-Center problems.
  • Mathematical Modeling: Provides formulations for various FLP types.
  • Solution Methods: Implements exact methods (MIP with PuLP), greedy heuristics, local search, and metaheuristics (Simulated Annealing, Genetic Algorithm).
  • Use Case: A retail company needs to decide where to open new distribution centers to serve its stores efficiently, considering opening costs, transportation costs, and store demands.

Quick Start

Use the facility-location-problem skill to solve an uncapacitated facility location problem with the provided cost data.

Frequently Asked Questions about facility-location-problem

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I optimize warehouse or facility placement to minimize transportation and operating costs?

You optimize facility placement by formulating the network design problem as a mixed-integer program using PuLP, minimizing fixed and transportation costs while satisfying demand constraints. This Skill solves uncapacitated and capacitated facility location problems to find optimal site selection.

What is the difference between p-Median and p-Center problems in network design?

The p-Median problem minimizes the total weighted distance between demand nodes and facilities, while the p-Center problem minimizes the maximum distance to any demand node. Both are supported facility location problem types solved here using mathematical programming.

Can I solve large-scale facility location problems using heuristics instead of exact MIP methods?

Yes, you can solve large-scale facility location problems using greedy heuristics, local search, or metaheuristics like Simulated Annealing and Genetic Algorithms. These methods provide near-optimal site selection solutions when exact mixed-integer programming becomes computationally expensive.

How do I set up a capacitated facility location problem with Python using PuLP and NumPy?

You set up a capacitated facility location problem by defining facility capacities, fixed costs, and transportation cost matrices using NumPy arrays, then formulating the MIP model in PuLP. The Skill automates this mathematical modeling to minimize total costs under capacity constraints.

When should I choose capacitated over uncapacitated facility location models?

Choose the capacitated facility location problem when your facilities have strict throughput or storage limits, as it enforces capacity constraints during optimization. Use the uncapacitated model when facilities can handle unlimited demand, focusing only on fixed and transportation cost minimization.

What are the limitations of using mathematical programming for strategic site selection?

Mathematical programming for site selection faces computational scalability limits with large candidate site and demand node sets, requiring heuristic methods like Simulated Annealing. Additionally, static models may not capture dynamic demand fluctuations or real-world routing complexities without further network design analysis.