Results

Current code calls the historical “Fractional VQE” method a variational quantum allocator: circuit expectations parameterise weights and the portfolio objective is evaluated classically. Historical tables, figures, and manifests below retain their original labels, data, and source provenance. The corrected smoothed normalisation changes the allocation map, so new runs must use fresh output directories.

This page separates deterministic synthetic examples from real market-data examples. The plots are committed artifacts generated by the notebook clients, so the documentation build stays deterministic and does not depend on live notebook execution or market-data downloads.

These examples do not establish quantum advantage. The quantum advantage research protocol defines prospective quality targets, budgets, and decision rules for that investigation; the existing tables have not been evaluated under that protocol.

Allocator correction validation

The fresh 128-trial report uses the allocator validation configuration: 4 and 6 assets, two instance seeds and two solver seeds, 15 quantum training steps, and 256 binary extraction samples. It compares 20 methods across eight frozen binary/fractional problem instances, including the corrected top-return control, variational allocator, and current classical solvers.

All 128 returned portfolios passed independent feasibility checks. There were zero solver errors and zero reference contradictions. Saved candidates were rescored independently and all recorded package/runner source hashes were checked against the implementation used for this run.

This study ran from the uncommitted development tree before the v0.3.4 release. Its manifest retains the preceding Git HEAD and installed package version 0.3.3; the recorded source hashes identify the implementation actually tested.

Selected target-hit counts follow; targets use the configured normalised gap of at most 0.001 against each track’s own reference:

Track

Method

Target hits / trials

Binary

Top-return control

2 / 4

Binary

Binary VQE

3 / 8

Binary

QAOA X

8 / 8

Binary

QAOA XY, basis initialisation and ring exchanges

1 / 8

Fractional

Variational quantum allocator

2 / 8

Fractional

Projected gradient descent

4 / 4

The full report includes every method, feasibility, target-hit rate, objective gap, runtime, and failures. The manifest, trial checkpoint, and CSV exports preserve inputs, settings, software versions, and source provenance. These small simulator runs are a correctness check, not a matched-budget comparison, scaling result, or quantum-advantage claim. They do not isolate a performance effect from the normalisation change or replace the historical studies below.

Historical comparison artifacts

Machine-readable copies of the historical comparison tables are committed under results/:

  • results/synthetic_comparison.csv

  • results/real_data_comparison.csv

  • results/generated_comparison_summary.csv

  • results/generated_repeatability_trials.csv

  • results/real_data_method_comparison.csv

  • results/larger_real_data_comparison.csv

  • results/ansatz_comparison.csv

For repeatable synthetic benchmark summaries, regenerate a compact comparison CSV with:

python scripts/generate_comparison_results.py

By default this writes results/generated_comparison_summary.csv with classical baselines, multi-seed quantum summaries, feasibility rates, objectives, risk/return metrics, and runtimes. It also writes results/generated_repeatability_trials.csv with one row per method/seed trial. Use --asset-counts, --seeds, --steps, and --methods to expand or tighten the run.

Stronger baselines (OSQP, HiGHS, SCIP, QP relaxation with rounding, multistart swap search, simulated annealing, tabu search, memetic genetic search, ILS, GRASP, VNS, and fractional PGD) are available through --methods classical-solvers; see usage. The historical tables listed above are not regenerated automatically. The separate small-instance validation pilot below includes OSQP, HiGHS, and swap search. SCIP, annealing, and tabu search were added in v0.3.3; QP rounding, memetic search, ILS, GRASP, VNS, and PGD are subsequent additions. None of these later methods have been added to those archived experiments.

How to Read the Tables

The committed tables below use the historical schema: binary feasible_rate measures sample feasibility. Newly regenerated comparisons independently validate returned portfolios, use feasible_rate for returned-portfolio feasibility, and report sample feasibility separately as sample_feasible_rate. They also include a shared problem_id, and trial rows separate original objective scores from penalized_energy. See shared problem definitions and evaluation.

For binary selection methods, lower objective is better for a fixed dataset, risk-aversion value, penalty, and cardinality. For fractional allocation methods, lower simplex objective is better at the same risk-aversion value.

Generated comparison tables include objective_family and reported_weighting columns because binary QUBO objectives and fractional simplex objectives are different mathematical objectives. In generated comparison rows, binary return and risk are reported from equal-weight selected portfolios (x / K) so risk-return plots are comparable with simplex allocations, while the binary objective remains the true QUBO objective evaluated on the raw bitstring x.

The real-data tables report values already saved in notebook outputs. Exact real-data classical optimizer rows should be regenerated together with the market-data notebooks because adjusted prices and shrinkage estimates are provider-dependent.

Small-Instance Validation Pilot

The validation runner completed 198 trials across 4, 6 and 8 securities, with three independent synthetic factor-model instances per size and three solver seeds per stochastic method. Binary cardinality is half the universe size. Quantum methods use 25 optimisation steps on a noiseless simulator; the binary methods sample 512 candidates. Fractional allocation is a separate control track. See the configuration and reproduction instructions and full report.

All 198 returned portfolios passed independent feasibility checks. No solver exceptions or reference contradictions were recorded. The target is a feasible normalised objective gap of at most 0.001 against the corresponding reference, using the scale defined in the research protocol.

Method

Target hit: 4 securities

6 securities

8 securities

Classical methods (each, in its own track)

100%

100%

100%

Binary VQE

66.7%

33.3%

0%

QAOA X

100%

100%

100%

QAOA XY

66.7%

66.7%

0%

Fractional VQE

33.3%

11.1%

33.3%

QAOA X returned the exact binary optimum in every trial, but the classical best-of-512 uniformly sampled feasible subsets baseline also did so. These small search spaces therefore do not establish a benefit from quantum parameter optimisation. All classical comparators had shorter mean runtimes than the corresponding quantum simulator methods in this run. These timings describe the tested implementation and machine, not QPU performance.

The pilot validates the comparison pipeline and exposes reliability differences for these settings. It has no matched end-to-end time budgets, uncertainty estimates or held-out tuning study, and does not establish quantum advantage or a scaling law. In particular, the three tested sizes do not justify extrapolating a crossover. Frozen inputs, references, software/source metadata, raw candidates and trial-level scores are saved under results/small_instance_validation/.

Effect of Training on Binary Circuit Distributions

The before/after diagnostic compares each full circuit at its initial random parameters and after 25 Adam updates, using the same nine frozen binary problems and three initialisation seeds. All 81 pairs completed without errors. The measure below is the exact single-draw probability of a feasible portfolio within the normalised quality target (0.001), not the chance of finding one after 512 samples. No sampling or Top-K repair is used in this diagnostic.

Securities

Method

Initial target probability

Trained target probability

Improved / worsened pairs

4

Binary VQE

6.124%

26.65%

4 / 5

4

QAOA X

6.346%

11.64%

8 / 1

4

QAOA XY

24.64%

41.17%

5 / 1

6

Binary VQE

0.9142%

18.53%

4 / 5

6

QAOA X

2.075%

4.312%

8 / 1

6

QAOA XY

4.226%

35.55%

5 / 1

8

Binary VQE

0.5765%

0.003692%

0 / 9

8

QAOA X

0.5499%

1.090%

9 / 0

8

QAOA XY

approximately zero

approximately zero

0 / 0

Means average seeds within each instance, then give instances equal weight. Improved/worsened counts use a numerical deadband of 1e-12 probability; remaining pairs are unchanged within that tolerance. Numerically negligible QAOA XY target mass at eight securities is below that deadband before and after training.

Training improves mean target probability at four and six securities for all three methods, but Binary VQE worsens in five of nine runs at each of those sizes: a few large gains raise the mean. At eight securities, Binary VQE’s mean feasibility rises from 30.52% to 97.22%, while its target probability falls in every run. QAOA X improves unconditional target probability in 25 of 27 pairs; its mean target probability conditional on feasibility nevertheless decreases at four and six securities. Better constraint satisfaction and better selection among feasible portfolios are distinct outcomes.

These observations apply to the tested settings and small development-instance sample. They do not establish an advantage over classical methods, statistical significance, or a scaling law. Fractional allocation is outside this binary sampling diagnostic. The full report, paired metrics, checkpointed raw distributions and plot are saved separately from the original validation artifacts.

Sampling Allowance: 16, 64 and 512 Draws

The sampling allowance diagnostic reuses all 81 initial/trained pairs. For each run it calculates 1 - (1 - p)^m before averaging across seeds and instances. It also evaluates uniform sampling of feasible exact-K subsets with replacement, once per instance and allowance. No training or new sampling occurs. Success requires at least one raw feasible target-quality portfolio; infeasible circuit samples consume draws, and no Top-K repair is applied.

At eight securities, the expected success probabilities are:

Distribution

16 draws

64 draws

512 draws

Binary VQE, initial

8.446%

26.15%

61.23%

Binary VQE, trained

0.05893%

0.2339%

1.740%

QAOA X, initial

8.344%

28.48%

87.15%

QAOA X, trained

15.92%

48.79%

98.03%

QAOA XY, initial or trained

approximately zero

approximately zero

approximately zero

Classical uniform feasible

26.08%

68.24%

99.96%

Increasing the allowance to 512 makes QAOA X highly reliable in this small pilot, but the classical baseline matches or exceeds every original fixed-setting circuit’s mean success probability at every tested size and allowance. No sampling-reliability advantage is observed for those circuits and settings.

The before/after result depends on the allowance: Binary VQE at four and six securities has a higher mean single-draw target probability after training, yet its expected 512-draw success falls from 89.74% to 49.96% and from 68.85% to 34.05%, respectively. A few large single-draw gains coexist with runs where target probability becomes tiny. Evaluating the nonlinear success formula on the mean single-draw probability would hide that heterogeneity.

These analytical probabilities are not the observed fractions in the earlier finite-sample pilot. The calculation assumes independent fixed-distribution draws with replacement, excludes training/execution costs and does not establish a computational or quantum advantage. Tables may round probabilities near certainty to 100%; CSVs retain full precision. See the full report and curves, per-run allowance results and summary.

Training Effort: 0, 25 and 100 Steps

The training-effort study completed 81 uninterrupted Adam trajectories and evaluated 243 checkpoint distributions. All initial and step-25 parameters/probabilities reproduced the saved diagnostic within numerical tolerance. Optimiser moments were preserved through step 100; distribution evaluation occurred after training, outside the cumulative optimisation timer. No trajectory errors occurred.

The effect of extending training from 25 to 100 steps on expected success within 512 raw draws was:

Securities

Method

25 steps

100 steps

4

Binary VQE

49.96%

66.67%

4

QAOA X

approximately 100%

approximately 100%

4

QAOA XY

66.67%

66.67%

6

Binary VQE

34.05%

22.22%

6

QAOA X

approximately 100%

approximately 100%

6

QAOA XY

66.67%

66.67%

8

Binary VQE

1.740%

<0.00001%

8

QAOA X

98.03%

98.42%

8

QAOA XY

approximately zero

approximately zero

More training does not consistently improve reliability under these settings. At six securities, Binary VQE’s mean single-draw target probability increases from 18.53% to 22.21%, while 512-draw success decreases: two runs improve and seven worsen between checkpoints. At eight securities, all nine Binary VQE runs worsen, despite mean feasibility approaching 100%. QAOA XY’s negligible eight-security target probability persists.

For eight securities, QAOA X’s extra 75 steps improve expected 512-draw success by about 0.391 percentage points, while measured mean cumulative optimiser time rises from 2.11 to 8.17 seconds. Uniform feasible classical sampling from the prior allowance analysis reaches 99.96% at the same draw count, excluding execution/training costs. This does not establish quantum advantage or a fixed-time comparison.

The full report includes single-draw quality, feasibility, all three sampling allowances and cumulative times. Paired plots show individual runs, and summary plots show means. Raw parameters/distributions, input/source hashes and paired changes are retained. This development study uses the existing small instance set; settings chosen from it need fresh held-out evaluation.

Eight-Security Failure Diagnostics

The failure study completed 81 depth/penalty variants on the three frozen eight-security instances and three seeds: 18 verified baseline trajectories were reused and 63 new trajectories were trained. All use the inherited 100-step effort and checkpoints at 0, 25 and 100. No errors occurred. Exact support, penalty thresholds, raw distributions, modal portfolios, gradients and illustrative swap-path barriers are retained with input/source hashes.

XY QAOA has a structural depth-1 obstruction. From its initial 11110000 portfolio, the ordered mixer can reach only 11110000, 11101000, 01110001 and 01101001 at depth 1. Exact integer Laurent-polynomial amplitudes establish that support for all beta angles. None of the target portfolios in any of the three instances is in that set. The first cost angle contributes only a global phase; extra optimisation cannot overcome this depth-1 exclusion.

At depths 2 and 3, gate-path support upper bounds cover 66 and 70 of the 70 feasible bitstrings, respectively. These are bounds rather than exact higher-depth reachability claims. Actual initial distributions have positive target mass at the higher depths, demonstrating that targets can be reached, but the 100-step training sharply reduces it. At depth 3, expected 512-draw success is only 1.107% after training. Removing the depth-1 obstruction alone does not produce reliable optimisation under the tested settings.

Binary VQE has sufficient basis-state expressivity at both depths. A direct RY parameter construction represents every basis portfolio, including the targets. The baseline penalty of 5 also exceeds all three exhaustive strict-sufficiency thresholds: approximately 0.02923, 0.06385 and 0.009771. Thus the baseline failure is not explained by unrepresentable target states or an infeasible global penalised optimum.

At 100 steps, the VQE sensitivity results are:

Depth

Alpha

Mean feasibility

Expected success: 512 draws

2

0.05

88.89%

44.45%

2

0.5

approximately 100%

approximately zero

2

5

approximately 100%

approximately zero

3

0.05

66.71%

65.54%

3

0.5

approximately 100%

11.11%

3

5

approximately 100%

approximately zero

Alpha 0.05 is below the feasibility-sufficiency threshold for instance 202, where its penalised ground state is infeasible. Its improved sampling results are not a validated universal penalty choice. Quality always scores the original feasible objective; infeasible samples consume draws. All nine baseline VQE modal portfolios are feasible yet admit an improving one-for-one swap. Their measured gradients and barriers along a specified product-state swap path are diagnostics, not certificates of convergence, local minima or barriers along all possible entangled paths.

The support figure, sensitivity figure, VQE convergence figure and full report separate structural exclusion, penalty adequacy and observed training behaviour. These development results do not establish a scaling law or quantum advantage, and settings chosen from this grid require fresh held-out evaluation.

v0.3.1 solver reliability and deadline pilots

The solver reliability study compares reference-free penalty selection, normalization, restarts, best-iterate selection, and learning-rate decay for Binary VQE, plus basis/Dicke initial states and ring/complete XY networks. Every variant receives the same total Adam updates; wall-clock time and circuit-evaluation counts are not equalized. Exact target probabilities are evaluated after training on the frozen original objectives.

Across the three eight-asset development instances and three seeds, switching XY QAOA from basis/ring to Dicke/ring raises mean analytical success within 64 draws from 0% to 90.96%; uniform exact-K sampling reaches 68.24%. The combined Binary VQE restart strategy reaches 11.89%, versus 0.19% for its legacy control. These results use 24 total Adam updates per run and do not establish runtime improvement or held-out performance.

The fixed-deadline pilot evaluates portfolios received within explicit end-to-end allowances, including process startup, encoding, training, sampling, repair, and delivery. It retains failed returns, cleanup overruns, and incumbent trajectories. Per-instance T90 includes censored failures and is unreached when fewer than 90% succeed. Numerical references keep their numerical status. These development pilots provide no held-out statistical or quantum-advantage claim; historical reports above are unchanged.

The committed deadline pilot uses one four-asset instance and one run per method and allowance to check execution behavior. Re-run its settings with the current runner in a new directory (exact historical reproduction requires v0.3.1 sources):

python scripts/run_budget_benchmark.py --asset-counts 4 --instance-seeds 101 \
  --seeds 0 --steps 24 --checkpoint-every 4 --budgets 1,10,60 \
  --methods binary-vqe,qaoa-x,qaoa-xy,highs,swap,random-k,fractional-vqe,osqp \
  --output-dir results/my_budget_pilot

Fresh-instance deadline comparison

The fresh-instance report contains 594 completed trials across 4, 6, and 8 assets, three fresh factor-model instances per size (seeds 707, 808, and 909), two run seeds, and independent 1/10/60-second allowances. Settings were fixed before evaluating these inputs. The runner rejects overlap with the declared development manifests and saves their hashes. See the frozen configuration and reproduction instructions.

The central comparison uses identical production parameter initializations for trained and untrained Dicke-ring XY QAOA. The trained variant publishes candidates during 24 Adam updates, then repeatedly samples the final parameters for its remaining allowance. The untrained control repeatedly samples its initial parameters with zero updates. Both execute actual 64-shot circuit batches. Sampling can stop once every feasible portfolio has actually been observed, using only the domain size rather than a reference target. Other trained comparators retain their declared finite update caps and ordinary final sampling.

At the primary 10-second allowance, binary target-hit rates are:

Binary method/variant

4 assets

6 assets

8 assets

Binary VQE, legacy

50.0%

33.3%

16.7%

Binary VQE, improved

83.3%

100.0%

33.3%

QAOA X

100.0%

100.0%

100.0%

XY QAOA, basis/ring

33.3%

0.0%

66.7%

XY QAOA, Dicke/ring, trained

100.0%

100.0%

100.0%

XY QAOA, Dicke/ring, untrained

100.0%

100.0%

100.0%

HiGHS, swap search, uniform exact-K (each)

100.0%

100.0%

100.0%

Each cell contains six runs, with instances weighted equally. Trained and untrained Dicke-ring circuits and all three classical controls return the exact binary optimum in every 10-second run. This endpoint therefore shows no quality or target-hit benefit from training at these sizes. These are elapsed-time outcomes, distinct from the historical analytical success probabilities at a fixed 64-draw allowance. Across the 18 primary-budget runs per method, mean observed first-target times are 2.01 seconds for trained Dicke-ring, 1.87 seconds for untrained Dicke-ring, and between 1.74 and 1.83 seconds for the three classical controls. These are descriptive implementation timings, without uncertainty estimates or a hardware speed claim.

In the separate fractional control track, Fractional VQE hits its own target in 50.0%, 16.7%, and 33.3% of 10-second runs at 4, 6, and 8 assets, respectively; OSQP reaches 100.0% at each size. Binary and fractional objectives are not pooled.

All 198 one-second runs time out during startup, before worker setup is observed. Where worker entry is observed, startup averages 1.77 seconds on this environment (range 1.47 to 3.63 seconds). Every 10/60-second run returns a feasible portfolio. Four runs reach their deadline after returning an incumbent; these remain in the denominators with their delivered portfolios. No solver errors or reference contradictions occur. Maximum observed cleanup overrun is 0.0344 seconds and does not extend candidate eligibility. Parent validation must finish before the deadline for a portfolio to count.

Timing records separate startup, setup, optimization, candidate processing, delivery, parent validation, cleanup, and interrupted phases. Delivery and validation overlap worker work and must not be added to the worker phase totals. Paired records retain matched instance/seed/budget outcomes and failed returns; conditional quality differences require two feasible outputs. The saved empirical T90 uses only two repeats per instance and is a coarse descriptive statistic. This small fresh-instance check has no confidence intervals, formal held-out tuning study, scaling conclusion, or quantum-advantage claim. Historical evidence is preserved.

Synthetic Results

Synthetic examples use fixed in-notebook arrays and are therefore the best place for deterministic method-to-baseline comparisons.

Generated Baseline and Repeatability Results

The generated comparison files add baseline rows and repeatability summaries from deterministic synthetic data:

  • Binary baselines: exact exhaustive search, top-return subset, and minimum-variance subset

  • Continuous baselines: equal-weight allocation and exact long-only Markowitz

  • Quantum repeatability: Binary VQE, QAOA X, QAOA XY, and Fractional VQE summarized across seeds, with per-seed rows saved separately

  • Objective plots are split by objective family so binary QUBO objectives are not visually mixed with fractional simplex objectives

The committed generated CSVs are lightweight benchmark artifacts. Regenerate them after algorithm changes with:

python scripts/generate_comparison_results.py

Dataset

Method

Objective family

Reported weighting

Seeds

Mean return

Mean risk

Best objective

Mean objective

Std objective

Feasible rate

Synthetic generated n=4

Classical exhaustive search

binary QUBO

equal-weight selected

1

0.102055

0.174865

0.285137

0.285137

0.000000

1.000000

Synthetic generated n=4

Classical top-return heuristic

binary QUBO

equal-weight selected

1

0.161566

0.209324

0.377932

0.377932

0.000000

1.000000

Synthetic generated n=4

Classical minimum-variance subset

binary QUBO

equal-weight selected

1

0.102055

0.174865

0.285137

0.285137

0.000000

1.000000

Synthetic generated n=4

Classical equal weight

fractional simplex

simplex weights

1

0.118063

0.129968

-0.050496

-0.050496

0.000000

1.000000

Synthetic generated n=4

Classical exact Markowitz

fractional simplex

simplex weights

1

0.125046

0.133935

-0.053292

-0.053292

0.000000

1.000000

Synthetic generated n=4

Binary VQE best feasible

binary QUBO

equal-weight selected

3

0.107872

0.177643

0.285137

0.289414

0.006049

0.978516

Synthetic generated n=4

QAOA X best feasible

binary QUBO

equal-weight selected

3

0.102055

0.174865

0.285137

0.285137

0.000000

0.699219

Synthetic generated n=4

QAOA XY best feasible

binary QUBO

equal-weight selected

3

0.102055

0.174865

0.285137

0.285137

0.000000

1.000000

Synthetic generated n=4

Fractional VQE

fractional simplex

simplex weights

3

0.123596

0.132920

-0.053289

-0.052921

0.000415

1.000000

Generated benchmark risk return Generated benchmark binary objective Generated benchmark fractional objective Generated benchmark feasibility

Ansatz Comparison Results

The ansatz comparison notebook is a compact pure-package client for the Binary VQE and Fractional VQE ansatz options. It writes results/ansatz_comparison.csv and keeps method/ansatz colors consistent across its risk-return, objective, and feasibility plots.

Regenerate it with:

python scripts/generate_ansatz_comparison.py

Ansatz comparison risk return Ansatz comparison binary objective Ansatz comparison fractional objective Ansatz comparison feasibility

Synthetic Discrete Selection

Dataset

Method

Type

λ

K

Selection

Return

Risk

Variance

Objective

Feasible

Synthetic binary toy

Classical exhaustive search

Classical

5.0

2

1100

0.300000

0.158114

0.025000

-0.175000

yes

Synthetic binary toy

Binary VQE Top-K

Quantum

5.0

2

0101

0.320000

0.256905

0.066000

0.010000

yes

Synthetic QAOA toy

Classical exhaustive search

Classical

4.0

2

1001

0.250000

0.360555

0.130000

0.270000

yes

Synthetic QAOA toy

QAOA X/XY best feasible

Quantum

4.0

2

1001

0.250000

0.360555

0.130000

0.270000

yes

Synthetic QAOA toy

QAOA X/XY Top-K

Quantum

4.0

2

0011

0.220000

0.387298

0.150000

0.380000

yes

Synthetic Continuous Allocation

Dataset

Method

Type

λ

Selection or weights

Return

Risk

Objective

Feasible

Synthetic fractional toy

Classical Markowitz

Classical

5.0

[0.480403, 0.355580, 0.131539, 0.032477]

0.142785

0.059812

-0.124897

yes

Synthetic fractional toy

Fractional VQE

Quantum

5.0

continuous allocation

0.142792

0.059825

not printed

simplex-normalized

Binary VQE Synthetic Figures

Binary VQE solves a cardinality-constrained portfolio selection problem by mapping the QUBO objective to an Ising Hamiltonian and minimizing its expectation value with a parameterized circuit.

Artifact

What it shows

Circuit

Hardware-efficient binary VQE ansatz used by the notebook client

Convergence

Optimizer cost trace over training steps

Probabilities

Selection probability distribution after optimization

Bitstrings

Most likely sampled portfolio bitstrings

Lambda sweep

Risk-return behavior as the risk-aversion parameter changes

Efficient frontier

Binary candidates compared across return/risk tradeoffs

Binary VQE circuit Binary VQE convergence Binary VQE probabilities Binary VQE portfolio bitstrings Binary VQE lambda sweep Binary VQE efficient frontier

QAOA Synthetic Figures

QAOA solves the binary portfolio objective with alternating cost and mixer unitaries. The synthetic notebook compares standard X-mixer sampling with constraint-aware XY-mixer behavior.

Artifact

What it shows

Candidate comparison

Top-K, mode, and best-feasible sampled bitstrings

Mixer comparison

X and XY mixer behavior on the same binary objective

Final portfolio metrics

Return, quadratic risk, and objective for the selected feasible bitstring

Fractional VQE Synthetic Figures

Fractional VQE optimizes long-only continuous allocations on the simplex. This complements binary selection by producing allocation weights directly rather than choosing a fixed-size subset.

Artifact

What it shows

Circuit

Fractional VQE ansatz used for continuous allocation

Convergence

Optimizer behavior for the fractional objective

Probabilities

Allocation-related distribution from the fractional workflow

Final allocation

Portfolio weights displayed as a pie chart

Lambda sweep

Allocation changes over risk-aversion settings

Efficient frontier

Fractional allocation frontier from optimized portfolios

Fractional VQE circuit Fractional VQE convergence Fractional VQE probabilities Fractional VQE pie allocation Fractional VQE lambda sweep Fractional VQE efficient frontier

Classical Markowitz Synthetic Figures

The classical Markowitz notebook provides reference plots for interpreting quantum portfolio outputs. These plots are useful for checking whether quantum-generated candidates sit in sensible risk-return regions.

Artifact

What it shows

Risk-return scatter

Candidate portfolios colored by return/risk behavior

Markowitz lambda sweep

Classical allocation changes across risk-aversion settings

Markowitz risk-return scatter Markowitz lambda sweep

Real-Data Results

Real-data notebooks use market data for a fixed 2024-01-01 to 2025-01-01 window. The committed values below come from notebook output cells and should be regenerated whenever the real-data notebooks are rerun.

Real-Data Summary

Dataset

Method

Type

Window

Selection or frontier

Return

Risk

Objective

Feasible

Real binary example

Binary VQE Top-K

Quantum

2024-01-01 to 2025-01-01

NVDA, AMZN

0.681501

0.335301

not printed

yes

Real binary example

Classical equal-weight evaluation

Classical evaluation

2024-01-01 to 2025-01-01

NVDA, AMZN

0.681501

0.335301

not printed

yes

Real QAOA example

QAOA X best feasible

Quantum

2024-01-01 to 2025-01-01

AAPL, NVDA

not printed

not printed

-0.205323

yes

Real QAOA example

QAOA XY best feasible

Quantum

2024-01-01 to 2025-01-01

AAPL, NVDA

not printed

not printed

-0.205323

yes

Real-Data Method Comparison

notebooks/Real_Data_Comparison.ipynb writes results/real_data_method_comparison.csv and plots the same-method comparison from those rows. Binary rows use equal-weight selected portfolios for reported return and risk, while objective values remain true binary QUBO objectives. Fractional rows use simplex weights and simplex objectives.

Real data method comparison risk return Real data method comparison binary objective Real data method comparison fractional objective Real data method comparison feasibility

Larger Real-Data Universe

scripts/generate_larger_real_data_example.py writes results/larger_real_data_comparison.csv, regenerates notebooks/examples/04_Larger_Real_Data_Example.ipynb, and saves figures for a 12-stock 2024 market-data window. The binary and QAOA methods use one qubit per asset, so this example is deliberately a scalability/stress example rather than a claim of production scale or quantum advantage.

Regenerate it with:

python scripts/generate_larger_real_data_example.py

Method

Objective family

K

Selection or weights

Return

Risk

Best objective

Feasible rate

Classical exhaustive search

binary QUBO

5

AAPL, NVDA, JPM, JNJ, PG

0.341060

0.128919

-0.043287

1.000000

Binary VQE best feasible

binary QUBO

5

NVDA, XOM, JNJ, PG, HD

0.257295

0.120824

0.173363

0.777344

QAOA X best feasible

binary QUBO

5

AAPL, META, JPM, PG, UNH

0.248903

0.117525

0.136708

0.343750

QAOA XY best feasible

binary QUBO

5

MSFT, NVDA, GOOGL, JPM, UNH

0.346208

0.172098

1.230733

1.000000

Classical exact Markowitz

fractional simplex

simplex weights

0.580921

0.226857

-0.375066

1.000000

Fractional VQE

fractional simplex

simplex weights

0.549605

0.217478

-0.360419

1.000000

Larger real-data risk return Larger real-data binary objective Larger real-data fractional objective Larger real-data feasibility Larger real-data asset returns Larger real-data fractional allocation pies

Real Fractional Frontier

Method

λ

Return

Risk

Fractional VQE

8.00

0.324008

0.144192

Fractional VQE

4.00

0.340232

0.151739

Fractional VQE

2.00

0.340300

0.151828

Fractional VQE

1.00

0.340450

0.152215

Fractional VQE

0.50

0.340788

0.153889

Real Binary VQE Figures

Example

Workflow

Figures

notebooks/examples/02_Real_Example.ipynb

Binary VQE

Convergence, probabilities, Top-K selection

Real binary VQE convergence Real binary VQE probabilities Real binary VQE Top-K

Real QAOA Figures

Example

Workflow

Figures

notebooks/examples/03_Real_Example.ipynb

QAOA

Mixer comparison, probabilities, Top-K selections

QAOA convergence QAOA mixer comparison convergence QAOA probabilities QAOA Top-K QAOA X probabilities QAOA XY probabilities QAOA X Top-K QAOA XY Top-K

Real Fractional VQE Figures

Example

Workflow

Figures

notebooks/examples/01_Real_example.ipynb

Fractional VQE

Allocation, frontier, lambda sweep, convergence

Real fractional VQE final allocation Real fractional VQE frontier Real fractional VQE lambda sweep

Reproducing These Figures

Run the notebooks from the repository root after installing the relevant extras:

pip install -e ".[all]"

Then open the notebook clients:

  • notebooks/Binary.ipynb

  • notebooks/QAOA.ipynb

  • notebooks/Fractional.ipynb

  • notebooks/Benchmark_Comparison.ipynb

  • notebooks/Real_Data_Comparison.ipynb

  • notebooks/Ansatz_Comparison.ipynb

  • notebooks/Classical_Markowitz.ipynb

  • notebooks/examples/01_Real_example.ipynb

  • notebooks/examples/02_Real_Example.ipynb

  • notebooks/examples/03_Real_Example.ipynb

  • notebooks/examples/04_Larger_Real_Data_Example.ipynb

The notebooks should save updated plots under notebooks/images/ and notebooks/examples/images/.