{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "1. **Exhaustive search** - explore all combinations. This eliminates any doubt. [Ken Thompson](https://en.wikipedia.org/wiki/Ken_Thompson)\n", "2. **Satisficing search** - explore convenient combinations until a solution is found that is good enough. [Herbert Simon](https://en.wikipedia.org/wiki/Herbert_A._Simon)\n", "3. **Approximation** - If it is too hard to find a precise solution on the original problem, make a simplified model of the problem and use its solution.\n", "4. **Heuristics** - \"If you don't know how to solve a particular problem, use a method that solves similar problems and modify it.\" [George Polya](https://en.wikipedia.org/wiki/George_P%C3%B3lya)\n", "5. **Greedy Strategy** - Identify the single biggest gain, keep it & repeat the search on the remainder of the problem.\n", "6. **Marginal search** - Use a method to construct an initial solution, then use another method to search for marginal improvements to the initial solution.\n", "7. **Ensemble search** - From a pool of candidate methods, try them all and pick the best solution. \n", "8. **Divide and conquer** - split the problem into smaller subproblems, divide each subproblem further until solveable, then combine the partial solutions.\n", "9. **Novelty search** - \"don't try to solve the problem. Try instead to discover novel features and if they work, explore them further.\" [Kenneth Stanley](http://2018.alife.org/events/kenneth-o-stanley/) \n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] } ], "metadata": { "language_info": { "name": "python" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }