• Well-defined data model • Data changes through user interactions • Flexible but predictable data structure(s) • Recommendation engines, social networks, etc… • Top-down design
• Complex connected data that typically models real world networks • Integrated from a variety of different sources • Data can be unpredictable • Telco networks, utility networks, etc… • bottom-up design
• Search and pattern-matching • Find a recommendation based on behaviour • Graph algorithms • Shortest path, disconnected components • Optimisation • Maximise oil flow while minimising water
1. Start from an initial population of candidate solutions 2. Assess each solution using a fitness function 3. Apply genetic operators to derive a new and potentially fitter generation 4. Rinse and repeat!
• Start from an initial population of candidate solutions (individuals or phenotypes), ideally random and large • Attribute a score to each solution using a fitness function • The only place with specific business knowledge • Apply genetic operators to create a new generation • Cross-breeding to retain best characteristics from each parent • Mutation to maintain diversity and to avoid converging to a local optima too quickly
• Pros! • All domain knowledge is encapsulated in one place • Generate interesting solutions including counterintuitive ones • Stop when you want! • Cons! • Fitness function can become really complex • Generated solutions are not guaranteed to be practical or pretty