:- dynamic set/2.

/********** Learning Method **************/
% here are quite a few possibile combination.
%set(learning_mode,iterative_covering).
set(learning_mode,generalAll_thenGlobalSelection).

/********** single-seed or compound-seed? ************/
set(generalization_method,solo_generalization).
%set(generalization_method,co_generalization).



/********** Selection Method ************/
%set(hypotheses_SelectionMethod,solo_greedy). % the basic covering algorithm 
%set(hypotheses_SelectionMethod,smallestShared).
set(hypotheses_SelectionMethod,dynamicProgramming_backwards_on_tree).

/********* Cross Validation *********/
set(cross_validation_method,leave_one_out).
%set(cross_validation_method,nonSingleEx_fold). % provide fold information. 

set(ignore_predictDefault,yes).
%set(ignore_defaultPredicted,no).if you choose this one, then you need to add back those default % this will save the time to proving those will already


% autamatically divide into 10 fold. or manually devide. 

%set(sampleSize,4). 
set(sampleSize,SampleSize):- set(totalDataSize,SampleSize).
set(numFolds,10).
set(repeatTimes,10).

set(default_evaluation,yes).


learn(PosEIs,NegEIs,Hypothesis):-
	set(learning_mode,iterative_covering),!,
	cover(PosEIs,NegEIs,[],HypothesisTI),
	tInterpreter(HypothesisTI,Hypothesis).

% negative examples are not used so far
learn(PosEIs,NegEIs,Hypothesis):-
	set(learning_mode,generalAll_thenGlobalSelection),
	set(hypotheses_SelectionMethod,smallestShared),!,
	%selectSharedClauses(PosEIs,HypothesisTI),
	%tInterpreter(HypothesisTI,Hypothesis).
	% indentifySharedClauses(PosEIs).
	hypothesisSelection_smallestShared(PosEIs).
/*
	prefixTreeBuilder(PosEIs),
	claNode(startNode,StartNodeCoverage),
	%tell('tomato_hypothesisSelection_moduleGeneralization.txt'),
	hypothesisSelection(startNode-StartNodeCoverage,Hypothesis),
	nl.
*/

learn(PosEIs,NegEIs,Hypothesis):-
	set(learning_mode,generalAll_thenGlobalSelection),
	set(hypotheses_SelectionMethod,dynamicProgramming_backwards_on_tree),!,
	%selectSharedClauses(PosEIs,HypothesisTI),
	%tInterpreter(HypothesisTI,Hypothesis).
	% indentifySharedClauses(PosEIs).
	hypothesisSelection_dynamicProgramming(PosEIs,HypothesisTI),
	tInterpreter(HypothesisTI,Hypothesis).


%set(probalitistic,yes).

