Skip to content

Commit 1f41597

Browse files
committed
Moving current implementation of BidirectionalSearch from core to extra.
1 parent 5da0bfa commit 1f41597

3 files changed

Lines changed: 33 additions & 9 deletions

File tree

‎README.md‎

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -195,13 +195,28 @@ Java implementation of algorithms from Russell and Norvig's "Artificial Intellig
195195
<td><a href="core/src/main/java/aima/core/search/basic/uninformed/IterativeDeepeningSearch.java">IterativeDeepeningSearch</a></td>
196196
</tr>
197197
<tr>
198-
<td>3?</td>
199-
<td>??</td>
200-
<td>Bidirectional search</td>
198+
<td rowspan="4">3?</td>
199+
<td rowspan="4">??</td>
200+
<td rowspan="4">Bidirectional search</td>
201+
<td>
202+
<!-- TODO -->
203+
</td>
204+
</tr>
205+
<tr>
201206
<td>
202-
<a href="core/src/main/java/aima/core/search/basic/uninformed/BidirectionalSearch.java">BidirectionalSearch</a>
207+
Alternative(s)
208+
</td>
209+
</tr>
210+
<tr>
211+
<td>
212+
<!-- TODO BidirectionalSearchMRS -->
203213
</td>
204214
</tr>
215+
<tr>
216+
<td>
217+
<a href="extra/src/main/java/aima/extra/search/uninformed/BidirectionalSearchGW.java">BidirectionalSearchGW</a>
218+
</td>
219+
</tr>
205220
<tr>
206221
<td>3?</td>
207222
<td>??</td>

core/src/main/java/aima/core/search/basic/uninformed/BidirectionalSearch.java renamed to extra/src/main/java/aima/extra/search/uninformed/BidirectionalSearchGW.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package aima.core.search.basic.uninformed;
1+
package aima.extra.search.uninformed;
22

33
import aima.core.search.api.BidirectionalSearchResult;
44
import aima.core.search.api.NodeFactory;
@@ -25,9 +25,10 @@
2525
* The strategy of this search implementation is inspired by the description of
2626
* the bidirectional search algorithm i.e. Problem is reversed and search is performed from both
2727
* frontiers.
28+
*
2829
* @author wormi
2930
*/
30-
public class BidirectionalSearch<A, S> implements SearchForActionsBidirectionallyFunction<A, S> {
31+
public class BidirectionalSearchGW<A, S> implements SearchForActionsBidirectionallyFunction<A, S> {
3132

3233

3334
@Override

‎test/src/test/java/aima/test/unit/search/uninformed/BidirectionalSearchTest.java‎

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
import aima.core.environment.support.ProblemFactory;
66
import aima.core.search.api.BidirectionalSearchResult;
77
import aima.core.search.api.Problem;
8-
import aima.core.search.basic.uninformed.BidirectionalSearch;
98
import aima.core.util.datastructure.Pair;
9+
import aima.extra.search.uninformed.BidirectionalSearchGW;
10+
1011
import org.junit.Test;
1112
import org.junit.runner.RunWith;
1213
import org.junit.runners.Parameterized;
@@ -32,14 +33,21 @@
3233
public class BidirectionalSearchTest {
3334
@Parameterized.Parameters(name = "{index}: {0}")
3435
public static Collection<Object[]> implementations() {
35-
return Arrays.asList(new Object[][]{{"BidirectionalSearch"}});
36+
return Arrays.asList(new Object[][]{{"BidirectionalSearchGW"}});
3637
}
3738

3839
@Parameterized.Parameter
3940
public String searchFunctionName;
4041

4142
public <A, S> BidirectionalSearchResult<A> searchForActions(Pair<Problem<A, S>, Problem<A, S>> pair) {
42-
BidirectionalSearch<A, S> search = new BidirectionalSearch<>();
43+
BidirectionalSearchGW<A, S> search;
44+
45+
if (searchFunctionName.equals("BidirectionalSearchGW")) {
46+
search = new BidirectionalSearchGW<>();
47+
}
48+
else {
49+
throw new UnsupportedOperationException("Unsupported searchFunctionName="+searchFunctionName);
50+
}
4351
return search.apply(pair.getFirst(), pair.getSecond());
4452
}
4553

0 commit comments

Comments
 (0)