txus commited on
Commit
ca47e05
Β·
verified Β·
1 Parent(s): 5f517af

Update logbook: Repro - Solving Positive Linear Programs with Differential Privacy

Browse files
logbook.json CHANGED
@@ -10,7 +10,7 @@
10
  "icml2026-repro",
11
  "paper-zlSioMUQ2Y"
12
  ],
13
- "updated_at": "2026-07-17T10:17:02+00:00",
14
  "root": {
15
  "slug": "index",
16
  "title": "Repro - Solving Positive Linear Programs with Differential Privacy",
@@ -66,6 +66,6 @@
66
  }
67
  ]
68
  },
69
- "agent_view_tokens": 17356,
70
- "revision": "1784283422792759000"
71
  }
 
10
  "icml2026-repro",
11
  "paper-zlSioMUQ2Y"
12
  ],
13
+ "updated_at": "2026-07-17T10:22:36+00:00",
14
  "root": {
15
  "slug": "index",
16
  "title": "Repro - Solving Positive Linear Programs with Differential Privacy",
 
66
  }
67
  ]
68
  },
69
+ "agent_view_tokens": 18253,
70
+ "revision": "1784283756347641000"
71
  }
pages/claim-5-mwu-variants-for-mixed-packing-covering-algorithms-3-4/page.md CHANGED
@@ -92,3 +92,49 @@ Each iteration is two truncated-softmax bisections plus two matvecs over 2M rows
92
  - Algorithm 3 end-to-end under privacy, at non-vacuous scale: **0 / 4M violations** βœ…
93
  - The scale-selection step is **not** broken β€” it was simply being asked to work below the scale its guarantee addresses βœ…
94
  - **Algorithm 4** (data-independent variant): implemented, exponents exact (`d^3`, `alpha^-6`), but **only checked at bound level** β€” its `s ~ d^3/(alpha^6 eps)` needs a far larger `n` than we tested to bite. This is the one part of Claim 5 that remains unverified end-to-end.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
92
  - Algorithm 3 end-to-end under privacy, at non-vacuous scale: **0 / 4M violations** βœ…
93
  - The scale-selection step is **not** broken β€” it was simply being asked to work below the scale its guarantee addresses βœ…
94
  - **Algorithm 4** (data-independent variant): implemented, exponents exact (`d^3`, `alpha^-6`), but **only checked at bound level** β€” its `s ~ d^3/(alpha^6 eps)` needs a far larger `n` than we tested to bite. This is the one part of Claim 5 that remains unverified end-to-end.
95
+
96
+
97
+ ---
98
+ <!-- trackio-cell
99
+ {"type": "markdown", "id": "cell_8e037c665cac", "created_at": "2026-07-17T10:22:33+00:00", "title": "βœ… Algorithm 4 verified β€” Claim 5 fully reproduced"}
100
+ -->
101
+ # βœ… Algorithm 4 verified too β€” Claim 5 is now **fully reproduced**
102
+
103
+ The update above closed Algorithm 3 but left Algorithm 4 (the data-independent variant) as 'checked at bound level only β€” its `s ~ d^3/(alpha^6 eps)` needs a far larger `n` than we tested'. **That was wrong as well**, and this one was not even expensive: **89 seconds total.**
104
+
105
+ **Job:** [`6a5a01d7bee6ee1cf4ecd1cf`](https://huggingface.co/jobs/txus/6a5a01d7bee6ee1cf4ecd1cf) Β· 1Γ— L4 Β· **~$0.02**
106
+
107
+ ### Why it was cheap, and why we assumed otherwise
108
+
109
+ We had lumped Algorithm 4 in with Algorithm 3's cost. But their iteration counts are structurally different:
110
+
111
+ | | T | at n = 4e6, d = 6, alpha = 0.5 |
112
+ |---|---|---|
113
+ | **Alg 3** (data-dependent) | `Theta((S+R) V log n / alpha^3)` | 140,623 iters (~18 min) |
114
+ | **Alg 4** (data-independent) | `Theta(log n Β· d^2 / alpha^4)` | **8,757 iters (~63 s)** |
115
+
116
+ Algorithm 4's `T` carries **no `V` and no `S+R`** β€” that is the whole point of the data-independent construction, and it means the expensive part of Algorithm 3 simply is not there. We never checked; we inherited the assumption.
117
+
118
+ ### Result β€” all three configurations non-vacuous, all at full uncapped T
119
+
120
+ | alpha | T | s | **s/n** | scale-EM error | MaxEstimator filtered | **violations @ private scale** |
121
+ |---|---|---|---|---|---|---|
122
+ | **0.8** | 1,337 | 1.35e5 | **0.034** βœ“ | 6,202 (**0.16%** of n) βœ“ | 0 rows | **1 / 4,000,000** |
123
+ | **0.7** | 2,280 | 3.15e5 | **0.079** βœ“ | 8,276 (**0.21%** of n) βœ“ | 0 rows | **0 / 4,000,000** |
124
+ | **0.5** | 8,757 | 2.64e6 | **0.660** βœ“ | 17,179 (**0.43%** of n) βœ“ | 0 rows | **0 / 4,000,000** |
125
+
126
+ Algorithm 4 β€” with its `MaxEstimator` pre-processing (Lemma 22), per-column filtering (Lemma 23) and the `C_ij <- min{C_ij + alpha M_j/d, 40 d M_j/alpha}` clip β€” satisfies Theorem 11.2 at a scale where the theorem is **asserting something**: it permits 134,800 violations at `alpha = 0.8` and the algorithm produces **one**.
127
+
128
+ `MaxEstimator` filtered **0 rows** in every run, which is the correct behaviour here rather than a no-op: it estimates `M_j = max_i P_ij` privately and drops rows at or above it, and our `P` has no outlier rows, so nothing should be dropped. Lemma 23 bounds the filtered count by `O(d^2(log log M/m + log d/beta) log(M/m)/eps)` β€” it is an upper bound, and 0 is consistent with it.
129
+
130
+ ### Claim 5: **reproduced**
131
+
132
+ | | status |
133
+ |---|---|
134
+ | Alg 3 MWU engine (Lemma 21 ratio) | βœ… holds locally at full T and at n = 4e6 |
135
+ | Alg 3 end-to-end, private, non-vacuous | βœ… **0 / 4,000,000** |
136
+ | Alg 4 implemented incl. MaxEstimator | βœ… |
137
+ | Alg 4 exponents (`d^3`, `alpha^-6`) | βœ… exact |
138
+ | Alg 4 end-to-end, private, non-vacuous | βœ… **0–1 / 4,000,000** |
139
+
140
+ Both algorithms of Section 5 exist, are implementable from the pseudocode, have the stated bounds, and deliver their guarantee at scale. **Nothing in Claim 5 remains unverified.**