[ library(visualization) | Reference Manual | Alphabetic Index ]

add_visualizer(+Handle, ++Visualizer, ++Options)

Add a visualizer to the visualisation
Handle
an opaque data structure for the visualization
Visualizer
a term, defining the visualizer
Options
a list of option:value pairs describing the options to be applied to the visualizer

Description

This predicate is used to add a visualizer to an existing visualization. It can be called after the visualization has been created with a create_visualization/2 call. The second argument is the description of the visualizer, either for variables or for constraints.

Variable visualizers display the state and/or evolution of a collection of variables. At the moment this can be one of the following entries:
Variable Visualizer Description
vector(L) The visualizer shows the current state of a collection of variables. It marks which variables have been assigned, which values have been removed and which values remain in the domain.
vector_waterfall(L) This visualizer shows the changes of the collection of variables on the path from the root node to the current node. It marks if a variable is assigned, changed (min and max, min, max or size only), or if it is not modified in each step.
vector_size(L) This visualizer shows the change of the domain sizes for a collection of variables from the root node to the current node in the search.
binary_vector(Bool) This visualizer is a special variant of the vector visualizer for a collection of 0/1 vairables. Values are marked either as unassigned, or as assigned to zero or to one.
domain_matrix(Matrix) This visualizer shows a 2D matrix of domain variables. Depending on the options, it only shows the assigned values, or displayed the values remaining in the domain.
binary_matrix(BoolMatrix) A specialized version of the matrix visualizer for 0/1 variables.

Constraint visualizers show the state and/or evolution of a global constraint. At the moment, visualizers for the following global constraints are provided.
Constraint Visualizer
alldifferent(Xs)
alldifferent_matrix(Matrix)
bin_packing(Items,Sizes,Bins)
bool_channeling(X,Bool,Start)
cumulative(Starts,Durations,Resources,Limit)
cumulative(Starts,Durationss,Resources,Limit,End)
disjoint2(Rectangles)
element(X,Vs,Y)
gcc(Limits,Vars)
gcc_matrix(RowLimits,ColLimits,Matrix)
inverse(Succ,Pred)
lex_le(Xs,Ys)
lex_lt(Xs,Ys)
same(Xs,Ys)
sequence_total(Min,Max,Low,Hi,K,ZeroOnes)

Possible Options are:

display
influences how the visualizer will be drawn (expanded, text, gantt, ...), default: minimal
group
group id number for the visualizer (integer, or 'other')
x,y
position at which the visualizer will be placed (default 0,0)

Examples

top(N,L):-
    length(L,N),
    L :: 1..N,
    alldifferent(L),
    create_visualization([],Handle),
    add_visualizer(Handle,vector(L),[]),
    number_variables(Handle,L,Terms),
    root(Handle),
    search(Terms,1,first_fail,tree_indomain(Handle,_),complete,[]),
    solution(Handle),
    close_visualization(Handle).

See Also

ic : alldifferent / 1, ic_symbolic : alldifferent / 1, gfd : alldifferent / 1, sd : alldifferent / 1, fd_global : alldifferent / 1, ic_global : alldifferent / 1, fd : alldifferent / 1, fd_global_gac : alldifferent / 1, ic_global_gac : alldifferent / 1, fd_global : alldifferent_matrix / 1, ic_global : alldifferent_matrix / 1, fd_global_gac : alldifferent_matrix / 1, ic_global_gac : alldifferent_matrix / 1, gfd : bin_packing / 3, fd_global : bin_packing / 3, ic_global : bin_packing / 3, gfd : bool_channeling / 3, fd_global : bool_channeling / 3, ic_global : bool_channeling / 3, ic_edge_finder : cumulative / 4, ic_edge_finder3 : cumulative / 4, gfd : cumulative / 4, edge_finder : cumulative / 4, edge_finder3 : cumulative / 4, cumulative : cumulative / 4, ic_cumulative : cumulative / 4, ic : element / 3, ic_symbolic : element / 3, gfd : element / 3, fd : element / 3, gfd : gcc / 2, fd_global_gac : gcc / 2, ic_global_gac : gcc / 2, fd_global_gac : gcc_matrix / 3, ic_global_gac : gcc_matrix / 3, gfd : inverse / 2, fd_global : inverse / 2, ic_global : inverse / 2, fd_global_gac : inverse / 2, ic_global_gac : inverse / 2, gfd : lex_le / 2, fd_global : lex_le / 2, ic_global : lex_le / 2, fd_global_gac : lex_le / 2, ic_global_gac : lex_le / 2, gfd : lex_lt / 2, fd_global : lex_lt / 2, ic_global : lex_lt / 2, fd_global_gac : lex_lt / 2, ic_global_gac : lex_lt / 2, fd_global_gac : same / 2, ic_global_gac : same / 2, fd_global : sequence_total / 6, ic_global : sequence_total / 6, create_visualization / 2, close_visualization / 1, visualize_tree : solution / 1, visualize_tree : try / 4, visualize_tree : failure / 4, visualize_tree : tree_indomain / 3, draw_visualization / 1