transfuns             package:relations             R Documentation

_T_r_a_n_s_i_t_i_v_e _C_l_o_s_u_r_e _a_n_d _R_e_d_u_c_t_i_o_n

_D_e_s_c_r_i_p_t_i_o_n:

     Computes transitive closure and reduction of an endorelation.

_U_s_a_g_e:

     transitive_reduction(x)
     transitive_closure(x)

_A_r_g_u_m_e_n_t_s:

       x: an R object inheriting from class 'relation', representing an
          endorelation.

_D_e_t_a_i_l_s:

     Let R be an endorelation on X and n be the number of elements in
     X.

     The _transitive closure_ of R is the smallest transitive relation
     on X that contains R.  The code implements Warshall's Algorithm
     which is of complexity O(n^3).

     The _transitive reduction_ of R is the smallest relation R' on X
     so that the the transitive closure of R' is the same than the
     transitive closure of R.  The function is implemented using a
     depth-first-search approach, also with complexity O(n^3).

_R_e_f_e_r_e_n_c_e_s:

     Warshall, Stephen (1962). A theorem on Boolean matrices. _Journal
     of the ACM_, *9(1)*, 11-12.

_S_e_e _A_l_s_o:

     'relation', 'reflexive_reduction'.

_E_x_a_m_p_l_e_s:

     R <- as.relation(1 : 5)
     relation_incidence(R)
     RR <- transitive_reduction(R)
     relation_incidence(RR)
     R == transitive_closure(RR)

