This package reads data files for different location problems instances:
- (Capacitated) Facility Location Problems
(P-Median ProblemsCapacitated)- Maximum Coverage Problems
The type used by (Capacitated) Facility Location Problems is FacilityLocationProblem, defined as follows:
struct FacilityLocationProblem
name::String # Instance name
capacities::Vector{Int64} # Facilities capacities
demands::Vector{Int64} # Customers demands
fixed_costs::Vector{Float64} # Fixed costs to open facilities
costs::Matrix{Float64} # Costs to assign facilities to customers
lb::Float64 # Lower bound (-Inf if not known)
ub::Float64 # Upper bound ( Inf if not known)
endSome classical instances from the literature can be downloaded on demand from ORLib page. For example, to download and load instance cap41:
data = loadFacilityLocationProblem(:cap41)See the full list on ORLib UFLP page, ORLib CFLP page or call the function getFacilityLocationInstances.
Optionally, it is possible to set the facilities' capacity (mandatory for instances capa, capb, and capc):
data = loadFacilityLocationProblem(:capa, 8000)The type used by ( P-Median Problems is Capacitated)PMedianProblem, defined as follows:
struct PMedianProblem
name::String # Instance name
medians::Int64 # Number of medians (p)
capacity::Int64 # Medians capacities
demands::Vector{Int64} # Customers demands
costs::Matrix{Float64} # Costs matrix (distances)
x::Vector{Int64} # Customers x coordinates
y::Vector{Int64} # Customers y coordinates
lb::Float64 # Lower bound (-Inf if not known)
ub::Float64 # Upper bound ( Inf if not known)
endSome classical (Capacitated) P-Median instances from the literature are preloaded. For example, to load instance pmedcap01:
data = loadPMedianProblem(:pmedcap01)See the full list or call the function getPMedianInstances.
The type used by Maximum Coverage Problems is MaximumCoverageProblem, defined as follows:
struct MaximumCoverageProblem
name::String # Instance name
medians::Int64 # Number of medians (p)
distance::Int64 # Coverage distance
demands::Vector{Int64} # Customers demands
coverage::Vector{Vector{Int64}} # Coverage sets
x::Vector{Int64} # Customers x coordinates
y::Vector{Int64} # Customers y coordinates
lb::Float64 # Lower bound (-Inf if not known)
ub::Float64 # Upper bound ( Inf if not known)
endThe package loads Capacitated P-Median instances as Maximum Coverage Problems, and the user must input the maximum coverage distance. For example, to load instance pmedcap01 with maximum coverage distance of 10:
data = loadMaximumCoverageProblem(:pmedcap01, 10)The medians capacities are ignored, and the coverage sets are built using calculated costs and given coverage distance.
This package also loads custom instances (following ORLib format):
data = loadTypeOfProblem("/path/to/your/instance.txt", optional_arguments)FacilityLocationProblems is a registered Julia Package (yay!). You can install FacilityLocationProblems through the Julia package manager. Open Julia's interactive session (REPL) and type:
] add FacilityLocationProblems- ORLib's Uncapacitated Facility Location page
- ORLib's Capacitated Facility Location page
- ORLib's Uncapacitated P-Median page (this package does not read those instances)
- ORLib's Capacitated P-Median page
- Sobolev Institute of Mathematics' CFLP Page (this package does not read those instances)
- Instituto Nacional de Pesquisas Espaciais' P-Median and Max Cover Page (this package does not read those instances)
- KnapsackLib.jl: Knapsack algorithms in Julia
- LotSizingProblems.jl: Lot Sizing Problems Lib
- AssignmentProblems.jl: Assignment Problems Lib
- InventoryRoutingProblems.jl: Inventory Routing Problems Lib
- BPPLib.jl: Bin Packing and Cutting Stock Problems Lib
- CARPData.jl: Capacitated Arc Routing Problem Lib
- MDVSP.jl: Multiple-Depot Vehicle Scheduling Problem Lib
- CVRPLIB.jl: Capacitated Vehicle Routing Problem Lib
- TSPLIB.jl: Traveling Salesman Problem Lib