fixes in simplecudd & lbdd

This commit is contained in:
Vitor Santos Costa 2016-06-02 10:53:36 +01:00
parent f7c3aef830
commit 5fd4413ffd
8 changed files with 30 additions and 25 deletions

View File

@ -269,8 +269,9 @@
problog_define_flag(compensate_unused, problog_flag_validate_boolean, 'compensate non-neutral sum for unused facts', false, aproblog) problog_define_flag(compensate_unused, problog_flag_validate_boolean, 'compensate non-neutral sum for unused facts', false, aproblog)
)). )).
% directory where problogbdd executable is located % directory where simplecudd executable is located
% automatically set during loading -- assumes it is in same place as this file (problog.yap) % automatically set during loading -- assumes it is in same place as this file (problog.yap)
%:- PD = /usr/local/bin, set_problog_path(PD).
:- getcwd(PD), set_problog_path(PD). :- getcwd(PD), set_problog_path(PD).
aproblog_flag(F,V) :- aproblog_flag(F,V) :-

View File

@ -698,7 +698,7 @@ bdd_optimization(N,EV,Decisions,Status) :-
; ;
Param = ParamD Param = ParamD
), ),
convert_filename_to_problog_path('problogbdd', ProblogBDD), convert_filename_to_problog_path('simplecudd', ProblogBDD),
problog_flag(bdd_result,ResultFileFlag), problog_flag(bdd_result,ResultFileFlag),
convert_filename_to_working_path(ResultFileFlag, ResultFile), convert_filename_to_working_path(ResultFileFlag, ResultFile),
bdd_util_file(UtilFile), bdd_util_file(UtilFile),

View File

@ -287,7 +287,7 @@ Instead of probabilities every fact has a t( ) prefix. The t stands for tunable
~~~~ ~~~~
t(0.5)::heads(_). t(0.5)::heads(_).
~~~~ ~~~~
*/ *
/** @defgroup ProbLogPredicates ProbLog Predicates /** @defgroup ProbLogPredicates ProbLog Predicates
@ingroup ProbLog1 @ingroup ProbLog1
@ -301,7 +301,6 @@ In the description of the arguments of functors the following notation will be u
+ an argument with no preceding symbol can be used in both ways + an argument with no preceding symbol can be used in both ways
@{ @{
*/
/** /**
* @pred problog_max(+G, -Prob, -FactsUsed) * @pred problog_max(+G, -Prob, -FactsUsed)
@ -900,12 +899,16 @@ The possible values for this flag are any number greater than zero.
:- multifile(user:term_expansion/1). :- multifile(user:term_expansion/1).
% directory where problogbdd executable is located % directory where simplecudd executable is located
% automatically set during loading -- assumes it is in same place as this file (problog.yap) % automatically set during loading -- assumes it is in /usr/local/bin or same place where YAP has
% been installed.)
:- getcwd(PD0), :- getcwd(PD0),
atom_concat(PD0, '../../bin', PD), atom_concat(PD0, '../../bin', PD),
set_problog_path(PD). set_problog_path(PD).
:- PD = '/usr/local/bin',
set_problog_path(PD).
%%%%%%%%%%%% %%%%%%%%%%%%
@ -949,7 +952,7 @@ The possible values for this flag are any number greater than zero.
%%%%%%%%%%%% %%%%%%%%%%%%
:- initialization(( :- initialization((
% problog_define_flag(bdd_path, problog_flag_validate_directory, 'problogbdd directory', '.',bdd), % problog_define_flag(bdd_path, problog_flag_validate_directory, 'simplecudd directory', '.',bdd),
problog_define_flag(bdd_time, problog_flag_validate_posint, 'BDD computation timeout in seconds', 60, bdd), problog_define_flag(bdd_time, problog_flag_validate_posint, 'BDD computation timeout in seconds', 60, bdd),
problog_define_flag(save_bdd, problog_flag_validate_boolean, 'save BDD files for (last) lower bound', false, bdd), problog_define_flag(save_bdd, problog_flag_validate_boolean, 'save BDD files for (last) lower bound', false, bdd),
problog_define_flag(dynamic_reorder, problog_flag_validate_boolean, 'use dynamic re-ordering for BDD', true, bdd), problog_define_flag(dynamic_reorder, problog_flag_validate_boolean, 'use dynamic re-ordering for BDD', true, bdd),

View File

@ -302,7 +302,7 @@ term_expansion_intern_ad((Head<--Body), Module, Mode, [user:ad_intern((Head<--Bo
). ).
term_expansion_intern_ad( (Head<--Body),_,_) :- term_expansion_intern_ad( (Head<--Body),_,_) :-
format(chars(Error), 'Error at compiling the annotated disjunction ~q<--Body.',[Head,Body]), format(chars(Error), 'Error at compiling the annotated disjunction ~q<--~qb.',[Head,Body]),
print_message(error,Error), print_message(error,Error),
fail. fail.

View File

@ -204,7 +204,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Prolog interface for problogbdd % Prolog interface for simplecudd
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
:-use_module(library(system)). :-use_module(library(system)).
@ -212,14 +212,14 @@
bdd_init(FDO, PID):- bdd_init(FDO, PID):-
pid(MYPID), pid(MYPID),
convert_filename_to_problog_path('problogbdd', ProblogBDD), convert_filename_to_problog_path('simplecudd', Simplecudd),
atomic_concat([ProblogBDD, ' -o -pid ', MYPID], C), atomic_concat([Simplecudd, ' -o -pid ', MYPID], C),
exec(C, [pipe(FDO), std, std], PID). exec(C, [pipe(FDO), std, std], PID).
bdd_init(FDO, FDI, PID):- bdd_init(FDO, FDI, PID):-
pid(MYPID), pid(MYPID),
convert_filename_to_problog_path('problogbdd', ProblogBDD), convert_filename_to_problog_path('simplecudd', Simplecudd),
atomic_concat([ProblogBDD, ' -o -m o -pid ', MYPID], C), atomic_concat([Simplecudd, ' -o -m o -pid ', MYPID], C),
exec(C, [pipe(FDO), pipe(FDI), std], PID). exec(C, [pipe(FDO), pipe(FDI), std], PID).
bdd_commit(FDO, LINE):- bdd_commit(FDO, LINE):-

View File

@ -334,5 +334,6 @@ path_grouping(PathSep) :-
path_separator('\\') :- path_separator('\\') :-
current_prolog_flag( windows, true ). current_prolog_flag( windows, true ).
path_separator('/'). path_separator('/').

View File

@ -552,7 +552,9 @@ init_learning :-
problog_flag(alpha,auto) problog_flag(alpha,auto)
-> ->
( (
(user:example(_,_,P,_),P<1,P>0) user:example(_,_,P,_),
P<1,
P>0
-> ->
set_problog_flag(alpha,1.0); set_problog_flag(alpha,1.0);
( (
@ -603,7 +605,6 @@ init_one_query(QueryID,Query,Type) :-
atomic_concat(['query_',QueryID],Filename1), atomic_concat(['query_',QueryID],Filename1),
concat_path_with_filename(Query_Directory,Filename1,Filename), concat_path_with_filename(Query_Directory,Filename1,Filename),
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% if BDD file does not exist, call ProbLog % if BDD file does not exist, call ProbLog
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@ -728,9 +729,8 @@ update_query(QueryID,Symbol,What_To_Update) :-
format_learning(4,'#',[]); format_learning(4,'#',[]);
( (
problog_flag(sigmoid_slope,Slope), problog_flag(sigmoid_slope,Slope),
problog_dir(PD),
((What_To_Update=all;query_is_similar(_,QueryID)) -> Method='g' ; Method='l'), ((What_To_Update=all;query_is_similar(_,QueryID)) -> Method='g' ; Method='l'),
convert_filename_to_problog_path('problogbdd', Simplecudd), convert_filename_to_problog_path('simplecudd', Simplecudd),
atomic_concat([Simplecudd, atomic_concat([Simplecudd,
' -i "', Probabilities_File, '"', ' -i "', Probabilities_File, '"',
' -l "', Query_Directory,'/query_',QueryID, '"', ' -l "', Query_Directory,'/query_',QueryID, '"',

View File

@ -409,14 +409,14 @@ init_learning :-
learning_initialized, learning_initialized,
!. !.
init_learning :- init_learning :-
convert_filename_to_problog_path('problogbdd_lfi', Path), convert_filename_to_problog_path('simplecudd_lfi', Path),
( (
file_exists(Path) file_exists(Path)
-> ->
true; true;
( (
problog_path(PD), problog_path(PD),
format(user_error, 'WARNING: Can not find file: problogbdd_lfi. Please place file in problog path: ~q~n',[PD]), format(user_error, 'WARNING: Can not find file: simplecudd_lfi. Please place file in problog path: ~q~n',[PD]),
fail fail
) )
), ),