Download presentation
Presentation is loading. Please wait.
Published byMildred Snow Modified over 9 years ago
1
Exhaustive Search
2
Brute Force Methods guarantee best fitness value is found feasible for ‘small’ data sets only
3
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
4
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 210210...
5
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... 210210 nodes can be ignored: fitness can not be true
6
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} 1 2 0 3 ijij 0123 0. 1. 2. 3. rank in path array 3142 0123 D[i][j]
7
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
8
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 )
9
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
10
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,000 0.001: 1,000,000 --- x --- y
11
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,000 0.001:1,000,000 --- x --- y
12
Continuous problem spaces Where is height of land? 2. constraints – ignore water fewer data points but constraints must be tested --- x --- y
13
Continuous problem spaces Where is height of land? 3. where to locate sample --- x --- y
14
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 )
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.