Presentation is loading. Please wait.

Presentation is loading. Please wait.

Dovetail Killer? Implementing Jonathan’s New Idea Tarek Sherif.

Similar presentations


Presentation on theme: "Dovetail Killer? Implementing Jonathan’s New Idea Tarek Sherif."— Presentation transcript:

1 Dovetail Killer? Implementing Jonathan’s New Idea Tarek Sherif

2 The Algorithm Given two or more PDBs the algorithm simply passes through each pair of elements, in order. The hybrid takes: The highest of the two values. The highest of the two values. The original PDB from which the chosen value came. The original PDB from which the chosen value came.

3 The Algorithm The search requires: The hybrid PDB The hybrid PDB The domain abstractions from the original PDBs. The domain abstractions from the original PDBs. To access the hybrid for state N: N is hashed into the hybrid using all given domain abstractions. N is hashed into the hybrid using all given domain abstractions.

4 The Algorithm If the domain abstraction used to hash to a value is that of the PDB the value came from, take that value. Otherwise assume it is 0. If the domain abstraction used to hash to a value is that of the PDB the value came from, take that value. Otherwise assume it is 0. h(N) = max of all taken values. h(N) = max of all taken values.

5 Background IDA* on the 8-puzzle used to test the algorithm. Propagating h-values using Mero’s algorithm. Used only at the fringe of the search, since that is where pruning might occur. Used only at the fringe of the search, since that is where pruning might occur.

6 Background The Perfect Hash. Assuming only one token in domain abstraction. Assuming only one token in domain abstraction. p0 = position of blank. p0 = position of blank. p1 = position of first constant if it is less than position of blank, position -1 otherwise. p1 = position of first constant if it is less than position of blank, position -1 otherwise. p2 = position of the second constant if it is less than positions of blank of first constant, position -1 if it is higher than just one, position -2 if it is higher than both. p2 = position of the second constant if it is less than positions of blank of first constant, position -1 if it is higher than just one, position -2 if it is higher than both. Etc. Etc.

7 Background Hash = p0 + 9*p1 + 72*p2 … E.g. Domain Abstraction: 0 1 2 x 4 x x x x State: x 0 x x 1 x 4 2 x p0 = 1 p1 = 4 – 1 = 3 (because position of 1 is higher than 0) p2 = 7 – 2 = 5 (because position of 2 is higher than 1 and 0) p3 = 6 – 2 = 4 (because position of 4 is higher than 1 and 0) Hash = 1 + (9 * 3) + (72 * 5) + (504 * 4) = 2404

8 Background Hash ValueDomain 1Domain 2 0 1 2 3 x x x x x 0 x x x x x 6 7 8 0 1 2 3 x x x x x 0 x x x x x 6 7 8 00 1 2 3 x x x x x 0 6 7 8 x x x x x 11 0 2 3 x x x x x 6 0 7 8 x x x x x 21 2 0 3 x x x x x 6 7 0 8 x x x x x.. 90 2 1 3 x x x x x0 7 6 8 x x x x x

9 Experiments Four domain abstractions with four constants each: Φ1: 0 1 2 3 4 x x x x Φ1: 0 1 2 3 4 x x x x Φ2: 0 x x x x 5 6 7 8 Φ2: 0 x x x x 5 6 7 8 Φ3: 0 x 2 x 4 x 6 x 8 Φ3: 0 x 2 x 4 x 6 x 8 Φ4: 0 1 x 3 x 5 x 7 x Φ4: 0 1 x 3 x 5 x 7 x Generated 100 random start states and saved them to file.

10 Results φ Average Nodes Generated Max Nodes/ Iteration Min Nodes/ Iteration Average no. of lookups on final it. 1931.135309181188.43 2590.36360413742.26 31121.537124131298.49 41926.6724725132321.28

11 Hybrids Three hybrids were created: Three hybrids were created: Φ1 + Φ2 Φ1 + Φ2 Φ1 + Φ3 Φ1 + Φ3 Φ3 + Φ4 Φ3 + Φ4

12 Drum roll… Hybrid Average Nodes Generated Max Nodes/ Iteration Min Nodes/ Iteration Average Successful Lookups Average Failed Lookups 1 + 2 71 893.64 549 801 611942.7 42 856.14 1 + 3 38 296.53 332 451 861278.06 21 832.52 3 + 4 25 937.87 333 732 471008.16 14 174.29

13 Wow… that sucks. Why? Possibilities: Possibilities: Are the values being lost randomly? Are the values being lost randomly? Likely to be closer to the goal since we’re removing the low values. Likely to be closer to the goal since we’re removing the low values. This may lead to the algorithm working well at first and then getting completely lost in areas nearer to the goal. This may lead to the algorithm working well at first and then getting completely lost in areas nearer to the goal. The hashing function: The hashing function: May have some patterns that cause it to work poorly with this algorithm. May have some patterns that cause it to work poorly with this algorithm.

14 Wow… that sucks. IDA* can’t do much backchecking, so areas with a lot of lost h values could be very problematic. IDA* can’t do much backchecking, so areas with a lot of lost h values could be very problematic.

15 Possible Solutions Try with A*. Rotate the PDBs before combining them to attempt to “line them up.” e.g. line up the goal states. e.g. line up the goal states. A weird one… take the minimum of the two PDB entries into the hybrid. No failed lookups (min will always be admissible for both). No failed lookups (min will always be admissible for both).

16 Possible Solutions The search will still take the max of these mins. The search will still take the max of these mins.

17 Min Hybrid: Results Hybrid Average Nodes Generated Max Nodes/ Iteration Min Nodes/ Iteration Average no. of lookups on final it. 1 + 2 446.62744813535.56 1 + 3 279.93178113352.29 3 + 4 483.55392713553.32

18 Things to come… Try it with A*. Lining up the PDBs. Possibly trying some combinations of Min and Max Hybrids. Combining more than 2 PDBs. Checking where Max Hybrid is having the most problems. More PDBs, more hybrids, etc.


Download ppt "Dovetail Killer? Implementing Jonathan’s New Idea Tarek Sherif."

Similar presentations


Ads by Google