I'm a student at the Vienna University of Technology and a software engineer at cortical.io, a science-based tech startup developing approaches in natural language processing inspired by neuroscience. I'm interested in building intelligent applications and doing cool stuff with data.
Outside of work and school, I'm into running, cycling, travelling and weird electronic music.
Solving Diophantine Equations with Genetic Algorithms
A Diophantine equation is a polynomial equation, usually in two or more variables, where only the integer solutions are of interest. For example:
Solving such an equation involves finding any combination of integer values for all of the variables that satisfy the equality. There may be infinitely many solutions. A variation of the Euclidean algorithm can be used to find solutions to Diophantine equations in two variables but it has been proven that a general solution for equations with more variables cannot exist. Because of this, alternative methods are used to find solutions to complex Diophantine equations. Brute force methods are impractical for equations in more than a handful of variables due to the exponential growth of the search space with each additional variable, in which case search heuristics have to be used.
I took a look at finding solutions for these kind of equations by implementing a tunable genetic algorithm that was able to solve Diophantine equations in dozens of variables in milliseconds. Though other more optimal solutions to Diophantine equations already exist, this shows how genetic algorithms can be applied to optimization problems and how tuning their parameters can greatly improve their ability to converge quickly towards a solution.