View Javadoc

1   package net.obsearch.index.utils;
2   
3   import java.util.HashSet;
4   import java.util.Set;
5   
6   import org.opt4j.benchmark.DoubleCopyDecoder;
7   import org.opt4j.benchmark.DoubleString;
8   import org.opt4j.core.problem.Creator;
9   import org.opt4j.core.problem.Decoder;
10  import org.opt4j.core.problem.Evaluator;
11  import org.opt4j.core.problem.ProblemModule;
12  
13  import com.google.inject.Inject;
14  /**
15   * Optimizing module for finding optimal config parameters.
16   * 
17   *
18   */
19  public class OBOptimizerModule extends ProblemModule {
20  	private static Creator<DoubleString> creator;
21  	private static Evaluator<DoubleString> eval;
22  	private static Class<? extends Decoder<DoubleString, DoubleString>> decoder;
23  	
24  	public OBOptimizerModule(){
25  		
26  	}
27  	/**
28  	 * Creates an OB optimizer module with a double creator and an instance
29  	 * for evaluator (it doesn't make sense to create anything since the evaluator will
30  	 * be called on top of the Index).
31  	 * @param creator double creator
32  	 * @param eval evaluator
33  	 */
34  	
35  	public OBOptimizerModule(Creator<DoubleString> creator, Evaluator<DoubleString> eval){
36  		this.creator = creator;
37  		this.eval = eval;
38  		decoder = DoubleCopyDecoder.class;
39  	}
40  
41  	@Override
42  	protected void configure() {
43  		
44  		Set<Class<?>> classes = new HashSet<Class<?>>() {
45  			{				
46  				add(decoder);
47  			}
48  		};
49  
50  		for (Class<?> clazz : classes) {
51  			bind(clazz).in(SINGLETON);
52  		}
53  
54  		bind(Creator.class).toInstance(creator);
55  		bind(Decoder.class).to(decoder);
56  		bind(Evaluator.class).toInstance(eval);
57  
58  	}
59  	@Override
60  	protected void config() {
61  		configure();
62  		
63  	}
64  
65  }