feat: add numeric and symbolic scripts
This commit is contained in:
parent
6ea7900b55
commit
e80b7c3582
38 changed files with 3314 additions and 0 deletions
30
scripts/dps_hierarchy/07_dps_level3_single.py
Normal file
30
scripts/dps_hierarchy/07_dps_level3_single.py
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
"""
|
||||
07_dps_level3_single.py
|
||||
|
||||
A single DPS level-3 feasibility check on the pure Tiles state, to confirm
|
||||
the construction works and see its cost before committing to a full
|
||||
noise-threshold bisection (see 08_dps_level_k_bisection.py).
|
||||
|
||||
In the original sandbox this took ~137s with SCS (single solve, cold
|
||||
start). Expect similar or better on a modern laptop; likely far faster
|
||||
with an interior-point solver (MOSEK, if you have a license) since the
|
||||
PSD cone here (81x81 complex Hermitian) is small by modern SDP standards
|
||||
-- SCS is a first-order method tuned for large sparse problems and is not
|
||||
especially fast on small/dense feasibility problems like this one.
|
||||
|
||||
Expected result: status "infeasible" (i.e. entanglement IS detected).
|
||||
"""
|
||||
import time
|
||||
import cvxpy as cp
|
||||
from common import RHO_TILES
|
||||
from dps_hierarchy import build_dps_problem, dps_feasible
|
||||
|
||||
SOLVER = cp.SCS # try cp.MOSEK if available -- likely much faster at this size
|
||||
|
||||
prob, rho_param, sigma = build_dps_problem(d=3, k=3)
|
||||
print(f"sigma shape: {sigma.shape} "
|
||||
f"PPT-constraint (PSD cone) size: {3 * 3 ** 3} x {3 * 3 ** 3}")
|
||||
|
||||
t0 = time.time()
|
||||
ok = dps_feasible(prob, rho_param, RHO_TILES, solver=SOLVER, eps=1e-6, max_iters=20000)
|
||||
print(f"DPS level-3 feasible: {ok} status={prob.status} [{time.time() - t0:.1f}s]")
|
||||
Loading…
Add table
Add a link
Reference in a new issue