Hi! I'm a rising senior at Brown University studying Applied Mathematics and Computer Science. I'm broadly
interested in theoretical computer science, but more specifically about approximation algorithms for graph
problems. I also enjoy problems in probabalistic graph modeling, such as causal analysis and machine
learning.
Outside of academics, I currently play the double bass as part of the Brown University Orchestra, as well as
previously in several musicals and jazz bands. I listen to a bunch of different genres, but my favorite is
classical. My favorite composers are Wagner and Mahler, and my favorite artists are Lizzy
McAlpine and Yorushika.
ryan_liu1 [at] brown [dot] edu
CoRE 442
Prof. Roie Levin
Brown University
Online Steiner Forest With a Sample
Collaborators: Prof. Roie Levin · Prof. Arnold Filtser · Gal Ben-Ami
Given an instance of the Steiner Forest problem, can "historical data" allow for better performance? We are given a random \(p\)-fraction of the terminals as a sample on which the algorithm can calculate whatever it would like. The rest of the terminals are then revealed one-by-one in an online setting. Ideally we can design an approximation algorithm that achieves the same known bounds of offline and online Steiner Forest as you modify \(p\), i.e. a \(\log (1/p)\)-competitive ratio.
My week started with move in and meeting my mentor for the first time. I attended orientation and met everyone, and we listened to two short seminar talks. With my mentor, we discussed some of the algorithms and analyses used in the various papers I was given to read. I presented the \(\log k\)-competitive ratio of the augmented greedy algorithm for online Steiner Forest to Roie and Gal. Through some readings and practicing, I also got more comfortable with LPs and primal-dual analysis in general.
We made and presented our project to everyone else on Tuesday, and also got to hear about the cool stuff
everyone else is going to do. All of the collaborators met for the first time together in person, and we
discussed some of
the current results in online Steiner Forest and Steiner Tree. Spent some time coming up with ideas and
noting down where they failed as potential directions in taking our proof.
I went with a few other students to the Computational Geometry Week 2026 hosted by DIMACS. There was an
interesting talk by Prof. Ronitt Rubinfeld (MIT) on sublinear algorithms and the new directions currently
being taken.
I came up with a potential algorithm and proved that it has \(\log 1/p\)-competitive ratio on a nice subset of solution terminals. However it has a lot of issues which I'm not sure can be overcome with modifications to the algorithm that prevents it from achieving the (assumed) optimal solution. A potential direction is to read up on the set cover problem and see if there are any interesting ideas that can be adapted to our problem.
I proved a small lemma showing that the augmented greedy algorithm achieves a \(\log 1/p\)-competitive ratio on connected components in the optimal solution that have no samples. The initial ideas we had for the set cover problem seemed to not be feasible, so we read up on the the new 1.994-approxiamtion for the offiline Steiner Forest. It contained a lot of cool ideas such as Autarkic pairs and \(\epsilon\)-moat growing that could be useful for the offline step of our algorithm.
While tinkering with some different ideas, I found an interesting concept of cost-sharing used primarily in economics but seemed to have good applications to our problem. Using this idea, I was able to prove a \(1/p\)-competitive ratio for essentially any problem using the online with-a-sample framework independently of the structural properties of the problem. The next step is likely leveraging specific ideas about Steiner Forest to obtain the log ratio.
I presented my proof to the group and we scrutinized to see if it passed the smell test. I further refined the analysis of for the \(1/p\)-ratio proof, since it uses some pretty neat tricks with expectation and probability that needs to be accurately defined. I also started reading more about \(\beta\)-strict cost sharing and how they manage to obtain constant strictness. Some of the analysis ideas could be useful in improving our algorithm or analysis.
Did some more reading and iterating to see if we could improve our solution. The main issue is that most of the preexisting work lives within the offline framework, which is useful when analyzing an algorithm. However, taking those ideas and implementing them into an online solution makes it harder, since a lot of the structures used in the proof are highly unstable to slight changes in the problem. I spent a while thinking about different ways to modify notions of "progress" or bounding cost in a way that was more stable.
I picked up a puzzle game Opus Magnum and will post some of my solutions that I like. The goal is to take different "atoms" and combine them to create final products using programmable arms. You can optimize for cost, the size of your solution, the number of instructions needed to complete, or a litany of other community-created metrics. The main metric I'm following is SUM, aka the sum of the cost (G), speed (cycles), and area of the solution.
Problem: Hair Product
Solution: 50G, 108c, 9a
Solution had sum 167, current record is 134. Was pretty proud of my first solve, could definitely do it with
one arm
but needed to figure out how to reduce cycles.
Problem: Mist of Incapacitation
Solution: 90g, 70c, 14a
Sum 174, WR is 154. They use some kinda wizardry with the hex arm and doing two at a time to avoid errors.
No idea how they managed to come up with that one. My solution probably could optimize the bottom right
arm somehow, it does a lot of backtracking. Using multi-arms doesn't save enough on cycles unfortanately.
Am pretty happy with this solve, my first attempt was like 210+.
Thank you to Prof. Roie Levin, Dr. Lazaros Gallos, and Lawrence Frolov for their mentorship and support throughout the program. Thank you also to Charles University in Prague and the DIMACS REU as a whole for their funding and accommodations. This program is generously supported by NSF grant CCF-2447342.