photo

Ryan Liu

DIMACS REU 2026
Applied Math & Computer Science @ Brown University

About Me

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.

Email
ryan_liu1 [at] brown [dot] edu
Office
CoRE 442
Mentor
Prof. Roie Levin
University
Brown University
Project Description

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.

Research Log
Week 1: May 26 – May 29

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.

Week 2: June 1 – June 5

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.

Week 3: June 8 – June 12

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.

Week 4: June 15 – June 19

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.

Week 5: June 22 – June 26

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.

Week 6: June 29 – July 2

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.

Week 7: July 6 – July 10

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.

Puzzles

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.

puzzle 1 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.

puzzle 2 solution

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+.

Acknowledgements

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.