optimization-computation
July 2, 2025
14 min read

Knapsack and Portfolio Optimization - Computational Challenges and Quantum Solutions

Comprehensive guide to Knapsack problems and portfolio optimization: why they're NP-hard, computational complexity, and how quantum computing can provide advantages for large-scale optimization.

QuantFenix Team
Feature image

The Knapsack Problem and Portfolio Optimization are fundamental combinatorial optimization problems with wide applications in finance, procurement, and resource allocation. Both are computationally challenging and are promising test cases for quantum and hybrid methods — on the right formulations and instances.


What is the Knapsack Problem?

The Knapsack Problem asks: _Given a set of items with weights and values, and a knapsack with a weight capacity, which items should be selected to maximize total value without exceeding the capacity?_

Problem Variants

0/1 Knapsack

  • Constraint: Each item can be selected at most once
  • Applications: Investment selection, project portfolio
  • Complexity:
  • Decision variant is NP-complete
  • Weakly NP-hard; admits pseudopolynomial DP O(nW)
  • FPTAS exists: (1+ε)-approximation in polynomial time

Fractional Knapsack

  • Constraint: Items can be divided (take partial amounts)
  • Applications: Resource allocation; solved exactly by a greedy algorithm (sort by value/weight)
  • Complexity: O(n log n) due to sorting

Multiple Knapsack

  • Constraint: Multiple knapsacks with different capacities
  • Applications: Multi-warehouse inventory, distributed systems
  • Complexity: NP-hard

Bin Packing

  • Constraint: Minimize number of knapsacks needed
  • Applications: Shipping containers, memory allocation
  • Complexity: Strongly NP-hard; related but not the same as knapsack

Portfolio Optimization: Financial Knapsack

Modern Portfolio Theory (MPT)

Portfolio optimization extends the knapsack concept to financial markets:

Objective Function

Maximize: Expected Return - λ × Risk
Subject to: Σ(w_i) = 1, w_i ≥ 0

Where:

  • w_i = weight of asset i in portfolio
  • λ = risk aversion parameter
  • Risk = portfolio variance/covariance

Constraints

  • Budget constraint: Total investment = available capital
  • Long-only: No short selling (w_i ≥ 0)
  • Sector limits: Maximum exposure per sector
  • Liquidity constraints: Minimum trade sizes
  • Transaction costs: Bid-ask spreads, commissions

Real-World Complexity

Market Constraints

  • Cardinality constraints: Maximum number of assets
  • Turnover limits: Maximum change from current portfolio
  • Regulatory constraints: Sector concentration limits
  • ESG requirements: Environmental, social, governance filters

Dynamic Factors

  • Market volatility: Changing risk parameters
  • Liquidity changes: Asset availability varies
  • Transaction costs: Market impact, bid-ask spreads
  • Rebalancing frequency: Monthly, quarterly, or event-driven

Why portfolios get hard in practice

In practice, teams do not only balance return and risk. They also face cardinality limits (max number of assets), sector and liquidity limits, and transaction costs or buy-in thresholds. These discrete constraints are what make the problem computationally difficult — not the classical Markowitz core itself.

Computational Complexity Analysis

Classical Complexity

0/1 Knapsack

  • Time complexity: O(n × W) for dynamic programming (pseudopolynomial)
  • Space complexity: O(W) with 1-row DP optimization

Portfolio Optimization

  • Dense convex QP (Markowitz): solved efficiently by standard QP methods (e.g., Cholesky factorization), often O(n³) for dense problems
  • With cardinality/thresholds/transaction costs: becomes MIQP or non-convex QCQP; scalability depends on solver cuts, formulations, and heuristics

Why These Problems Are Hard

1. Exponential Solution Space

Illustrative combinatorial growth:
n items: 2^n possible combinations
10 items: 1,024 combinations
20 items: 1,048,576 combinations
50 items: ~1.1 × 10^15 combinations

2. Constraint Interactions

  • Budget constraint: Affects all asset selections
  • Risk constraint: Non-linear, affects multiple assets
  • Sector limits: Couples related assets
  • Transaction costs: Makes problem non-convex

3. Multi-Objective Optimization

  • Return maximization: Higher expected returns
  • Risk minimization: Lower portfolio volatility
  • Cost minimization: Lower transaction costs
  • Diversification: Spread risk across assets

Classical Algorithms and Limitations

Exact Algorithms

Dynamic Programming (0/1 Knapsack)

def knapsack_dp(items, capacity):
    n = len(items)
    dp = [[0 for _ in range(capacity + 1)] for _ in range(n + 1)]

    for i in range(1, n + 1):
        for w in range(capacity + 1):
            if items[i-1].weight <= w:
                dp[i][w] = max(
                    dp[i-1][w],
                    dp[i-1][w-items[i-1].weight] + items[i-1].value
                )
            else:
                dp[i][w] = dp[i-1][w]

    return dp[n][capacity]

Limitations:

  • Memory: O(W) with 1-row optimization; otherwise O(n × W)
  • Time: O(n × W) pseudopolynomial time

Branch-and-Bound

  • How it works: Systematically explores solution space
  • Advantages: Can find optimal solutions
  • Limitations: Exponential worst-case time; performance is instance-dependent

Heuristic Algorithms

Genetic Algorithms

def genetic_algorithm_knapsack(items, capacity, population_size=100):
    # Initialize random population
    population = [random_solution(items, capacity) for _ in range(population_size)]

    for generation in range(max_generations):
        # Evaluate fitness
        fitness = [evaluate(solution, items, capacity) for solution in population]

        # Selection, crossover, mutation
        new_population = []
        for _ in range(population_size):
            parent1 = tournament_selection(population, fitness)
            parent2 = tournament_selection(population, fitness)
            child = crossover(parent1, parent2)
            child = mutate(child)
            new_population.append(child)

        population = new_population

    return best_solution(population, items, capacity)

Advantages: Good solutions for large problems Limitations: No optimality guarantee, slow convergence

Simulated Annealing

  • Principle: Accept worse solutions probabilistically
  • Advantages: Can escape local optima
  • Limitations: Requires careful parameter tuning
  • Performance: Good for medium-sized problems

Commercial Solvers

CPLEX (IBM)

  • Capabilities: Mixed-integer programming
  • Performance: Strong performance on many mixed-integer problems
  • Limitations: Expensive, classical algorithms

Gurobi

  • Capabilities: Advanced MIP solver
  • Performance: Fast for many problem types
  • Limitations: Commercial license required

OR-Tools (Google)

  • Capabilities: Constraint programming, linear programming
  • Performance: Good for medium-sized problems
  • Limitations: Classical algorithms, limited scalability

Quantum Computing Approaches

Quantum Annealing (D-Wave)

Problem Mapping

Schematic QUBO/Ising formulation with a quadratic capacity penalty:

maximize   Σ v_i x_i     subject to   Σ w_i x_i ≤ W,  x_i ∈ {0,1}

→ minimize   - Σ v_i x_i + λ (Σ w_i x_i - W)^2

The quadratic penalty yields linear and pairwise terms for QUBO/Ising.
Choose λ large enough to discourage violations. See D-Wave docs for details.

Notes

  • Natural binary mapping via penalties in QUBO/Ising
  • Hybrid workflows: annealing with classical pre/post-processing
  • Hardware: D-Wave Advantage systems provide >5,000 annealing qubits with higher connectivity than 2000Q

Status

  • Embedding, scaling, and parameterization materially affect outcomes
  • Results are instance- and model-dependent; benchmark against strong classical baselines

Variational Quantum Algorithms (QAOA)

Quantum Circuit Design

Schematic description: QAOA prepares a parameterized circuit alternating cost and mixer operators derived from the objective and constraints. A classical optimizer tunes parameters to minimize expected energy. Active research explores warm starts, tailored mixers, and problem-specific structure.

Perspective

  • Hybrid: parameters optimized classically; circuits run on quantum hardware/simulators
  • Research status: promising on some instances; no broadly accepted practical quantum advantage yet for knapsack/portfolio

Recommendation

Use hybrid methods and always measure against a strong classical baseline.

Quantum Machine Learning

Quantum Neural Networks

  • Principle: Quantum circuits as neural networks
  • Applications: Learn optimal portfolio strategies
  • Advantages: Can incorporate market data
  • Status: Early research stage

Benchmarking and Evaluation

Performance is strongly data- and model-dependent. We publish customer-specific benchmark reports and run dual-canary experiments: a strong classical baseline vs. an alternative backend (including quantum/hybrid). Backends are selected based on measured cost, quality, and latency — not on fixed assumptions.


Real-World Applications

Financial Portfolio Optimization

Investment Management

  • Asset allocation: Optimal mix of stocks, bonds, alternatives
  • Risk management: Portfolio volatility control
  • Rebalancing: Periodic portfolio adjustments
  • ESG investing: Environmental, social, governance constraints

Hedge Fund Strategies

  • Long-short equity: Optimal long and short positions
  • Market neutral: Risk-adjusted returns
  • Multi-strategy: Allocation across strategies
  • Risk parity: Equal risk contribution from assets

Procurement and Supply Chain

Vendor Selection

  • Supplier optimization: Best vendors for different products
  • Cost minimization: Lowest total procurement cost
  • Quality constraints: Minimum quality requirements
  • Delivery constraints: Time-based requirements

Inventory Management

  • Stock optimization: Optimal inventory levels
  • Warehouse allocation: Product distribution
  • Demand forecasting: Future inventory needs
  • Cost optimization: Holding vs. ordering costs

QuantFenix Approach to Knapsack/Portfolio Optimization

Hybrid Optimization Strategy

1. Problem Classification

  • Size assessment: Determine optimal algorithm
  • Constraint analysis: Identify problem complexity
  • Cost estimation: Calculate expected compute costs

2. Backend Selection

  • Small problems: Dynamic programming (local)
  • Medium problems: Hybrid classical-quantum
  • Large problems: Quantum-optimized algorithms

3. Continuous Optimization

  • Canary runs: Test multiple backends
  • Performance monitoring: Track solution quality
  • Adaptive routing: Switch backends based on results

Expected Results

We target measurable improvements validated by benchmarks rather than fixed KPIs. Typical goals include:

  • Lower compute cost without sacrificing solution quality
  • Improved solution quality on challenging discrete instances
  • Faster time-to-first-feasible and robust convergence for large problems

Implementation Examples

Portfolio Optimization Configuration

QuantFenix YAML

problem:
  type: portfolio_optimization
  objective: maximize_sharpe_ratio
  constraints:
    - budget
    - sector_limits
    - transaction_costs
    - cardinality

backends:
  - name: ortools
    type: classical
    cost_weight: 0.7
  - name: aws_braket
    type: quantum
    cost_weight: 0.3
    experimental: true

policy:
  cost_weight: 0.6
  quality_weight: 0.3
  latency_weight: 0.1
  prefer_classical_by_default: true

Input Data Format

asset_id,symbol,expected_return,volatility,sector,market_cap
1,AAPL,0.12,0.25,Technology,3000000000000
2,MSFT,0.11,0.22,Technology,2800000000000
3,JNJ,0.08,0.15,Healthcare,450000000000
...

Knapsack Problem Configuration

QuantFenix YAML

problem:
  type: knapsack
  objective: maximize_value
  constraints:
    - weight_limit
    - cardinality

backends:
  - name: ortools
    type: classical
    cost_weight: 0.8
  - name: dwave
    type: quantum
    cost_weight: 0.2
    experimental: true

policy:
  cost_weight: 0.5
  quality_weight: 0.4
  latency_weight: 0.1
  prefer_classical_by_default: true

Future Outlook

Quantum Computing Evolution

Near-term (1-3 years)

  • Improved qubit count: 1,000+ qubits
  • Better error correction: Reduced noise
  • Hybrid algorithms: Classical-quantum optimization

Medium-term (3-5 years)

  • Fault-tolerant quantum computers: Reliable computation
  • Quantum advantage: Clear speedup for knapsack problems
  • Commercial availability: Quantum portfolio optimizers

Long-term (5+ years)

  • Large-scale quantum computers: 100,000+ qubits
  • Potential performance breakthroughs: Quantum systems may outperform classical methods on specific tasks
  • New algorithms: Quantum-native optimization methods

Industry Impact

Financial Services

  • Portfolio optimization: Better risk-adjusted returns
  • Risk management: More accurate risk models
  • Algorithmic trading: Faster execution strategies
  • Compliance: Better regulatory constraint handling

Supply Chain Management

  • Procurement optimization: Lower costs, better quality
  • Inventory management: Optimal stock levels
  • Vendor selection: Best supplier combinations
  • Logistics: Efficient resource allocation

Conclusion

Knapsack and portfolio optimization include formulations that are provably hard in general, especially once discrete constraints enter the picture. Classical methods remain state of the art for many instances; quantum and hybrid approaches are promising on some formulations but should be benchmarked rigorously.

QuantFenix's hybrid approach emphasizes intelligent backend selection, continuous measurement, and audit-ready reports. We default to strong classical baselines, explore hybrid alternatives where appropriate, and choose what wins on cost, quality, and latency.

The future of optimization is measurement-driven: selective backend choice, continuous performance monitoring, and adaptive algorithms that leverage both classical and quantum resources.


Get Started with Knapsack/Portfolio Optimization

Ready to optimize your investment portfolio or resource allocation? QuantFenix provides:

  • Multi-backend optimization across classical and quantum solvers
  • Cost-aware approach with target savings shown in benchmarks
  • Cost-aware approach with savings and quality gains demonstrated in benchmarks
  • Audit-ready reports for full traceability
  • Easy integration via API, CLI, or web interface

_Upload your asset data and constraints to get instant optimization results with detailed cost analysis and performance metrics._


References

  • Kellerer, Pferschy, Pisinger. “Knapsack Problems.” Monograph (book): DP, FPTAS, advanced algorithms.
  • Wikipedia: “Knapsack problem” — DP O(nW), FPTAS, references.
  • Duke CS course notes — Fractional knapsack greedy O(n log n) and correctness proof.
  • MOSEK Portfolio Cookbook — Markowitz as convex QP; efficient solvers.
  • Optimization Online notes/surveys — Cardinality-constrained portfolios and NP-hardness (Bienstock et al.).
  • Thierry Roncalli — Transaction costs/buy-in thresholds; mixed-integer formulations.
  • D-Wave documentation — QUBO/Ising modeling, penalties, hybrid workflows.
  • D-Wave Advantage overview — >5,000 annealing qubits and topology notes.
  • QAOA surveys — status, limitations, and application considerations.

Ready to optimize your quantum costs?

Put these insights into practice. Upload your optimization problem and see the cost savings.