Selected Course Projects
Top-k arm selection [slides]
Advanced Concentration Inequalities
We studied variants of the Top-k arm selection problem in the multi-armed bandit setting with Bernoulli bandits. We suggested an alternative stopping criterion and proved improved bounds on sample complexity in the PAC framework. These theoretical results were verified by experiments on a suite of bandit instances.
MARL with Communication [slides]
Foundations of Intelligent and Learning Agents
Many animals, from spiders to lions, hunt in packs. In our predator-prey environment, we hope to recreate this behaviour. We explored ways of facilitating communication between agents in a multi-agent exploration setting.
Compiler for a subset of C [code]
We developed an interpreter + compiler system for a subset of the C language. We worked on the entire pipeline from scanning, parsing to AST generation and evaluation.
Congruence Domain for Abstraction based Program Analysis
Formal Specification and Verification course Verification
We added a functionality to the abstract interpretation based CAnalyzer tool developed at IIT Bombay. We implemented the congruence domain for distance bound matrices (DBMs). This domain represents constraints of the form
[x+y (mod m)].
Parallelizing Query Optimization for Joins [code and report]
Railway Signalling Controller [code]
Digital Logic Design Lab
We developed a controller for a railway signalling system that takes into account the state of surrounding tracks, signals and trains. The main part of the project was establishing asynchrounous communication between the Spartan6 FPGA and a backend computer which held the database. This was done using UART and FPGALink channels.
BiSym - A Biological Simulator [code]
We built a simulation environment in Racket that models cells with different attributes. We are able to observe phenomena such as dominant traits and adaptation to the environment.