Exhaustive Search
Brute Force Methods guarantee best fitness value is found feasible for ‘small’ data sets only
SAT satisfiability problem set of propositions prop[n] fitness function logical expression based on propositions boolean fitness(prop) try all 2 n combinations of T/F for propositions
boolean fitness(boolean b[]) //fitness function boolean [] prop = new boolean[n]; boolean satisfied = sat(n-1); boolean sat (int index) // find a solution {if (index==0) //base case { prop[0] = true; if fitness(prop) return true; prop[0] = false; return fitness(prop); } prop[index] = true; // recursive if (sat(index-1)) return true; prop[index] = false; return sat(index-1); }.....T..F.FT.TT.TF.FF FFTFTTFTFFFFTFTTTTTTFTFF
efficiency without risk pruning the tree: suppose fitness(prop) is (p 0 \/ ~p 1 ) /\ (~p 2 ) partial evaluation.....T..F.FT.TT.TF.FF FFTFTTFTFFFFTFTTTTTTFTFF nodes can be ignored: fitness can not be true
TSP travelling salesman directed edges, complete graph: exhaustive search is the permutation problem enumerate all n! permutations of n distinct items (cities) {0,2,3,…,n-1} ijij rank in path array D[i][j]
TSP travelling salesman O(n n ) input(V) // number of cities (Vertices) int[V] rIP // rankInPath, initialized to 0==not ranked visit(1) // generate visiting sequences void visit(int rank) { for (city = 0 to V-1) if (rIP[city] == 0) // not yet visited { rIP[city] = rank; if (rank == V) fitness(rIP) else visit(rank+1) rIP[city] = 0 } fitness(int[] p) calculate pathlength from D[i][j] if bestpath, save p fitness(int[] p) calculate pathlength from D[i][j] if bestpath, save p
efficiency without risk fix first city O((n-1) n-1 ) use sets instead of searching array O((n-1)!) keep partial fitness values reduce cost of fitness evaluation apply branch and bound BUT…still O(e n )
Variations on TSP undirected edges: D[i][j] == D[j][i] incomplete graph: some D[i][j] = null Euclidean distances (on a plane) cities are located on plane at (x i,y i ) D[i][j] is computed from coordinates: D[i][j] = D[j][i] = sqrt((x i -x j ) 2 + (y i -y j ) 2 ) other data structures, efficiencies
Continuous problem spaces Where is height of land? 1. what scale to sample? x [0,1], y [0,1] interval length: 0.1: 100 data points 0.01: 10, : 1,000, x --- y
Continuous problem spaces Where is height of land? 1. what scale to sample? x [0,1], y [0,1] interval length: 0.1: 100 data points 0.01: 10, :1,000, x --- y
Continuous problem spaces Where is height of land? 2. constraints – ignore water fewer data points but constraints must be tested --- x --- y
Continuous problem spaces Where is height of land? 3. where to locate sample --- x --- y
Continuous problem spaces - NLP N on- L inear P rogramming problems Typical problems are functions of multiple variables over domains of each Maximize f(x 1,x 2,x 3,…,x n ) for x 1 D 1, x 2 D 2, x 3 D 3,…, x n D n NLP problems are NP complete *Linear Programming problems are polynomial solvable O(n k )