← Back to home
Undergraduate research · DREAM Lab, UMass Amherst

When can a fast answer
be trusted?

I work with Prof. Neha Makhija at the DREAM Lab on package queries — a class of database problems where getting the exact answer means solving a hard optimization problem. My job is to find out, with experiments, exactly when the cheap shortcut gives the right answer and when it quietly fails.

~82%
OVERALL LP/ILP MATCH RATE
100%
ON COUNT-ONLY CONSTRAINTS
~72%
ONCE SUM CONSTRAINTS ENTER
In plain terms

A normal database query asks for rows one at a time: "show me every stock under $50." A package query asks for a set of rows that work together: "build me a portfolio under a $10,000 budget that maximizes expected return." That's no longer a lookup — it's a combinatorial optimization problem, and the number of possible sets explodes exponentially. Solving it exactly means integer linear programming (ILP), which can be brutally slow. Relaxing it to a plain linear program (LP) is fast — but sometimes wrong. My research measures the size and shape of that "sometimes."

What I've actually done

Dec 2025 — Present · advised by Prof. Neha Makhija · Gurobi · TPC-H · PaQL · PostgreSQL · Python

Built and ran an LP-vs-ILP experiment harness. Over benchmark package queries (Gurobi as the solver, the TPC-H dataset, PaQL query syntax), I measured how often the fast LP relaxation lands on the same answer as the exact ILP. The result: about 82% agreement overall — perfect on queries with only COUNT constraints, dropping to roughly 72% once SUM constraints enter. That gap is the finding: it identifies precisely which constraint structures make cheap approximation unsafe, which tells a database engine when it must pay for the exact solve.

Wrote a critical analysis of Progressive Shading (VLDB '24) — a state-of-the-art package-query algorithm. I audited its evaluation methodology and theoretical claims, then constructed adversarial query instances designed to expose its failure modes. Finding where a published algorithm breaks is the fastest way to understand why it works — and it's the same skeptical instinct I bring to my own models.

Presented the work to my advisor and iterated on her feedback — solver configuration, dataset choices, and how the results are framed against the existing literature.

Integer Linear Programming LP Relaxation Gurobi TPC-H PaQL PostgreSQL Adversarial Analysis
Why this matters beyond databases

"When is the fast approximation good enough?" is one of the central questions of applied quantitative work — it shows up in portfolio construction, resource allocation, scheduling, and model selection. This research is where I learned to answer it the only trustworthy way: define the benchmark, run the experiment, and report where the method fails, not just where it shines. It's also the long-term engine behind HoopIQ's roster-optimization endgame — picking a team under a salary cap is a package query.

Work in optimization, databases, or quant research?

I'd love to compare notes — on this work, on where the field is going, or on what a strong researcher-in-training should be doing next. Advice welcome, always.