Criticality in a simple model of diffusion with costs
X. Guardiola$^{1}$
A. D\'{\i}az-Guilera$^{1}$
C. J. P\'{e}rez$^{1}$
A. Arenas$^{2}$
and M. Llas$^{1}$
A new simple model of diffusion of innovations in a social network with upgrading costs is introduced. Agents are characterized by a single real variable, their technological level. According to local information agents decide whether to upgrade their level or not balancing their possible benefit with the upgrading cost. A critical point where technological avalanches display a power-law behavior is also found. This critical point is characterized by a macroscopic observable that turns out to optimize technological growth in the stationary state. Analytical results supporting our findings are found for the globally coupled case.
epsf.tex
%%% ====================================================================
%%%   This file is freely redistributable and placed into the
%%%   public domain by Tomas Rokicki.
%%%  @TeX-file{
%%%     author          = "Tom Rokicki",
%%%     version         = "2.7k",
%%%     date            = "19 July 1997",
%%%     time            = "10:00:05 MDT",
%%%     filename        = "epsf.tex",
%%%     address         = "Tom Rokicki
%%%                        Box 2081
%%%                        Stanford, CA 94309
%%%                        USA",
%%%     telephone       = "+1 415 855 9989",
%%%     email           = "rokicki@cs.stanford.edu (Internet)",
%%%     codetable       = "ISO/ASCII",
%%%     keywords        = "PostScript, TeX",
%%%     supported       = "yes",
%%%     abstract        = "This file contains macros to support the inclusion
%%%                        of Encapsulated PostScript files in TeX documents.",
%%%     docstring       = "This file contains TeX macros to include an
%%%                        Encapsulated PostScript graphic.  It works
%%%                        by finding the bounding box comment,
%%%                        calculating the correct scale values, and
%%%                        inserting a vbox of the appropriate size at
%%%                        the current position in the TeX document.
%%%
%%%                        To use, simply say
%%%
%%%                        \input epsf % somewhere early on in your TeX file
%%%
%%%                        % then where you want to insert a vbox for a figure:
%%%                        \epsfbox{filename.ps}
%%%
%%%                        Alternatively, you can supply your own
%%%                        bounding box by
%%%
%%%                        \epsfbox[0 0 30 50]{filename.ps}
%%%
%%%                        This will not read in the file, and will
%%%                        instead use the bounding box you specify.
%%%
%%%                        The effect will be to typeset the figure as
%%%                        a TeX box, at the point of your \epsfbox
%%%                        command. By default, the graphic will have
%%%                        its `natural' width (namely the width of
%%%                        its bounding box, as described in
%%%                        filename.ps). The TeX box will have depth
%%%                        zero.
%%%
%%%                        You can enlarge or reduce the figure by
%%%                        saying
%%%
%%%                          \epsfxsize=<dimen> \epsfbox{filename.ps}
%%%                        or
%%%                          \epsfysize=<dimen> \epsfbox{filename.ps}
%%%
%%%                        instead. Then the width of the TeX box will
%%%                        be \epsfxsize and its height will be scaled
%%%                        proportionately (or the height will be
%%%                        \epsfysize and its width will be scaled
%%%                        proportionately).
%%%
%%%                        The width (and height) is restored to zero
%%%                        after each use, so \epsfxsize or \epsfysize
%%%                        must be specified before EACH use of
%%%                        \epsfbox.
%%%
%%%                        A more general facility for sizing is
%%%                        available by defining the \epsfsize macro.
%%%                        Normally you can redefine this macro to do
%%%                        almost anything.  The first parameter is
%%%                        the natural x size of the PostScript
%%%                        graphic, the second parameter is the
%%%                        natural y size of the PostScript graphic.
%%%                        It must return the xsize to use, or 0 if
%%%                        natural scaling is to be used.  Common uses
%%%                        include:
%%%
%%%                           \epsfxsize  % just leave the old value alone
%%%                           0pt         % use the natural sizes
%%%                           #1          % use the natural sizes
%%%                           \hsize      % scale to full width
%%%                           0.5#1       % scale to 50% of natural size
%%%                           \ifnum #1>\hsize\hsize\else#1\fi
%%%                                       % smaller of natural, hsize
%%%
%%%                        If you want TeX to report the size of the
%%%                        figure (as a message on your terminal when
%%%                        it processes each figure), say
%%%                        `\epsfverbosetrue'.
%%%
%%%                        If you only want to get the bounding box
%%%                        extents, without producing any output boxes
%%%                        or \special{}, then say
%%%                        \epsfgetbb{filename}.  The extents will be
%%%                        saved in the macros \epsfllx \epsflly
%%%                        \epsfurx \epsfury in PostScript units of
%%%                        big points.
%%%
%%%                        Revision history:
%%%
%%%                        ---------------------------------------------
%%%                        epsf.tex macro file:
%%%                        Originally written by Tomas Rokicki of
%%%                        Radical Eye Software, 29 Mar 1989.
%%%
%%%                        ---------------------------------------------
%%%                        Revised by Don Knuth, 3 Jan 1990.
%%%
%%%                        ---------------------------------------------
%%%                        Revised by Tomas Rokicki, 18 Jul 1990.
%%%                        Accept bounding boxes with no space after
%%%                        the colon.
%%%
%%%                        ---------------------------------------------
%%%                        Revised by Nelson H. F. Beebe
%%%                        <beebe@math.utah.edu>, 03 Dec 1991 [2.0].
%%%                        Add version number and date typeout.
%%%
%%%                        Use \immediate\write16 instead of \message
%%%                        to ensure output on new line.
%%%
%%%                        Handle nested EPS files.
%%%
%%%                        Handle %%BoundingBox: (atend) lines.
%%%
%%%                        Do not quit when blank lines are found.
%%%
%%%                        Add a few percents to remove generation of
%%%                        spurious blank space.
%%%
%%%                        Move \special output to
%%%                        \epsfspecial{filename} so that other macro
%%%                        packages can input this one, then change
%%%                        the definition of \epsfspecial to match
%%%                        another DVI driver.
%%%
%%%                        Move size computation to \epsfsetsize which
%%%                        can be called by the user; the verbose
%%%                        output of the bounding box and scaled width
%%%                        and height happens here.
%%%
%%%                        ---------------------------------------------
%%%                        Revised by Nelson H. F. Beebe
%%%                        <beebe@math.utah.edu>, 05 May 1992 [2.1].
%%%                        Wrap \leavevmode\hbox{} around \vbox{} with
%%%                        the \special so that \epsffile{} can be
%%%                        used inside \begin{center}...\end{center}
%%%
%%%                        ---------------------------------------------
%%%                        Revised by Nelson H. F. Beebe
%%%                        <beebe@math.utah.edu>, 09 Dec 1992 [2.2].
%%%                        Introduce \epsfshow{true,false} and
%%%                        \epsfframe{true,false} macros; the latter
%%%                        suppresses the insertion of the PostScript,
%%%                        and instead just creates an empty box,
%%%                        which may be handy for rapid prototyping.
%%%
%%%                        ---------------------------------------------
%%%                        Revised by Nelson H. F. Beebe
%%%                        <beebe@math.utah.edu>, 14 Dec 1992 [2.3].
%%%                        Add \epsfshowfilename{true,false}.  When
%%%                        true, and \epsfshowfalse is specified, the
%%%                        PostScript file name will be displayed
%%%                        centered in the figure box.
%%%
%%%                        ---------------------------------------------
%%%                        Revised by Nelson H. F. Beebe
%%%                        <beebe@math.utah.edu>, 20 June 1993 [2.4].
%%%                        Remove non-zero debug setting of \epsfframemargin,
%%%                        and change margin handling to preserve EPS image
%%%                        size and aspect ratio, so that the actual
%%%                        box is \epsfxsize+\epsfframemargin wide by
%%%                        \epsfysize+\epsfframemargin high.
%%%                        Reduce output of \epsfshowfilenametrue to
%%%                        just the bare file name.
%%%
%%%                        ---------------------------------------------
%%%                        Revised by Nelson H. F. Beebe
%%%                        <beebe@math.utah.edu>, 13 July 1993 [2.5].
%%%                        Add \epsfframethickness for control of
%%%                        \epsfframe frame lines.
%%%
%%%                        ---------------------------------------------
%%%                        Revised by Nelson H. F. Beebe
%%%                        <beebe@math.utah.edu>, 02 July 1996 [2.6]
%%%                        Add missing initialization \epsfatendfalse;
%%%                        the lack of this resulted in the wrong
%%%                        BoundingBox being picked up, mea culpa, sigh...
%%%                        ---------------------------------------------
%%%
%%%                        ---------------------------------------------
%%%                        Revised by Nelson H. F. Beebe
%%%                        <beebe@math.utah.edu>, 25 October 1996 [2.7]
%%%                        Update to match changes in from dvips 5-600
%%%                        distribution: new user-accessible macros:
%%%                        \epsfclipon, \epsfclipoff, \epsfdrafton,
%%%                        \epsfdraftoff, change \empty to \epsfempty.
%%%                        ---------------------------------------------
%%%                        
%%%                        Modified to avoid verbosity, give help.
%%%                        --kb@cs.umb.edu, for Texinfo.
%%%  }
%%% ====================================================================
%
\ifx\epsfannounce\undefined \def\epsfannounce{\immediate\write16}\fi
 \epsfannounce{This is `epsf.tex' v2.7k <10 July 1997>}%
%
\newread\epsffilein    % file to \read
\newif\ifepsfatend     % need to scan to LAST %%BoundingBox comment?
\newif\ifepsfbbfound   % success?
\newif\ifepsfdraft     % use draft mode?
\newif\ifepsffileok    % continue looking for the bounding box?
\newif\ifepsfframe     % frame the bounding box?
\newif\ifepsfshow      % show PostScript file, or just bounding box?
\epsfshowtrue          % default is to display PostScript file
\newif\ifepsfshowfilename % show the file name if \epsfshowfalse specified?
\newif\ifepsfverbose   % report what you're making?
\newdimen\epsfframemargin % margin between box and frame
\newdimen\epsfframethickness % thickness of frame rules
\newdimen\epsfrsize    % vertical size before scaling
\newdimen\epsftmp      % register for arithmetic manipulation
\newdimen\epsftsize    % horizontal size before scaling
\newdimen\epsfxsize    % horizontal size after scaling
\newdimen\epsfysize    % vertical size after scaling
\newdimen\pspoints     % conversion factor
%
\pspoints = 1bp        % Adobe points are `big'
\epsfxsize = 0pt       % default value, means `use natural size'
\epsfysize = 0pt       % ditto
\epsfframemargin = 0pt % default value: frame box flush around picture
\epsfframethickness = 0.4pt % TeX's default rule thickness
%
\def\epsfbox#1{\global\def\epsfllx{72}\global\def\epsflly{72}%
   \global\def\epsfurx{540}\global\def\epsfury{720}%
   \def\lbracket{[}\def\testit{#1}\ifx\testit\lbracket
   \let\next=\epsfgetlitbb\else\let\next=\epsfnormal\fi\next{#1}}%
%
% We use \epsfgetlitbb if the user specified an explicit bounding box,
% and \epsfnormal otherwise.  Because \epsfgetbb can be called
% separately to retrieve the bounding box, we move the verbose
% printing the bounding box extents and size on the terminal to
% \epsfstatus.  Therefore, when the user provided the bounding box,
% \epsfgetbb will not be called, so we must call \epsfsetsize and
% \epsfstatus ourselves.
%
\def\epsfgetlitbb#1#2 #3 #4 #5]#6{%
   \epsfgrab #2 #3 #4 #5 .\\%
   \epsfsetsize
   \epsfstatus{#6}%
   \epsfsetgraph{#6}%
}%
%
\def\epsfnormal#1{%
    \epsfgetbb{#1}%
    \epsfsetgraph{#1}%
}%
%
\newhelp\epsfnoopenhelp{The PostScript image file must be findable by
TeX, i.e., somewhere in the TEXINPUTS (or equivalent) path.}%
%
\def\epsfgetbb#1{%
%
%   The first thing we need to do is to open the
%   PostScript file, if possible.
%
    \openin\epsffilein=#1
    \ifeof\epsffilein
        \errhelp = \epsfnoopenhelp
        \errmessage{Could not open file #1, ignoring it}%
    \else                       %process the file
        {%                      %start a group to contain catcode changes
            % Make all special characters, except space, to be of type
            % `other' so we process the file in almost verbatim mode
            % (TeXbook, p. 344).
            \chardef\other=12
            \def\do##1{\catcode`##1=\other}%
            \dospecials
            \catcode`\ =10
            \epsffileoktrue         %true while we are looping
            \epsfatendfalse     %[02-Jul-1996]: add forgotten initialization
            \loop               %reading lines from the EPS file
                \read\epsffilein to \epsffileline
                \ifeof\epsffilein %then no more input
                \epsffileokfalse %so set completion flag
            \else                %otherwise process one line
                \expandafter\epsfaux\epsffileline:. \\%
            \fi
            \ifepsffileok
            \repeat
            \ifepsfbbfound
            \else
                \ifepsfverbose
                    \immediate\write16{No BoundingBox comment found in %
                                    file #1; using defaults}%
                \fi
            \fi
        }%                      %end catcode changes
        \closein\epsffilein
    \fi                         %end of file processing
    \epsfsetsize                %compute size parameters
    \epsfstatus{#1}%
}%
%
% Clipping control:
\def\epsfclipon{\def\epsfclipstring{ clip}}%
\def\epsfclipoff{\def\epsfclipstring{\ifepsfdraft\space clip\fi}}%
\epsfclipoff % default for dvips is OFF
%
% The special that is emitted by \epsfsetgraph comes from this macro.
% It is defined separately to allow easy customization by other
% packages that first \input epsf.tex, then redefine \epsfspecial.
% This macro is invoked in the lower-left corner of a box of the
% width and height determined from the arguments to \epsffile, or
% from the %%BoundingBox in the EPS file itself.
%
% This version is for dvips:
\def\epsfspecial#1{%
     \epsftmp=10\epsfxsize
     \divide\epsftmp\pspoints
     \ifnum\epsfrsize=0\relax
       \special{PSfile=\ifepsfdraft psdraft.ps\else#1\fi\space
                llx=\epsfllx\space
                lly=\epsflly\space
                urx=\epsfurx\space
                ury=\epsfury\space
                rwi=\number\epsftmp
                \epsfclipstring
               }%
     \else
       \epsfrsize=10\epsfysize
       \divide\epsfrsize\pspoints
       \special{PSfile=\ifepsfdraft psdraft.ps\else#1\fi\space
                llx=\epsfllx\space
                lly=\epsflly\space
                urx=\epsfurx\space
                ury=\epsfury\space
                rwi=\number\epsftmp\space
                rhi=\number\epsfrsize
                \epsfclipstring
               }%
     \fi
}%
%
% \epsfframe macro adapted from the TeXbook, exercise 21.3, p. 223, 331.
% but modified to set the box width to the natural width, rather
% than the line width, and to include space for margins and rules
\def\epsfframe#1%
{%
  \leavevmode                   % so we can put this inside
                                % a centered environment
  \setbox0 = \hbox{#1}%
  \dimen0 = \wd0                                % natural width of argument
  \advance \dimen0 by 2\epsfframemargin         % plus width of 2 margins
  \advance \dimen0 by 2\epsfframethickness      % plus width of 2 rule lines
  \vbox
  {%
    \hrule height \epsfframethickness depth 0pt
    \hbox to \dimen0
    {%
      \hss
      \vrule width \epsfframethickness
      \kern \epsfframemargin
      \vbox {\kern \epsfframemargin \box0 \kern \epsfframemargin }%
      \kern \epsfframemargin
      \vrule width \epsfframethickness
      \hss
    }% end hbox
    \hrule height 0pt depth \epsfframethickness
  }% end vbox
}%
%
\def\epsfsetgraph#1%
{%
   %
   % Make the vbox and stick in a \special that the DVI driver can
   % parse.  \vfil and \hfil are used to place the \special origin at
   % the lower-left corner of the vbox.  \epsfspecial can be redefined
   % to produce alternate \special syntaxes.
   %
   \leavevmode
   \hbox{% so we can put this in \begin{center}...\end{center}
     \ifepsfframe\expandafter\epsfframe\fi
     {\vbox to\epsfysize
     {%
        \ifepsfshow
            % output \special{} at lower-left corner of figure box
            \vfil
            \hbox to \epsfxsize{\epsfspecial{#1}\hfil}%
        \else
            \vfil
            \hbox to\epsfxsize{%
               \hss
               \ifepsfshowfilename
               {%
                  \epsfframemargin=3pt % local change of margin
                  \epsfframe{{\tt #1}}%
               }%
               \fi
               \hss
            }%
            \vfil
        \fi
     }%
   }}%
   %
   % Reset \epsfxsize and \epsfysize, as documented above.
   %
   \global\epsfxsize=0pt
   \global\epsfysize=0pt
}%
%
%   Now we have to calculate the scale and offset values to use.
%   First we compute the natural sizes.
%
\def\epsfsetsize
{%
   \epsfrsize=\epsfury\pspoints
   \advance\epsfrsize by-\epsflly\pspoints
   \epsftsize=\epsfurx\pspoints
   \advance\epsftsize by-\epsfllx\pspoints
%
%   If `epsfxsize' is 0, we default to the natural size of the picture.
%   Otherwise we scale the graph to be \epsfxsize wide.
%
   \epsfxsize=\epsfsize{\epsftsize}{\epsfrsize}%
   \ifnum \epsfxsize=0
      \ifnum \epsfysize=0
        \epsfxsize=\epsftsize
        \epsfysize=\epsfrsize
        \epsfrsize=0pt
%
%   We have a sticky problem here:  TeX doesn't do floating point arithmetic!
%   Our goal is to compute y = rx/t. The following loop does this reasonably
%   fast, with an error of at most about 16 sp (about 1/4000 pt).
%
      \else
        \epsftmp=\epsftsize \divide\epsftmp\epsfrsize
        \epsfxsize=\epsfysize \multiply\epsfxsize\epsftmp
        \multiply\epsftmp\epsfrsize \advance\epsftsize-\epsftmp
        \epsftmp=\epsfysize
        \loop \advance\epsftsize\epsftsize \divide\epsftmp 2
        \ifnum \epsftmp>0
           \ifnum \epsftsize<\epsfrsize
           \else
              \advance\epsftsize-\epsfrsize \advance\epsfxsize\epsftmp
           \fi
        \repeat
        \epsfrsize=0pt
      \fi
   \else
     \ifnum \epsfysize=0
       \epsftmp=\epsfrsize \divide\epsftmp\epsftsize
       \epsfysize=\epsfxsize \multiply\epsfysize\epsftmp
       \multiply\epsftmp\epsftsize \advance\epsfrsize-\epsftmp
       \epsftmp=\epsfxsize
       \loop \advance\epsfrsize\epsfrsize \divide\epsftmp 2
       \ifnum \epsftmp>0
          \ifnum \epsfrsize<\epsftsize
          \else
             \advance\epsfrsize-\epsftsize \advance\epsfysize\epsftmp
          \fi
       \repeat
       \epsfrsize=0pt
     \else
       \epsfrsize=\epsfysize
     \fi
   \fi
}%
%
% Issue some status messages if the user requested them
%
\def\epsfstatus#1{% arg = filename
   \ifepsfverbose
     \immediate\write16{#1: BoundingBox:
                  llx = \epsfllx\space lly = \epsflly\space
                  urx = \epsfurx\space ury = \epsfury\space}%
     \immediate\write16{#1: scaled width = \the\epsfxsize\space
                  scaled height = \the\epsfysize}%
   \fi
}%
%
%   We still need to define the tricky \epsfaux macro. This requires
%   a couple of magic constants for comparison purposes.
%
{\catcode`\%=12 \global\let\epsfpercent=%\global\def\epsfbblit{%BoundingBox}}%
\global\def\epsfatend{(atend)}%
%
%   So we're ready to check for `%BoundingBox:' and to grab the
%   values if they are found.
%
%   If we find a line
%
%   %%BoundingBox: (atend)
%
%   then we ignore it, but set a flag to force parsing all of the
%   file, so the last %%BoundingBox parsed will be the one used.  This
%   is necessary, because EPS files can themselves contain other EPS
%   files with their own %%BoundingBox comments.
%
%   If we find a line
%
%   %%BoundingBox: llx lly urx ury
%
%   then we save the 4 values in \epsfllx, \epsflly, \epsfurx, \epsfury.
%   Then, if we have not previously parsed an (atend), we flag completion
%   and can stop reading the file.  Otherwise, we must keep on reading
%   to end of file so that we find the values on the LAST %%BoundingBox.
\long\def\epsfaux#1#2:#3\\%
{%
   \def\testit{#2}%             % save second character up to just before colon
   \ifx#1\epsfpercent           % then first char is percent (quick test)
       \ifx\testit\epsfbblit    % then (slow test) we have %%BoundingBox
            \epsfgrab #3 . . . \\%
            \ifx\epsfllx\epsfatend % then ignore %%BoundingBox: (atend)
                \global\epsfatendtrue
            \else               % else found %%BoundingBox: llx lly urx ury
                \ifepsfatend    % then keep parsing ALL %%BoundingBox lines
                \else           % else stop after first one parsed
                    \epsffileokfalse
                \fi
                \global\epsfbbfoundtrue
            \fi
       \fi
   \fi
}%
%
%   Here we grab the values and stuff them in the appropriate definitions.
%
\def\epsfempty{}%
\def\epsfgrab #1 #2 #3 #4 #5\\{%
   \global\def\epsfllx{#1}\ifx\epsfllx\epsfempty
      \epsfgrab #2 #3 #4 #5 .\\\else
   \global\def\epsflly{#2}%
   \global\def\epsfurx{#3}\global\def\epsfury{#4}\fi
}%
%
%   We default the epsfsize macro.
%
\def\epsfsize#1#2{\epsfxsize}%
%
%   Finally, another definition for compatibility with older macros.
%
\let\epsffile=\epsfbox
\endinput

simple_model.tex
\documentstyle[pre,twocolumn,aps,epsf,floats]{revtex}
%\documentstyle[preprint,aps,epsf,floats]{revtex}

\font\tenmsb=msbm10
\def\Bbb#1{\hbox{\tenmsb#1}}

\begin{document}
\draft
%\title{Criticality in a simple model of diffusion with costs}
\title{Modelling diffusion of innovations in a social network}  

\author{X. Guardiola$^{1}$, A. D\'{\i}az-Guilera$^{1}$, C. J. P\'{e}rez$^{1}$,
A. Arenas$^{2}$, and M. Llas$^{1}$}
\address{
	$^1$Departament de F\'{\i}sica Fonamental, Universitat de
 	Barcelona, Diagonal 647, E-08028
	Barcelona, Spain \\
	$^2$Departament d'Enginyeria Inform\`{a}tica, Universitat
Rovira i Virgili, Carretera Salou s/n, E-43006  Tarragona, Spain \\}
\maketitle


\begin{abstract}
A new simple model of diffusion of innovations in a social network with
upgrading costs is introduced. Agents are characterized by a
single real variable, their technological level. According to
local information agents decide whether to upgrade their level or not
balancing their possible benefit with the upgrading cost.
A critical point where technological avalanches display a
power-law behavior is also found. This critical point is characterized
by a macroscopic observable that turns out to optimize technological
growth in the stationary state. Analytical results supporting our
findings are found for the globally coupled case.  
\end{abstract}

\pacs{87.23.Ge, 87.23.Kg, 05.65.+b, 45.70.Ht}

There has recently been much interest in modeling social and
economical systems from a physical point of
view\cite{Mantegna:99a,Bouchaud:00a,Oliveira:99a}. Most of these
studies have fallen into two classes: statistical analysis of time
series and agent based microscopic models. Among the latter, most of
them have been proposed in order to mimic financial markets
behavior\cite{Eguiluz:00a,Lux:99a,Challet:00a}. Despite this, several
 authors have, on their turn, developed models to simulate other sort
of social behaviors such as the adoption of competing
products\cite{Goldenberg:00a}, innovation and
collaboration\cite{Arenas:00a,Arenas:01a} or group
decision-making\cite{Galam:00b}. The main goal of all these
models is to reproduce real world behavior while simplifying the theoretical
models retaining as less parameters as possible. 

Keeping this in mind, we have tackled the problem of diffusion of innovations
in a social network. In order to understand the complex behavior of
technology adoption dynamics one should consider how the stimulus for
change spreads by gradual local interaction through a social
network. Most of the times, these ``waves'' of change come in terms of
intermittent bursts separating relatively long periods of quiescence,
in other words, the system exhibits ``punctuated equilibrium''
behavior. Certainly some technologies, like cellular phones or VCR's, seem to
lurk in the background for years and then suddenly explode into mass 
use\cite{Krugman:96a}.

There are two main mechanisms involved in the diffusion of innovations
in a social network that any mathematical model should take into
account. On the one hand, there is a pressure for adopting
a new product or technology coming from marketing campaigns and mass media. These external processes
are essentially independent of the social network structure and one
can view their effects as a random independent process on the
individuals (hereafter called {\em agents}). On the other hand, there
is the influence of the surrounding agents who define the social network.
Once an agent decides to adopt a new technology, those who are
in contact with him can evaluate the new payoff the agent has got from
acquiring the new technology and compare it with their current
benefits. This propagating mechanism stands for interpersonal,
such as word of mouth, communication processes.  By balancing the
payoff increment with the associated upgrading cost, they may decide
to adopt, or not, the new technology. In this way, the local flux of
information plays a key role in diffusing new products. It is
important to notice that we are not considering any compatibility
constraint among the agents. Links only account for the flux of information
among agents who decide to take an action or another for their
exclusively own benefit.     

In this letter we propose a simple model of diffusion of technological
innovations with costs. In the simplest version of the model, a
population of $N$ agents lie in a one-dimensional chain with periodic
boundary conditions. Each agent $i$ is characterized by the real variable
$a_i$. This variable stands for their technological level, that is,
the higher $a_i$, the more advanced (technologically speaking) he is
. We will assume that the payoff that an agent receives from
possessing a certain technological level is simply proportional to
it. The model is then simulated as follows: 

(i) at each time step, a randomly
selected agent $a_i$ updates his technological level
\begin{equation}
a_i\rightarrow a_i+\Delta_i,
\end{equation}
where $\Delta_i$ is a random variable exponentially 
distributed with mean $\lambda$, that is, $p(\Delta) =
e^{-\Delta/\lambda}/\lambda$. This driving process accounts for
the external pressure that may lead to a spontaneous new technology
adoption by any of the population agents. In all
numerical simulations shown in this letter we have used
$\lambda=1/2$. However, all results are robust against other noise
choices, as long as they have a finite variance. 

(ii) all agents
$j\epsilon\Gamma(i)$ ($\Gamma(i)$ being the set of neighbors of agent
$i$) decide whether they also want to upgrade or not, according to 
the following rule 

\begin{equation}
a_i - a_j \geq C \Rightarrow a_j \rightarrow a_i,
\end{equation}
where $C$ (cost) is a constant parameter that stands for the price an
agent must pay in order to upgrade his technology as well as his personal
``resistance'' to change. 

(iii) if any $a_j$ has decided to also
upgrade his level, we let their neighbors also choose
whether to upgrade or not. This procedure is repeated until no one
else wants to upgrade, concluding a {\em technological avalanche}. 
Whenever an agent $a_i$ decides to
upgrade, their neighbors become aware of the new technology and
balance the profit they may obtain in case of also adopting it
($a_i-a_j$) with its cost $C$. It may well happen that if the technological
innovation spontaneously adopted by the seed of the avalanche is high
enough compared with the cost, the avalanche may end up spanning a large portion of the population. 

\begin{figure}
\label{perfil}
\centerline{
        \epsfxsize= 8.0cm
        \epsffile{grafiques_perfil.eps}}
        \caption{Technological profiles ($N=1024$) for several values
        of $C$ in the stationary state. For $C=0.5$ the profile is
        almost flat (synchronized state) with everybody sharing the
        same technology. As we increase $C$ the profile gets noisier
        and plateaus (agents that, at some point have shared the same
        technology) become less common. For $C=5$ the technological
        profile is very random.}
\end{figure}

According to the cost value $C$ it is possible to distinguish several regimes.
In Fig. 1 we can see some examples of the technology profile (the
interface defined by the technology level of all agents) for several
values of the cost $C$.
For $C\ll1$, once there is an external random update, a system size
avalanche is immediately triggered so that all agents end up sharing
the same technological level, or in other words, the system is always
in an almost synchronized state. For values of $C\gg1$ upgrading is so
expensive that agents do not care about their neighbors technology,
and large avalanches are not triggered any more (almost all avalanches are
of size $1$). In this regime the technological profile is quite rough
(actually, in the limit $C\rightarrow\infty$ we should recover the
random deposition model\cite{Barabasi:95a}). 
In between these two regimes, there is a region showing a
rich dynamics where one finds technological avalanches of all
possible sizes. Actually, for some values of $C$ the probability
density of having an avalanche of size $s$ shows a power-law behavior 

\begin{equation}
P(s)\sim s^{-\tau}.
\end{equation}
Fig. 2 shows $P(s)$ for several system sizes and $C=3$.
The appearance of power-law distributed quantities is usually related
to the existence of some critical point. Nevertheless,
it is difficult to locate the critical point by looking at $P(s)$
since finite-size effects provide a whole region of the parameter
space where $P(s)$ behavior is compatible with a power-law. Actually,
the same problem appears in some SOC\cite{Jensen:98a} models and the
question of whether there is critical point or a whole critical region
in some parameter space has been largely debated\cite{Lise:01a}. We need
another signature of criticality that may help us in locating the
critical point.

\begin{figure}
\label{powerlaw}
\centerline{
        \epsfxsize= 8.0cm
        \epsffile{colapse.eps}}
        \caption{Plot of the probability density of having a
        technological avalanche of size $s$ for $C=3$ in log-log
        scale. We find that
        $P(s)\sim s^{-\tau}$ with $\tau=1.72$. The peaks at the
        end of each curve are due to finite size effects. Numerical 
	simulations have been averaged over $10^8$ avalanches}
\end{figure}

A possible answer comes from the social interpretation of the
model. Social science researchers usually work with aggregated data such as
the adopting curve\cite{Valente:96a}, that is, the evolution in time
of the total number of people who adopts a certain product or
technology. Analogously, in our model we can set an arbitrary
threshold $a_{th}$ and then calculate how many agents posses a
technology $a > a_{th}$ as the upgrading process goes on. Let us label
$\phi$ the fraction of agents with $a > a_{th}$. Fig. 3
shows three adopting curves for three different values of
$C$. For $C = 1.25$ large avalanches (made of a lot of agents acquiring
the same new product or technology) are
triggered. In this way, the technological profile
advances uniformly and, the system must pay a lot of
costs. This situation is clearly inefficient. In the plot this is
reflected by the fact that the curve for $C=1.25$ is the last one to
reach $a_{th}$ (at least one of the agents), but once it begins the
whole population crosses $a_{th}$ very fast (because of the uniform 
advance).   
On the other hand, for $C=3.5$ very few avalanches 
are triggered, meaning that the profile grows in a
very non-uniform way, and its fluctuations are quite important. That
is why the $C=3.5$ curve begins crossing the threshold $a_{th}$ 
earlier than the
case $C=1.25$. However, it takes much more time the
whole population to cross the threshold and it is clearly inefficient in
terms of how many times a cost is paid.
As result, there is an intermediate value of $C$ ($C=2.5$ in the plot)
where this weighted growth process is optimized and the $\phi$ curve is
always greater than for larger and smaller cost values. That corresponds to
the critical region, where avalanches of all possible sizes are
triggered. In other words, there are some intermediate $C$ values
that let the population reach a given average technological level with
a minimum number of upgrades (and their associated costs). Therefore, we
can speak of an efficient cost region leading to an optimal growth rate.  

We can quantify this effect by computing the so-called
{\em mean velocity of progress}\cite{Arenas:00a} defined as 
ratio of the total technology advance and the total number of
upgrades. It can also be computed as 
$\rho = \left<H\right>/\left<s\right>$, where $\left<H\right>$
stands for the average total technological advance induced by an avalanche
(the interface area increment caused by an avalanche) and
$\left<s\right>$ is the average avalanche size. This quantity,
$\rho$, gives an idea of how fast the technological profile grows.
Fig. 4 shows several plots of $\rho$ against $C$ for several
system sizes. The first thing one can see is that $\rho$ has a maximum
for an intermediate value of $C$. Moreover,
$\rho_{max}$ scales with the system size as $\rho_{max}\sim N^{0.20(1)}$,
diverging in the thermodynamic limit $N\rightarrow\infty$. The
location of $\rho_{max}$ allows us to define the {\em finite size}
critical point of the model $C_cN$. A proper and detailed
characterization of this critical point will be published elsewhere.
It is also possible to exactly calculate the assymptotic value of
$\rho$. For $C\ll 1$, almost all avalanches are of the size of the
system $\left<s\right>\sim N$, and the total advance induced by them
is, in average, $N\lambda$. Therefore,
$\rho\rightarrow\lambda$. Moreover, for $C\gg 1$ the avalanches are of
unit size $\left<s\right>\sim 1$ and advance $\lambda$, so that
$\rho\rightarrow\lambda$ as well.
\begin{figure}
\label{phi}
\centerline{
        \epsfxsize= 8.0cm
        \epsffile{corbes.eps}}
        \caption{Evolution of the fraction of agents with $a >
        a_{th}=3$ for $N = 1024$ and several values of $C$ as the
        number of upgrades increases. Numerical simulations have been
	 averaged over $1000$ initial configurations. In this example the
        curve for $C = 2.5$ is always above the others.}
\end{figure}
 

In the view of all this, one can assert that it is near the critical
point where the technological profile grows more efficiently. This
leads to the following paradoxal result: upgrading costs should be
neither cheap nor expensive in order to have an optimal technological
growth. Obvioulsy, our concept of efficiency is related to the number
of times a cost is paid, that is, from the point of view of the
population but not the companies who sell the products. Sellers will
always look for a scenario where agents acquire as many new products 
as often as possible.

In order to complete our study, we have also analysed the globally coupled
case, where some analytical results have been found. 

\begin{figure}[t]
\label{rho}
\centerline{
        \epsfxsize= 8.0cm
        \epsffile{rho.eps}}
        \caption{$\rho$ as a function of $C$ for several system
        sizes. At the extremes
        $C\rightarrow 0$ and $C\rightarrow\infty$, the value of $\rho$
        goes to $<\Delta_i>=\lambda=1/2$. There is a peak,
        $\rho_{max}$, that diverges in thermodynamic limit
        $N\rightarrow\infty$. In the inset we plot $\rho_{max}$
        against system size $N$. Dashed line shows the fit $\rho_{max}\sim N^{0.20(1)}$.} 
\end{figure}

In the globally coupled version of the model information about the
technological level $a_i$ of {\em all} agents is available to {\em
any} agent. Now, agents technological level is confined in a band of
width $C$ since whenever there is a difference $a-a' \ge C$ between
any two agents, the one with the lowest level immediately adopts the
highest technological level. Moreover, the system still displays a
peak for the mean velocity of progress $\rho$ as Fig. 5
shows. What is, indeed, also quite amazing, is that the globally
coupled case also has also a power-law avalanche probability
distribution $P(s)$ at the efficient region (Fig. 5).

In order to give an estimation of $\rho$
in the stationary state, let us make some mean-field assumption (that
is, restricting to average values and neglecting fluctuations). Let us
 assume that the agents technological levels are uniformly
distributed over the band of width $C$, so that there is a density of
levels $N/C$. In order to keep things simple we also assume that
random spontaneous updates are of fixed size $\lambda$.  
Then, there is going to be an avalanche whenever any of the agents having a
technological level $a\in[C-\lambda,C]$(where the origin has been set
at the base of the band) decides to, spontaneously, adopt a new
technology. This will happen with a probability $\lambda/C$ every time
step. The agents involved in such avalanche will be those
who lie in the lowest region of the band $a\in[0,\lambda]$, and, in
average, half of them will take part in the avalanche, so that the
number of agents involved is $N\lambda/2C$. These agents will advance
their technological levels by $C$. Therefore, after $T$ time steps, in
average there will be $T\lambda/C$ avalanches and $T(1-\lambda/C)$
simple spontaneous updates. Now, we can calculate $H$, the global
technological advance after $T$ time steps, as well as $S$ the total
number of upgrades (spontaneous and induced by the avalanches)

\begin{equation}
H = \frac{T\lambda}{C}\left(\frac{N\lambda}{2C}C\right)
+T\left(1-\frac{\lambda}{C}\right)\lambda
\end{equation}
\begin{equation}
S = T + \frac{T\lambda}{C}\frac{N\lambda}{2C}.
\end{equation}
Then $\rho$ is imply given by the ratio $H/S$. In terms of the
adimensional variables $\rho/\lambda$ and $\mu\equiv\lambda/C$ we find
the relation

\begin{equation}
\rho/\lambda = \frac{\mu N/2 + 1-\mu}{1+\mu^2N/2}.
\end{equation}
This formula holds whenever $\lambda > C$, otherwise the above
assumptions are not valid, and one trivially finds that
$\rho=\lambda$. Notice that in the limit $C\rightarrow\infty$ we
also recover $\rho\rightarrow\lambda$. Fig. 5 shows a comparison 
between Eq. (6) and simulation data. Although the formula gives a
correct estimation for $C\rightarrow 0$ and $C\rightarrow\infty$,
there is some discrepancy near the peak of the $\rho$. A plausible
explanation for this is the existence of large fluctuations (as
Fig. (5) shows) so
that a mean-field approach only provides a crude estimation of $\rho$.

Now, it is possible to study the
asymptotic behavior of $\rho_{max}$ that results from maximizing
Eq. (6). We find that

\begin{equation}
\mu_{cN} = \frac{-2N-\sqrt{2N(N^2+2N-4)}}{N(2-N)}.
\end{equation}
In the thermodynamic limit $N\rightarrow \infty$,
$\mu_{cN}\rightarrow 0$ and $C_{cN}\rightarrow \infty$. Therefore, for the
globally coupled case the critical point goes to infinity and
$\rho_{max}$ diverges as $\rho_{max}\sim N$.

 In conclusion, we have presented a simple model of
diffusion of innovations in a social network displaying
rich dynamics ranging from global synchronization to critical
behavior. Costs are responsible of blocking the flux of information
over the network, but, at the same time, they are necessary to
guarantee an optimal growth of the technology profile. In order to
show this, we have computed the value of $\rho$, mean velocity of
progress, a quantity that is maximized at the critical point of the
model. We have also analytically solved a mean-field version of the
globally coupled case and showed the existence of a maximum value of $\rho$
that diverges in the thermodynamic limit. Also in this case, a power-law
avalanche distribution leading to a critical behavior has also been
found at the efficient region of the model. Therefore, one of the most
interesting things of our model is that all its most intriguing
features are qualitatively the same regardless of the systems connectivity.

We kindly acknowledge F. Vega-Redondo, J.
J. Ramasco, M. A. Rodr\'{\i}guez and J. M. L\'{o}pez 
for helpful comments. Financial support has been provided by DGES of
the Spanish Government through grant BFM2000-0626 and EU TMR Grant No
ERBFMRXCT980183. X. G. and M. Ll. also acknowledge financial support from the
Generalitat de Catalunya and the MCT of the Spanish government, respectively.

\begin{figure}[t]
\centerline{
        \epsfxsize= 8.0cm
        \epsffile{ajust_bo.eps}}
        \caption{$\rho$ for different system sizes as a function of
        $C$ for the globally coupled case. Dashed line stands
        for Eq. (6). In the inset we plot the avalanche probability
        distribution $P(s)$ around the peak of the $\rho$. For the
        simulations we have used $\lambda=0.1$.}
\end{figure}

\begin{thebibliography}{10}

\bibitem{Mantegna:99a}
R.~N. Mantegna and E. Stanley, {\em An introduction to Econophysics:
  Correlations an Complexity in Finance} (Cambridge University Press,
  Cambridge, England, 1999).

\bibitem{Bouchaud:00a}
J.~P. Bouchaud and M. Potters, {\em Theory of Financial Risk} (Cambridge
  University Press, Cambridge, England, 2000).

\bibitem{Oliveira:99a}
S.~M. de~Oliveira, P.~M.~C. de~Oliveira, and D. Stauffer, {\em Evolution,
  Money, War and Computers} (Teubner, Stuttgart-Leipzig, 1999).

\bibitem{Eguiluz:00a}
V.~M. Egu\'{\i}luz and M.~G. Zimmermann, Phys. Rev. Lett. {\bf 85},
  5659  (2000).

\bibitem{Lux:99a}
T. Lux and M. Marchesi, Nature {\bf 397},  498  (1999).

\bibitem{Challet:00a}
D. Challet, M. Marsili, and Y.-C. Zhang, Physica A {\bf 276},  284  (2000).

\bibitem{Goldenberg:00a}
J. Goldenberg {\it et~al.}, Physica A {\bf 284},  335  (2000).

\bibitem{Arenas:00a}
A. Arenas, C.~J. P\'{e}rez, A. D\'{\i}az-Guilera, and F. Vega-Redondo, Phys.
  Rev. E {\bf 61},  3466  (2000).

\bibitem{Arenas:01a}
A. Arenas, A. D\'{\i}az-Guilera, C.~J. P\'{e}rez, and F. Vega-Redondo, J.
  of Economic Dynamics and Control  , (In Press).

\bibitem{Galam:00b}
S. Galam and J.-D. Zucker, Physica A {\bf 287},  644  (2000).

\bibitem{Krugman:96a}
P.~R. Krugman, {\em The self-organizing economy} (Blackwell, Malden,
  Massachusetts, 1996).

\bibitem{Barabasi:95a}
A.-L. Barab\'{a}si and H.~E. Stanley, {\em Fractal concepts in surface growth}
  (Cambridge University Press, Cambridge, 1995).

\bibitem{Jensen:98a}
H.~J. Jensen, {\em Self-Organised Criticality} (Cambridge University Press,
  Cambridge, 1998).

\bibitem{Lise:01a}
S. Lise and M. Paczuski, Phys. Rev. E {\bf 63},  036111  (2001).

\bibitem{Valente:96a}
T.~W. Valente, Social Networks {\bf 18},  69  (1996).

\end{thebibliography}
  
%\bibliographystyle{prsty.bst}
%\bibliography{xguardi_bib}

\end{document}


cond-mat0204141.extracted_bib
\begin{thebibliography}{10}

\bibitem{Mantegna:99a}
R.~N. Mantegna and E. Stanley, {\em An introduction to Econophysics:
  Correlations an Complexity in Finance} (Cambridge University Press,
  Cambridge, England, 1999).

\bibitem{Bouchaud:00a}
J.~P. Bouchaud and M. Potters, {\em Theory of Financial Risk} (Cambridge
  University Press, Cambridge, England, 2000).

\bibitem{Oliveira:99a}
S.~M. de~Oliveira, P.~M.~C. de~Oliveira, and D. Stauffer, {\em Evolution,
  Money, War and Computers} (Teubner, Stuttgart-Leipzig, 1999).

\bibitem{Eguiluz:00a}
V.~M. Egu\'{\i}luz and M.~G. Zimmermann, Phys. Rev. Lett. {\bf 85},
  5659  (2000).

\bibitem{Lux:99a}
T. Lux and M. Marchesi, Nature {\bf 397},  498  (1999).

\bibitem{Challet:00a}
D. Challet, M. Marsili, and Y.-C. Zhang, Physica A {\bf 276},  284  (2000).

\bibitem{Goldenberg:00a}
J. Goldenberg {\it et~al.}, Physica A {\bf 284},  335  (2000).

\bibitem{Arenas:00a}
A. Arenas, C.~J. P\'{e}rez, A. D\'{\i}az-Guilera, and F. Vega-Redondo, Phys.
  Rev. E {\bf 61},  3466  (2000).

\bibitem{Arenas:01a}
A. Arenas, A. D\'{\i}az-Guilera, C.~J. P\'{e}rez, and F. Vega-Redondo, J.
  of Economic Dynamics and Control  , (In Press).

\bibitem{Galam:00b}
S. Galam and J.-D. Zucker, Physica A {\bf 287},  644  (2000).

\bibitem{Krugman:96a}
P.~R. Krugman, {\em The self-organizing economy} (Blackwell, Malden,
  Massachusetts, 1996).

\bibitem{Barabasi:95a}
A.-L. Barab\'{a}si and H.~E. Stanley, {\em Fractal concepts in surface growth}
  (Cambridge University Press, Cambridge, 1995).

\bibitem{Jensen:98a}
H.~J. Jensen, {\em Self-Organised Criticality} (Cambridge University Press,
  Cambridge, 1998).

\bibitem{Lise:01a}
S. Lise and M. Paczuski, Phys. Rev. E {\bf 63},  036111  (2001).

\bibitem{Valente:96a}
T.~W. Valente, Social Networks {\bf 18},  69  (1996).

\end{thebibliography}