Applications of deductive machine learning
The goal of deductive machine learning is to provide computers with the ability to automatically learn a behaviour that
provably satisfies a given high-level specification. As opposed to techniques that generalise from incomplete specifications
(e.g. examples), deductive machine learning starts with a complete problem description and develops a behaviour as a particular
Potential applications of deductive machine learning are detailed below, and a student would focus on one of these items for their project. We envisage applying existing algorithms, with potential to develop new ones.
- Game playing strategy: given the specification of the winning criteria for a two-player game, learn a winning strategy.
- Program repair: given a buggy program according to a correctness specification, learn a repair that makes the program correct.
- Lock-free data structures: learn a data structure that guarantees the progress of at least one thread when executing multi-threaded procedures, thereby helping to avoid deadlock.
- Security exploit generation: learn code that takes advantage of a security vulnerability present in a given software in order to cause unintended behaviour of that software.
- Security/cryptographic protocol: learn a protocol that performs a security-related function and potentially applies cryptographic methods.
- Compression: learn an encoding for some given data that uses fewer bits than the original representation. This can apply to both lossless and lossy compression.