Can You Improve My Code? Optimizing Programs with Local Search
Fatemeh Abdollahi, Saqib Ameen, Matthew E. Taylor, Levi H. S. Lelis

TL;DR
This paper presents POLIS, a local search technique that iteratively improves programs by optimizing individual lines, demonstrated to significantly enhance user-written game-playing code and applicable to real-world problems.
Contribution
Introduces POLIS, a novel local search method for program optimization that leverages existing synthesis algorithms to improve code with measurable objectives.
Findings
POLIS significantly improved user-written game programs.
POLIS effectively optimized real-world code from Stack Overflow.
Participants' programs showed substantial score improvements.
Abstract
This paper introduces a local search method for improving an existing program with respect to a measurable objective. Program Optimization with Locally Improving Search (POLIS) exploits the structure of a program, defined by its lines. POLIS improves a single line of the program while keeping the remaining lines fixed, using existing brute-force synthesis algorithms, and continues iterating until it is unable to improve the program's performance. POLIS was evaluated with a 27-person user study, where participants wrote programs attempting to maximize the score of two single-agent games: Lunar Lander and Highway. POLIS was able to substantially improve the participants' programs with respect to the game scores. A proof-of-concept demonstration on existing Stack Overflow code measures applicability in real-world problems. These results suggest that POLIS could be used as a helpful…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsEducational Games and Gamification · Artificial Intelligence in Games · Spreadsheets and End-User Computing
