Written by Daniel Gissin under the supervision of Prof. Shai Shalev-Shwartz as part of a master’s program at the School of Computer Science and Engineering at the Hebrew University in Jerusalem. The code provided is free to use under the terms of the MIT license. If you find issues with the implementations or written report, feel free to contact me.