Optimizing Mining Fleet Deployment and Operations via QUBO and Mixed-Integer Programming
Problem Definition
The core objective involves determining an optimal acquisition and operational strategy for mining equipment, specifically excavators and haul trucks, over a 5-year planning horizon. The goal is to maximize net profit by balancing revenue generation against operational costs, including labor, maintenance, fuel, and capital expenditure, while adhering to budget constraints and equipment compatibility requirements.
Mathematical Modeling
Objective Function
The primary metric to optimize is the total net profit $T$ over the duration $Y=5$. This is expressed as the cumulative difference between annual revenue $R_t$ and total operational cost $C_t$:
$$ T = \sum_{t=1}^{Y} (R_t - C_t) $$
Revenue is derived from the total volume of ore extracted, determined by the matching efficiency between specific excavator models and truck types. Costs encompass fixed acquisition limits and variable operating expenses (fuel, salary, maintenance).
Key Constraints
- Budget Constraint: Total capital expenditure cannot exceed the starting fund ($B_{start}$).
- Compatibility: Excavator-truck pairings must adhere to physical and technical specifications (volume ratios, loading capacities).
- Resource Limits: Minimum and maximum quantities for each equipment type based on available workforce or infrastructure.
- Diversity Requirement: A minimum number of distinct excavator models must be included in the fleet to insure operational flexibility.
Variable Definitions
Let $x_{ij}$ be a binary variable indicating if model $i$ of excavators is paired with $j$ trucks. Let $n_i$ and $m_j$ represent the counts of specific equipment typpes.
Algorithm Implementation
To solve this combinatorial optimization problem efficiently, we formulate it as a Quadratic Unconstrained Binary Optimization (QUBO) model suitable for quantum annealers or hybrid solvers.
Data Configuration
The following Python structure organizes equipment parameters, replacing static lists with structured dictionaries for maintainability.
import numpy as np
from dimod import BinaryQuadraticModel
from dwave.system import LeapHybridSampler
from dwave.system.composites.singlethreaded import EmbeddingComposite
# Equipment Parameter Definitions
class EquipmentSpecs:
def __init__(self):
self.excavators = {
'E1': {'dug_volume': 0.9, 'efficiency': 190, 'consumption': 28, 'cost': 100},
'E2': {'dug_volume': 1.2, 'efficiency': 175, 'consumption': 30, 'cost': 140},
'E3': {'dug_volume': 1.8, 'efficiency': 165, 'consumption': 34, 'cost': 200},
'E4': {'dug_volume': 2.1, 'efficiency': 150, 'consumption': 38, 'cost': 320}
}
self.trucks = {
'T1': {'load_capacity': 15, 'consumption': 22, 'labor': 7000},
'T2': {'load_capacity': 22, 'consumption': 25, 'labor': 7500},
'T3': {'load_capacity': 33, 'consumption': 28, 'labor': 8000}
}
self.market_params = {
'ore_price': 20, # per cubic meter
'oil_price': 7, # per liter
'daily_work_hours': 8,
'operating_days_per_month': 20,
'years_horizon': 5,
'max_budget': 4000 # in ten thousand RMB
}
data = EquipmentSpecs()
QUBO Formulation Logic
The constrained optimization problem is transformed into an unconstrained quadratic form $H(x)$. We introduce penalty terms for constraints such as budget overruns or mismatched pairings.
- Objective Term: Maximize Revenue minus Cost. $$ H_{obj} = \sum_{i,j} (\text{Profit}{ij}) x{ij} $$
- Penalty Terms: Add large coefficients to violate budget or compatibility. $$ H_{const} = P \cdot (\sum x - \text{Limit})^2 $$
Solver Execution
A standard implementation using D-Wave's Leap Hybrid Solver demonstrates the solution pipeline.
def solve_mining_qubo(sampler_type='hybrid'):
bqm = BinaryQuadraticModel('BINARY')
# Define variables representing equipment purchase decisions
exc_vars = data.excavators.keys()
trk_vars = data.trucks.keys()
# Construct linear biases (costs/revenues)
for i in exc_vars:
param = data.excavators[i]
# Linear term based on profit potential vs cost
linear_bias = -(param['cost'] * 10000 + param['consumption'] * data.market_params['oil_price'] * 8 * 20 * data.market_params['years_horizon'] * 12)
bqm.set_linear(i, linear_bias)
# Add interactions for compatible pairs (Excavator E -> Truck T)
compat_matrix = {
('E1', 'T1'): 1, ('E1', 'T2'): 0,
('E2', 'T1'): 1, ('E2', 'T2'): 1, ('E2', 'T3'): 0
}
for (e, t), val in compat_matrix.items():
if val > 0:
interaction_cost = - (data.excavators[e]['efficiency'] * data.trucks[t]['load_capacity'] * data.market_params['ore_price']) / 1e6
bqm.add_interaction(e, t, interaction_cost)
# Apply Budget Penalty
# Assuming max budget constraint enforced via quadratic penalty
budget_penalty = 1000000 * (bqm.energy({'all_e': 10, 'all_t': 10}) - data.market_params['max_budget']) ** 2
if sampler_type == 'hybrid':
sampler = LeapHybridSampler()
else:
sampler = EmbeddingComposite.from_sampler(DWaveSampler())
sampleset = sampler.sample(bqm)
return sampleset.first().samples[0]
if __name__ == '__main__':
solution = solve_mining_qubo()
print(f"Optimized Equipment Plan: {solution}")
Extended Applications
The QUBO methodology developed for mining logistics extends to other complex resource allocation scenarios.
Traffic Signal Optimization
Traffic light timing can be modeled where nodes represent intersections and edges represent traffic flow. The objective minimizes total vehicle wait time subject to green-light duration bounds. Variables denote state transitions of signals at discrete time steps.
E-Commerce Recommendation
In retail, user-item interactions are optimized to maximize conversion probability. The QUBO model selects product subsets for specific user segments, ensuring diversity (minimizing redundancy) while maximizing relevance scores derived from historical behavior matrices.
Power Grid Scheduling
Generator dispatch problems involve minimizing fuel consumption and emissions while meeting load demand. Nodes represent power stations, and coupling terms represent transmission losses. Quantum solvers assist in finding global minima in non-convex landscapes more efficiently than traditional gradient descent methods.