# Daniel Fremont, Sep 2018

Daniel Fremont, a PhD student at UC Berkeley working with Sanjit Seshia, will visit Caltech on 21 Sep. Sign of for a time to meet with him below.

### Agenda

- ~10:30-10:45 am: arrive at Caltech; meet in Jin Ge's office ()
- 11 am: seminar in 121 ANB
- 12 pm: Lunch with Jin, X, Y, Z (sign up if you want to join)
- 1:30 pm: Jin, Ann 337
- 2:15 pm: Tung, Steele library
- 3:00 pm: Sumanth, Steele library
- 3:45 pm: Open (replace with your name and location)
- 4:30 pm: Open, if needed (replace with your name and location)
- 5:15 pm: done for the day

### Seminar

Algorithmic Improvisation

Daniel Fremont, UC Berkeley

21 Sep 2018, 11 am

121 Annenberg

Algorithmic Improvisation is a framework for automatically synthesizing systems with random but controllable behavior. It can be used in a wide variety of applications where randomness can provide variety, robustness, or unpredictability but safety guarantees or other properties must be ensured. These include software fuzz testing, robotic surveillance, machine music improvisation, randomized control of systems mimicking human behavior, and generation of synthetic data sets to train and test machine learning algorithms. In this talk, I will discuss both the theory of algorithmic improvisation and its practical applications. I will define the underlying formal language-theoretic problem, “control improvisation”, analyze its complexity and give efficient algorithms to solve it. I will describe in detail two applications: planning randomized patrol routes for surveillance robots, and generating random scenes of traffic to improve the reliability of neural networks used for autonomous driving. The latter application involves the design of a domain-specific probabilistic programming language to specify traffic and other scenarios.

Daniel Fremont is a PhD student in the Group in Logic and the Methodology of Science at UC Berkeley, working with Sanjit Seshia. He received a B.S. degree in Mathematics and Physics from MIT in 2013. His research is generally in the area of formal methods, focusing on the problems of counting and uniform generation of solutions to Boolean formulas. This includes developing practical algorithms to solve these problems, as well as finding new applications to the construction, verification, and testing of software, hardware, and cyber-physical systems.