123 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
		
		
			
		
	
	
			123 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
| 
								 | 
							
								/*==============================================================================
							 | 
						||
| 
								 | 
							
								 *	LPAD and CP-Logic reasoning suite
							 | 
						||
| 
								 | 
							
								 *	File: params.pl
							 | 
						||
| 
								 | 
							
								 *	Defines and sets parameters needed by other predicates (main: set).
							 | 
						||
| 
								 | 
							
								 *	Copyright (c) 2009, Stefano Bragaglia
							 | 
						||
| 
								 | 
							
								 *============================================================================*/
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								:- dynamic setting/2.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								% :- source.
							 | 
						||
| 
								 | 
							
								% :- yap_flag(single_var_warnings, on).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* PARAMETER LIST
							 | 
						||
| 
								 | 
							
								 * --------------
							 | 
						||
| 
								 | 
							
								 * The following list of parameters declares a few constants used along the 
							 | 
						||
| 
								 | 
							
								 * program.
							 | 
						||
| 
								 | 
							
								 * The default value for each parameter can be changed using the following 
							 | 
						||
| 
								 | 
							
								 * predicate:
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *   set(Parameter, Value).
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* epsilon_parsing
							 | 
						||
| 
								 | 
							
								 * ---------------
							 | 
						||
| 
								 | 
							
								 * This parameter shows the probability's granularity during parsing.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Default value:	0.00001
							 | 
						||
| 
								 | 
							
								 * Applies to:		parsing
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								setting(epsilon_parsing, 0.00001).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* ground_body
							 | 
						||
| 
								 | 
							
								 * -----------
							 | 
						||
| 
								 | 
							
								 * This parameter tells if both the head and the body of each clause must be 
							 | 
						||
| 
								 | 
							
								 * ground, or else the head only.
							 | 
						||
| 
								 | 
							
								 * In case the body contains variables not present in the head, it represents 
							 | 
						||
| 
								 | 
							
								 * an existential event.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Default value:	false
							 | 
						||
| 
								 | 
							
								 * Applies to:		parsing
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								setting(ground_body, false).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* k
							 | 
						||
| 
								 | 
							
								 * -
							 | 
						||
| 
								 | 
							
								 * This parameter shows the amount of items of the same type to consider at once.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Default value:	64
							 | 
						||
| 
								 | 
							
								 * Applies to:		bestfirst, bestk, montecarlo
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								setting(k, 64).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* min_error
							 | 
						||
| 
								 | 
							
								 * ---------
							 | 
						||
| 
								 | 
							
								 * This parameter shows the threshold for the probability interval.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Default value:	0.01
							 | 
						||
| 
								 | 
							
								 * Applies to:		bestfirst, montecarlo
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								setting(min_error, 0.01).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* prob_bound
							 | 
						||
| 
								 | 
							
								 * ----------
							 | 
						||
| 
								 | 
							
								 * This parameter shows the initial probability bound in a probability bounded 
							 | 
						||
| 
								 | 
							
								 * method.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Default value:	0.01
							 | 
						||
| 
								 | 
							
								 * Applies to:		deepit
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								setting(prob_bound, 0.001).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* prob_step
							 | 
						||
| 
								 | 
							
								 * ---------
							 | 
						||
| 
								 | 
							
								 * This parameter shows the probability deepening step in a probability bounded 
							 | 
						||
| 
								 | 
							
								 * method.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Default value:	0.001
							 | 
						||
| 
								 | 
							
								 * Applies to:		bestfirst, bestk
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								setting(prob_step, 0.001).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* save_dot
							 | 
						||
| 
								 | 
							
								 * --------
							 | 
						||
| 
								 | 
							
								 * This parameter tells if a .dot file for variables has be created.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Default value:	false
							 | 
						||
| 
								 | 
							
								 * Applies to:		bestfirst, bestk, exact
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								setting(save_dot, false).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* timeout
							 | 
						||
| 
								 | 
							
								 * -------
							 | 
						||
| 
								 | 
							
								 * This parameter shows the time to wait before killing a bdd solving process.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Default value:	300
							 | 
						||
| 
								 | 
							
								 * Applies to:		bestfirst, bestk, exact
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								setting(timeout, 300).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* PREDICATES
							 | 
						||
| 
								 | 
							
								 * ----------
							 | 
						||
| 
								 | 
							
								 * The predicates in this section interact with the parameters defined above.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* set(Parameter, Value)
							 | 
						||
| 
								 | 
							
								 * ---------------------
							 | 
						||
| 
								 | 
							
								 * This predicate drops any previously saved value for the given parameter and 
							 | 
						||
| 
								 | 
							
								 * associates it to the new given value.
							 | 
						||
| 
								 | 
							
								 * 
							 | 
						||
| 
								 | 
							
								 * INPUT
							 | 
						||
| 
								 | 
							
								 *  - Parameter: target parameter for the given new value.
							 | 
						||
| 
								 | 
							
								 *  - Value: new value to assign to the given parameter.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								set(Parameter, Value) :- 
							 | 
						||
| 
								 | 
							
									retract(setting(Parameter, _)), 
							 | 
						||
| 
								 | 
							
									assert(setting(Parameter, Value)).
							 |