Research

My research focuses on designing scalable algorithms for large-scale combinatorial optimization problems that arise in domains such as machine learning, quantum computing, electronic design automation, and data center networking.
I work in both theory and practice, where I develop provably efficient algorithms—with quality guarantees—that also scale on high-performance computing systems. I combine algorithmic models such as streaming, parallel, and poly-streaming to simultaneously achieve memory and runtime efficiency. I summarize my recent research activities and interests here.


💾 Memory Efficiency through Streaming Algorithm

When solving large-scale problems, memory requirements often become the primary bottleneck for performance.
The streaming computational model, proposed in theoretical computer science, tackles this issue by assuming that data items arrive one at a time, and only a small (sublinear) amount of memory is available for processing.

For example, given a graph with $n$ vertices, a streaming—or more precisely, a semi-streaming—algorithm is allowed to use only $O(n \log n)$ memory, even though the graph may contain $O(n^2)$ edges. Such algorithms are typically evaluated based on two key metrics: Approximation guarantee: the solution quality relative to the optimal, and Number of passes: how many times the algorithm scans the input stream. My research in streaming algorithm is centered around designing and implementing efficient algorithms that have theoretically proven quality guarantee and also show superior empiricial performance. I highlight my recent published work in streaming algorithms. Here, $n$ is the number of vertices of a graph or hypergraph and $\varepsilon$ is a positive constant.


⚡ Parallelizing Streaming Algorithms

Streaming algorithms process data sequentially with strict memory constraints. To enable faster computation on large-scale data, my research explores how to combine parallel processing with streaming efficiency, achieving both low memory usage and high runtime performance. The following projects showcase this line of work.


📈 Submodular Function Optimization

I have been actively developing scalable algorithms for large-scale maximization problems where the objective functions are submodular. Unlike matching or coloring, submodular functions are nonlinear set functions that exhibit diminishing marginal returns—informally, adding an element to a larger set yields a smaller marginal gain than adding it to a smaller subset.

Submodular functions play a central role in data science and machine learning, powering applications such as data summarization, influence maximization, and active learning. My research in this area has two complementary goals: i) Scalability: Designing efficient algorithms that leverage parallel, distributed, and streaming paradigms to handle massive datasets., and ii) Applicability: Applying submodular optimization to real-world problems across domains such load-balance in parallel algorithms, influence maximization, and pandemic planning. Below are selected recent works in this direction.