aging.prefatt.game          package:igraph          R Documentation

_G_e_n_e_r_a_t_e _a_n _e_v_o_l_v_i_n_g _r_a_n_d_o_m _g_r_a_p_h _w_i_t_h _p_r_e_f_e_r_e_n_t_i_a_l _a_t_t_a_c_h_m_e_n_t
_a_n_d _a_g_i_n_g

_D_e_s_c_r_i_p_t_i_o_n:

     This function creates a random graph by simulating its evolution.
     Each time a new vertex is added it creates a number of links to
     old vertices and the probability that an old vertex is cited
     depends on its in-degree (preferential attachment) and age.

_U_s_a_g_e:

     aging.prefatt.game (n, pa.exp, aging.exp, m = NULL, aging.bin = 300,
          out.dist = NULL, out.seq = NULL, out.pref = FALSE,
          directed = TRUE, zero.deg.appeal = 1, zero.age.appeal = 0,
          deg.coef = 1, age.coef = 1, time.window = NULL)

_A_r_g_u_m_e_n_t_s:

       n: The number of vertices in the graph.

  pa.exp: The preferantial attachment exponent, see the details below.

aging.exp: The exponent of the aging, usually a non-positive number,
          see details below.

       m: The number of edges each new vertex creates (except the very
          first vertex). This argument is used only if both the
          'out.dist' and 'out.seq' arguments are NULL.

aging.bin: The number of bins to use for measuring the age of vertices,
          see details below.

out.dist: The discrete distribution to generate the number of edges to
          add in each time step if 'out.seq' is NULL. See details
          below.

 out.seq: The number of edges to add in each time step, a vector
          containing as many elements as the number of vertices. See
          details below.

out.pref: Logical constant, whether to include edges not initiated by
          the vertex as a basis of preferential attachment. See details
          below.

directed: Logical constant, whether to generate a directed graph. See
          details below.

zero.deg.appeal: The degree-dependent part of the 'attractiveness' of
          the vertices with no adjacent edges. See also details below.

zero.age.appeal: The age-dependent part of the 'attrativeness' of the
          vertices with age zero. It is usually zero, see details
          below.

deg.coef: The coefficient of the degree-dependent 'attractiveness'. See
          details below.

age.coef: The coefficient of the age-dependent part of the
          'attractiveness'. See details below.

time.window: Integer constant, if NULL only adjacent added in the last
          'time.windows' time steps are counted as a basis of the
          preferential attachment. See also details below.

_D_e_t_a_i_l_s:

     This is a discrete time step model of a growing graph. We start
     with a network containing a single vertex (and no edges) in the
     first time step. Then in each time step (starting with the second)
     a new vertex is added and it initiates a number of edges to the
     old vertices in the network. The probability that an old vertex is
     connected to is proportional to 

             P[i] ~ (c k[i]^alpha + a) (d l[i]^beta + a)


     Here k[i] is the in-degree of vertex i in the current time step
     and l[i] is the age of vertex i. The age is simply defined as the
     number of time steps passed since the vertex is added, with the
     extension that vertex age is divided to be in 'aging.bin' bins.

     c, alpha, a, d, beta and b are parameters and they can be set via
     the following arguments: 'pa.exp' (alpha, mandatory argument),
     'aging.exp' (beta, mandatory argument), 'zero.deg.appeal' (a,
     optional, the default value is 1), 'zero.age.appeal' (b, optional,
     the default is 0), 'deg.coef' (c, optional, the default is 1), and
     'age.coef' (d, optional, the default is 1).

     The number of edges initiated in each time step is governed by the
     'm', 'out.seq' and 'out.pref' parameters. If 'out.seq' is given
     then it is interpreted as a vector giving the number of edges to
     be added in each time step. It should be of length 'n' (the number
     of vertices), and its first element will be ignored. If 'out.seq'
     is not given (or NULL) and 'out.dist' is given then it will be
     used as a discrete probability distribution to generate the number
     of edges. Its first element gives the probability that zero edges
     are added at a time step, the second element is the probability
     that one edge is added, etc. ('out.seq' should contain
     non-negative numbers, but if they don't sum up to 1, they will be
     normalized to sum up to 1. This behavior is similar to the 'prob'
     argument of the 'sample' command.)

     By default a directed graph is generated, but it 'directed' is set
     to 'FALSE' then an undirected is created. Even if an undirected
     graph is generaed k[i] denotes only the adjacent edges not
     initiated by the vertex itself except if 'out.pref' is set to
     'TRUE'.

     If the 'time.window' argument is given (and not NULL) then k[i]
     means only the adjacent edges added in the previous 'time.window'
     time steps.

     This function might generate graphs with multiple edges.

_V_a_l_u_e:

     A new graph.

_A_u_t_h_o_r(_s):

     Gabor Csardi csardi@rmki.kfki.hu

_S_e_e _A_l_s_o:

     'barabasi.game', 'erdos.renyi.game'

_E_x_a_m_p_l_e_s:

     # The maximum degree for graph with different aging exponents
     g1 <- aging.prefatt.game(10000, pa.exp=1, aging.exp=0, aging.bin=1000)
     g2 <- aging.prefatt.game(10000, pa.exp=1, aging.exp=-1,   aging.bin=1000)
     g3 <- aging.prefatt.game(10000, pa.exp=1, aging.exp=-3,   aging.bin=1000)
     max(degree(g1))
     max(degree(g2))
     max(degree(g3))

