_ title of program _ : quantum trajectory class library  _ program obtainable from _ : http://galisteo.ma.rhbnc.ac.uk/applied/qsd.html and the authors .  _ licensing provisions _ :none  _ operating systems under which the program has been tested _ : unix ( gnu g++ ) , dos ( turbo c++ ) , vms ( dec c++ )  _ programming language used _ : c++  _ memory required to execute with typical data _ : 1mbyte  _ has the code been vectorized ?_ : no  _ no .of lines in distributed program , including test data , etc ._ : 8000  _ keywords _ : open quantum system , master equation , hilbert space , quantum trajectories , unraveling , stochastic simulation , quantum computation , quantum optics , quantum state diffusion , quantum jumps , monte carlo wavefunction  _ nature of physical problem _ :+ open quantum systems , i.e. , systems whose interaction with the environment can not be neglected , occur in a variety of contexts .examples are quantum optics , atomic and molecular physics , and quantum computers .if the time evolution of the system is approximately markovian , it can be described by a master equation of lindblad form [ 1 ] , a first order differential equation for the density operator .solving the master equation is the principal purpose of the program .since the state and operator classes are very general , they can be used in any physical problem involving hilbert spaces with several degrees of freedom ._ method of solution _ : + by analogy with the solution of a fokker - planck equation by numerical simulation of the corresponding stochastic differential equation , a master equation can be solved by simulating the stochastic evolution of a vector in hilbert space . the correspondence between master equation and stochastic equation is not unique : there are many ways to _ unravel _ the master equation into stochastic quantum trajectories . the program implements three such unravelings , known as the `` quantum state diffusion method ( qsd ) '' [ 2 ] , the `` quantum jump method '' [ 35 ] , and the `` orthogonal jump method''[6 ] .the phenomenon of phase - space localization [ 7,8 ] is exploited numerically by representing quantum states in a local moving basis obtained by applying the coherent - state displacement operator to the usual harmonic - oscillator basis , often leading to dramatic savings of computing resources ._ unusual features of the program _ : + it is worth emphasizing the effortless way in which operators and states in product hilbert spaces are represented .primary operators implemented in the form of simple routines acting on single degrees of freedom can be used to build up arbitrarily complex operators in product hilbert spaces with arbitrary numbers of components .building operators , performing arithmetic operations on operators and states , and applying operators to states is done using standard algebraic notation .this program structure has been made possible by systematically implementing object - oriented programming concepts such as inheritance , concepts which are not ( yet ) widely used in computational physics .encapsulation of program modules makes it easy to add new basic operators , alternative unravelings of the master equation , or different integration algorithms .  _typical running time _ : + the running time depends on the complexity of the problem , the integration time , and the number of trajectories required . a typical running time fora simple problem is a few minutes .there is no upper limit ._ references _ :  [ 1 ] g. lindblad , commun .* 48 * , 119 ( 1976 ) .  [ 2 ] n. gisin and i. c. percival , j. phys .a * 25 * , 5677 ( 1992 ) .  [ 3 ] h. j. carmichael , _ an open systems approach to quantum optics _( springer , berlin , 1993 ) .  [ 4 ]j. dalibard , y. castin , and k. mlmer , phys ., 580 ( 1992 ) .[ 5 ] c. w. gardiner , a. s. parkins , and p. zoller , phys .a * 46 * , 4363 ( 1992 ) .  [ 6 ] l. disi , phys .a * 114 * , 451 ( 1986 ) .  [ 7 ]t. steimle , g. alber , and i. c. percival , j. phys .a * 28 * , l491 ( 1995 ) .[ 8 ] r. schack , t. a. brun , and i. c. percival , j. phys .a * 28 * , 5401 ( 1995 ) .for many quantum systems of current interest it is no longer possible to neglect the interactions with the environment .those so - called _ open quantum systems _ occur in a variety of contexts including quantum optics , atomic and molecular physics , and quantum computers .open quantum systems can often be described by a master equation , a first - order differential equation for the density operator , in which the internal dynamics of the system is represented by the system hamiltonian , which is a hermitian hilbert - space operator , and the interaction with the environment is represented by one or more lindblad operators which are not necessarily hermitian .  by analogy with the solution of a fokker - planck equation by numerical simulation of the corresponding stochastic differential equation ( or langevin equation ) , a master equation can be solved by simulating the stochastic evolution of a vector in hilbert space . the correspondence between master equation and stochastic equation is not unique ; there are many ways to _ unravel _ the master equation into stochastic quantum trajectories .the main challenge of this software project was to develop a general program flexible enough to accommodate different integration algorithms and unravelings of the master equation , as well as the vast range of possible physical systems .in particular , we wanted to make it easy to add new algorithms and unravelings , and we wanted a program capable of dealing with arbitrary hamiltonian and lindblad operators in hilbert spaces with an arbitrary number of degrees of freedom .this task turned out to be ideal for the application of object - oriented programming .we chose the c++ language both because of its wide availability and because it allowed us to use standard mathematical notation for hilbert - space operations by overloading algebraic operators like ` + ' and ` ' .the core of the program are the c++ classes state and operator , which represent state vectors and operators in hilbert space . because of the object - oriented features of c++ , it is possible to hide the implementation details of these classes completely from the classes dealing with the simulation of quantum trajectories .these implementation details need not to be known either by a user of the program who wants to choose the quantum operators defining the physical problem of interest or by a programmer who wants to add a new unraveling of the master equation to the software .a welcome side effect of this encapsulation is that the state and operator classes can be used independently of the rest of the code .they should prove useful in many numerical schemes involving hilbert spaces for systems with several degrees of freedom .many hamiltonian and lindblad operators can be written as sums of products of simple operators acting on a single degree of freedom .here is an example of a hamiltonian operator coupling a two - level atom ( with raising and lowering operators and ) to an electromagnetic field mode ( with annihilation and creation operators and ) : where the parameter is the coupling strength . in the following code segment ,the atomic and field degrees of freedom are labeled 0 and 1 , respectively .the hamiltonian is defined in terms of the predefined _ primary operators _ sigmaplus and annihilationoperator using standard algebraic notation .the class adaptivestep is a _ stepper _ routine advancing the quantum trajectory by a single time step .  ....double g = 0.5 ; sigmaplus sp(0 ) ;       // operates on the 1st degree of freedom annihilationoperator a(1 ) ;  // operates on the 2nd degree of freedom operator sm = sp.hc ( ) ;    //hermitian conjugate operator ac = a.hc ( ) ; operator h = g * ( sp*a + sm*ac ) ;   //hamiltonian  ... adaptivestep thestepper ( ... , h , ... ) ;  // ... denotes further arguments ....the important feature illustrated by this example is that the stepper routine is passed an object of type operator without any reference to details like the number of degrees of freedom .all the stepper needs to know is that operators can be added , multiplied , etc . , and that they can be applied to state vectors .internally , the primary operators sigmaplus and annihilationoperator are represented as simple loops acting on a single - degree - of - freedom state vector .an instance of the more general operator class is represented by a stack that indicates which primary operators are used and the operations by which they are combined . for example , the sequence of steps executed by the program when the operator defined above is applied to a state is summarized in the expression in which the elementary steps are applying a primary operator to a state , adding two states , and multiplying a state by a scalar .it is clear from this example that a different grouping of the terms in the expression for could lead to inefficient code .this will be discussed in sec .[ secop ] .an open quantum system can not be described by a hilbert - space vector evolving according to the schrdinger equation ; instead , the state must be described by a density operator whose time evolution generally does not follow any simple law .fortunately it turns out that for a large class of systems the time evolution of the density operator is _ markovian _ to an excellent approximation , i.e. , the rate of change of at time , , depends only on , not on the value of at any earlier time .it has been shown that under the markov approximation the density operator of any open quantum system obeys a _master equation _ of lindblad form  +  \sum_j\left(\hat l_j\hat\rho \hat l_j^\dagger  - { 1\over2 } \hat l_j^\dagger\hat l_j\hat\rho  - { 1\over2}\hat\rho  \hat l_j^\dagger\hat l_j\right ) \ ; , \label{eqmaster}\ ] ] where is the system hamiltonian and the are the lindblad operators representing the interaction with the environment .  in many cases ,no analytical methods for the solution of the master equation are known ; one has to use numerical methods .but even a numerical solution of the master equation can be very hard .if a state requires basis vectors in hilbert space to represent it , the corresponding density operator will require real numbers ; this can often be too large for even the most powerful machines to handle , particularly if the system involves more than one degree of freedom .this problem can be overcome by unraveling the density operator evolution into _ quantum trajectories _ .since quantum trajectories represent the system as a state vector rather than a density operator , they often have a numerical advantage over solving the master equation directly , even though one has to average over many quantum trajectories to recover the solution of the master equation .a single quantum trajectory can give an excellent , albeit qualitative , picture of a single experimental run .the three unravelings of the master equation currently implemented are given by the following three nonlinear stochastic differential equation for a normalized state vector :  \(i ) the quantum state diffusion ( qsd ) equation  ( ii ) the quantum jump equation  and ( iii ) the orthogonal jump equation  the first sum in each of these equations represents the deterministic drift of the state vector due to the environment , and the second sum the random fluctuations .angular brackets denote the quantum expectation of the operator in the state .the are independent complex differential gaussian random variables satisfying the conditions where m denotes the ensemble mean .the are independent real discrete poissonian random variables satisfying the conditions where the `` conditional mean '' is defined as the mean over all trajectories for which , and where for the quantum jump equation ( [ eqqj ] ) and for the orthogonal jump equation ( [ eqortho ] ) .the density operator is given by the mean over the projectors onto the quantum states of the ensemble : if the pure states of the ensemble satisfy one of the quantum trajectory equations ( [ eqqsd ] ) , ( [ eqqj ] ) , or ( [ eqortho ] ) , then the density operator satisfies the master equation ( [ eqmaster ] ) : where we have assumed that initially the system is in a pure state at time . from thisit is clear that the expectation value of an operator is given by c++ library can be divided roughly into three large parts :  \1 .the state class and its associated friend functions .a state includes as member data the number of degrees of freedom it represents , how many basis vectors are allocated for each degree of freedom , the physical type of each degree of freedom , and ( of course ) the complex amplitudes of each basis vector in the total hilbert space .the member functions include constructors for a number of common state types ; arithmetic functions enabling states to be added , subtracted , multiplied by scalars , and normalized ; functions relating to the efficient use of memory , so that a state can be dynamically resized ; and functions controlling the action of operators on the state .there are also member data and functions relating to the moving basis algorithm , described below. states ( and operators ) can be used like ordinary variables . in particular ,when a locally defined state ( or operator ) goes out of scope , all memory used by it is properly returned to the system ; the user of the program need not worry about memory allocation and deallocation as this is done automatically .\2 . the operator class .operators are defined in terms of their actions on states .there is a small class of primaryoperators , whose actions on a single degree of freedom are given by pre - defined functions .more complex operators are defined in terms of these primaryoperators ; they can be added , multiplied , multiplied by scalars or time - dependent functions , conjugated , or raised to powers .an operator s member data includes a number of dynamically allocated stacks which indicate which primaryoperators are used , and the operations by which they are combined .arithmetic operations on operators are then defined by operations on these stacks .\3 . the trajectory class and associated classes .these encode the numerical algorithms for solving the quantum trajectory equations and generating output , with associated integration routines , random number generators , and other utilities .several different integration algorithms are currently included , including second- and fourth - order runge - kutta and cash - karp runge - kutta with adaptive time steps .these algorithms are used to solve the deterministic part of the quantum trajectory equations ( [ eqqsd ] ) , ( [ eqqj ] ) , and ( [ eqortho ] ) .the stochastic terms are solved using first - order euler integration .the implementation of more sophisticated stochastic integration methods ( see , e.g. , ) is straightforward . note that it is only in this part of the program that there is any reference at all to the details of quantum unravelings .the operator and state classes are very general .these three parts are roughly equal in size , but quite different in internal structure .the state class is a single monolithic c++ class with associated functions ; the operator class is a parent class with numerous descendent classes representing the different primaryoperators .the numerical integration classes are independent of the details of state and operator , and of each other . because of the object - oriented nature of c++ , these three groups need know very little about each other s internal workings .the following more detailed discussion is not exhaustive ; a complete description of the code can be found in the extensively commented # include files , particularly in state.h , operator.h , and traject.h .we represent a state with a single degree of freedom by an array of complex amplitudes in a given basis : the choice of basis vectors depends on the physical type of the system . for field modes ,we use fock states ; for spins ( ) , we use eigenstates and ; for -level atoms , we use energy levels . other types , e.g. , molecules or higher spins , can be added easily .of course , a true field mode has an infinite - dimensional hilbert space .the state class represents fields by a finite number of basis states , which should be taken as a truncation of the true infinite expansion .  to represent a state then requires the physical type ( currently field , spin or atom ) , the number of basis vectors , and an array of complex amplitudes .the state class contains constructors for many typical situations .for instance , the expression  .... state psi(2,spin ) ; ....  defines psi to be the state of a spin ( ) , and  .... complex alpha(0.2,0.3 ) ; state psi(100,alpha , field ) ; ....  defines a coherent state with truncated to basis states .arithmetic operations for states are defined internally as operations on the complex amplitudes . in the following code examples ,the state is formed from the fock states and , added to , and then renormalized ; finally , the inner product is evaluated . here basis states are more than sufficient to represent all states without any truncation .  .... state psi1(10,0,field ) ; state psi2(10,3,field ) ; state psi3 = 0.5*psi1 - psi2 ; psi1 + = psi3 ; psi3.normalize ( ) ; complex z = psi2*psi3 ; ....  the expression psi1+=psi3 is superior to the alternative psi1=psi1+psi3 because it avoids the creation of temporary state objects , which is an important consideration in high - dimensional hilbert spaces .   a general way of representing operators is as complex matrices acting on vectors in -dimensional hilbert space . for large , however , this can be very inefficient , as these matrices become very large , and applying them to states requires operations .fortunately , most of the operators of interest in quantum systems are _ sparse _ , consisting of sums and products of a few primary operators . for fields ,such primary operators are annihilation and creation operators and and position and momentum operators and ; for spins , the primary operators are the pauli matrices ; for atoms , we have the transition operators .  in the program , these primary operators are implemented as simple classes , as illustrated for the spin operator in the following code section ..... class sigmaplus : public primaryoperator { public :  sigmaplus ( ) : primaryoperator(0,spin ) { } ;  sigmaplus(int freedom ) : primaryoperator(freedom , spin ) { } ;  virtual void applyto(state&,int , double ) ; } ; void sigmaplus::applyto(state & v , int hc , double ) {  switch ( hc ) {  case no_hc :   v[1 ] = v[0 ] ; v[0 ] = 0 ; break ;  case hc :   v[0 ] = v[1 ] ; v[1 ] = 0 ; break ;   } } ....  the sigmaplus class is derived from the abstract class primaryoperator which serves as an interface to the different special classes like sigmaplus . apart from the two constructors , the class contains only the method applyto .the three arguments of applyto are a single - degree of freedom state , an integer switch determining whether to apply or its hermitian conjugate , and a double argument specifying the time for time - dependent operators , which is not used here .the program represents _ composite operators _ , i.e. , sums and products of primary operators , by stacks containing pointers to primary operators as illustrated in fig .[ figstack ] .those stacks are the principal member data of the operator class , which is the parent class of primaryoperator and therefore of all special classes derived from primaryoperator . for a primary operator like sigmaplus ,the stack consists just of the pointer to this , which points to the primary operator itself .figure [ figinherit ] shows the hierarchy of operator classes .  the example stack in box 3 in fig .[ figstack ] is generated by the code segment  .... operator o1 = a + b ; operator o2 = ( 3 * c ) * d ; operator o3 = 01 - 02 ; ....  where a , b , c , d are assumed to be primary operators defined earlier in the program .the example illustrates how addition , subtraction , and multiplication of operators is implemented in terms of operations on the stack .further operations defined for operators include hermitian conjugation and raising to an integer power .the c++ inheritance mechanism ensures that all these operations are also defined for the derived primary - operator classes like sigmaplus .  to apply an operator to a state, the ` ' operator can be used as in the following example , where psi is a state and o3 is defined above :  .... state psi1 = o3 * psi ; ....  internally , this is implemented as a recursive evaluation of the stack . the order in which the primary operators are applied in the examplecan be inferred from the parentheses in the program keeps the number of operations and the number of temporary states it creates to a minimum .some care has to be exercised , however , to avoid an inefficient evaluation order .e.g. , in the code segment  .... double x=1.5 ; sigmaplus sp ; state psi1 = 2.0*x*sp*psi ; ....  the state sp*psi is first multiplied by 1.5 , then by 2.0 , whereas in  ....double x=1.5 ; sigmaplus sp ; state psi1 = ( 2.0*x)*sp*psi ; ....  there is only one multiplication by 3.0 .the creation of unnecessary temporary states can be avoided by applying operators to states using the ` = ' operator as in  .... sigmaplus sp ; state psi(2,spin ) ; psi * = sp ; ....  when this code segment is executed , no temporary states are created , in contrast to the otherwise equivalent code segment  .... sigmaplus sp ;  state psi(2,spin ) ; psi = sp*psi ; ....  a detailed explanation of the stack and the recursive evaluation procedure can be found in the extensively commented file operator.cc .a quantum system with degrees of freedom can be represented in a product hilbert space .we assume that there is a finite , perhaps truncated , product basis .any state can then be written in the form requiring a total of basis vectors .to represent a state with multiple degrees of freedom , the state class contains as member data the number of freedoms , an array of physical types , an array of subspace dimensions , and an array of amplitudes .product states can be initialized by passing a list of single - degree - of - freedom states to the appropriate state constructor .this is illustrated in the following example , where the state is assigned to psiini :  .... state phi1(50,field ) ; state phi2(50,field ) ; state phi3(2,spin ) ; state statelist[3 ] = { phi1 , phi2 , phi3 } ; state psiini(3,statelist ) ; ....  entangled states can be constructed by adding several product states or by explicitly initializing the array of amplitudes .operators acting on multiple degrees of freedom are represented as sums and products of primary operators each acting on a single degree of freedom .take the example of a primary operator acting on the first degree of freedom .it can be rewritten as the operator on the product hilbert space , where is the identity operator acting on all the other degrees of freedom .we can write any state as the action of on is therefore given by the action of on the first degree of freedom inside a hierarchy of loops over all the other degrees of freedom : in the program , the loops are unfolded into one big loop if the primary operator acts on the first or last degree of freedom ; otherwise the loops are unfolded into two loops , an `` inner '' and an `` outer '' loop .  to define , e.g. , a primary sigmaplus operator acting on the degree of freedom , the constructor has to be called with the argument :  .... sigmaplus sp(2 ) ; ....  the operator class is virtually unaffected by the complications arising from multiple degrees of freedom ( see fig .[ figmultiple ] ) . whenever an operator is applied to a state psi, the recursive evaluation of the operator stack will eventually come across a pointer to some primary operator b acting on a particular freedom . at that stage, the pointer to b will be passed to the method psi.apply ( ) of the state class , which controls the loops over all the other degrees of freedom .each time the loop is executed , the state class passes a single - degree - of - freedom state to the method b.applyto ( ) of the primary operator b. the complex amplitudes of this single - freedom state are typically stored at widely spaced locations in the array of complex amplitudes , but this fact is completely hidden from the primary operator b.  this way of organizing the program has great advantages .most importantly , all the implementation details of multiple - freedom states are hidden from the operator class .apart from leading to a transparent program , this makes adding new primary operators very easy , as was seen in sec .[ secop ] .the definition of the primary - operator class sigmaplus given there is used without modification in the multiple - freedom case .our class library realizes its full potential when all operators are sums and products of a few simple primary operators .although this situation is extremely common in many fields , there are important exceptions like the coulomb potential . while the program could be adapted to implement such a case , some of its unique features would be lost in the process .  for efficiency, the state class distinguishes internally between single - freedom and multiple - freedom states ; many actions are more efficient for a single degree of freedom .this distinction , however , is completely transparent .the user need distinguish between the two only when constructing the initial state .in quantum - trajectory simulations , one often encounters field states that are well _ localized _ in phase space . in cases with strong localization , it is often possible to reduce drastically the number of basis states needed by continually changing the basis .if a state is localized about a point in phase space far from the origin , it requires many number states to represent it .but relatively few displaced number states ( or _ excited coherent states _ ) , are needed , with corresponding savings in computer storage space and computation time .the operator is the usual coherent state displacement operator , where and are the position and momentum operators .the separation of the representation into a classical part and a quantum part is called the _ moving basis _ or , as in , the _mixed _ representation .to represent a state of type field in the moving basis requires to store the complex center of coordinates in addition to the complex amplitudes .a multiple - freedom state in the moving basis with several freedoms of type field requires an array of centers of coordinates .  implementingthe moving basis algorithm is straightforward .suppose that at time the state is represented in the basis , centered at then after one discrete time step , the expectations in this basis shift to the computational advantage of a small number of basis states is then retained by changing the representation to the shifted basis centered at and .this shift in the origin of the basis represents the elementary single step of the moving basis .the components of can be computed using the expressions given above .the computing time needed for the basis shift is of the same order of magnitude as for computing a single discrete time step of one of the quantum trajectory equations . shifting the basis once every discrete time step could therefore double the computing time , depending on the complexity of the hamiltonian and the number of degrees of freedom . on the other hand, the reduced number of basis vectors needed to represent states in the moving basis can lead to savings far bigger than a factor of 2 .  in the example of second harmonic generation discussed in , two modes of the electromagnetic field interact . using the moving basisreduces the number of basis vectors needed by a factor of 100 in each mode .the total number of basis vectors needed is thus reduced by a factor of 10000 , leading to reduction in computing time by a factor of roughly .furthermore , the fixed basis would exceed the memory capacity of most computers .the state class includes a variety of basis - changing methods .the most important is the method  .... void movecoords ( const complex & displacement , int thefreedom ,          double shiftaccuracy ) ; ....  which performs a relative shift of the center of coordinates by an amount given by the complex argument displacement .the integer argument thefreedom specifies which degree of freedom is to be shifted this degree of freedom must be of type field .the double argument shiftaccuracy gives the numerical accuracy with which to make the shift .the physical state is unchanged by applying movecoords ( ) , but it is represented in a new basis .the method movecoords ( ) is used in the stochastic integration algorithms of the trajectory class described in sec .[ sectraj ] .the primary operators of type field defined in the files fieldop.h and fieldop.cc are implemented in such a way that they can handle moving - basis states as well as ordinary states .the quantum trajectory equations can contain both localizing and delocalizing terms . .nonlinear terms in the hamiltonian tend to spread the wave function in phase space , whereas the lindblad terms often cause it to localize .accordingly , the width of the wave packets varies along a typical trajectory .we use this to reduce the computing time even further by dynamically adjusting the number of basis vectors .our criterion for this adjustment depends on parameters , the _ cutoff probability _ , and , the _ pad size _ , which represents the number of boundary basis states that are checked for significant probability .we require the total probability of the top states to be no greater than , increasing or decreasing the number of states actually used accordingly , as the integration proceeds along the quantum trajectory .the method of the state class used to adjust the basis size is  .... void adjustcutoff(int thefreedom , double epsilon , int padsize ) ; ....  where the arguments specify the degree of freedom to be adjusted , the cutoff probability , and the pad size , respectively .  like the basis - changing methods discussed above , the method adjustcutoff ( ) is typically only used inside integration routines of the trajectory class .those methods will not normally be called from a top - level program , so the user need not be concerned by them .the trajectory class and its associated classes , defined in the files traject.h andtraject.cc , implement the integration of the quantum trajectory equations ( [ eqqsd ] ) , ( [ eqqj ] ) , and ( [ eqortho ] ) . at the heart of this part of the codeis the abstract class integrationstep which serves as an interface for the specific stepper classes implementing single integration steps of lenght .the stepper classes derived from the class integrationstep include the class order4step for a single 4-th order runge - kutta step of the qsd equation ( [ eqqsd ] ) as well as a group of classes using adaptive cash - karp runge - kutta time steps : the class adaptivestep for a time step of total length of the qsd equation ( [ eqqsd ] ) , the class adaptivejump for a time step of total length of the quantum jump equation ( [ eqqj ] ) , and the class adaptiveorthojump for a time step of total length of the orthogonal jump equation ( [ eqortho ] ) .all those classes use a single first order euler integration step of length for the stochastic part .due to the modular structure of the class library , it is straightforward to add more sophisticated stochastic integration methods ( see , e.g. , ) .  to initialize a stepper , includingall temporary memory needed for the integration algorithm , all one has to do is call the appropriate constructor as in the code segment  .... state psiini(2,spin ) ; sigmaplus sp ; operator h = sp + sp.hc ( ) ; int nl = 1 ; operator l[nl ] = { 0.1*sp.hc ( ) } adaptivestep stepper(psiini , h , nl , l ) ; ....  a less trivial example can be found in the sample program in sec .[ secsample ] .entire quantum trajectories are computed by repeatedly calling a stepper from within the trajectory class .a trajectory is initialized as in the following example which is taken from the sample program below :  .... double dt=0.01 ;   //basic time step passed to the stepper acg gen(38388389 ) ; //random number generator defined in acg.h complexnormal rndm(&gen ) ;           //gaussian random numbers defined in cmplxran.h trajectory traj(psiini , dt , stepper , & rndm ) ; ....  the trajectory class comprises two methods to launch the simulation , compute expectation values of operators of interest , and produce output .the use of the method plotexp ( ) , designed to simulate a single trajectory , is explained in sec .[ secsample ] .the method sumexp ( ) , which is very similar to plotexp ( ) , can be used to compute the mean expectation values of operators averaged over many trajectories .in this section , we illustrate the main features of the class library in a complete example program which can be used as a template .the example program computes expectation values for a single trajectory of the quantum state diffusion equation ( [ eqqsd ] ) ; to compute means over many trajectories , one simply replaces the call to traj.plotexp ( ) in the template by a call to traj.sumexp ( ) . the system has three degrees of freedom : two nonlinearly coupled field modes described by annihilation operators and , and a spin described by raising and lowering operators and .the hamiltonian in the interaction picture is  where is the strength of an external pump field , is the strength of the nonlinear interaction , is the detuning between the frequency of the field mode and the spin transition frequency , and is the strength of the coupling of the spin to the field mode .the lindblad operators describe dissipation of the field modes and the spin with coefficients , , and , respectively .the trajectory s initial state is the product state .the integration step - size is dt=0.01 and the total integration time is 500*dt = 5 .the integration stepper adaptivestep implements a single time step of length dt of the qsd equation ( [ eqqsd ] ) using the cash - karp runge - kutta algorithm with adaptive time steps for the deterministic part and first - order euler integration for the stochastic part .  at times that are integer multiples of 50*dt = 0.5 ,the expectation values of the operators specified in the array outlist are computed and written to the files specified in the array flist .e.g. , the first element of outlist is the operator . at times , the method plotexp computes the expectation values and and writes , , , , and to the file x1.out .in addition , each time a set of expectation values is computed , the program writes 7 numbers to standard output ( see the sample output below ) : the time , 4 expectation values determined by the integer array pipe , the number of basis states used , and the number of adaptive steps taken .the integers in the array pipe correspond to the columns in the output files containing expectation values ( i.e. , columns 2 through 5 of each output file ) . in the present example , expectation values are computed for the 5 operators , , , , and , which are written to 5 output files with numbered columns 1 through 20 . according to the expression int pipe[]=\{1,5,13,17 } ,the expectation values written to standard output are , , , and .the moving basis is used for both field degrees of freedom .the basis size is dynamically adjusted with a cutoff probability and a pad size .the sample output below shows how the basis size changes with time .initially , states are allocated , but at time , only 18 states are needed .subsequently , the basis size fluctuates around a typical size of 70 states .here is the complete program :  .... # include " complex.h " # include " acg.h " # include " cmplxran.h " # include " state.h " # include " operator.h " # include " fieldop.h " # include " spinop.h " # include " traject.h "  int main ( )  { //primary operators  annihilationoperator a1(0 ) ;  //1st freedom  numberoperator n1(0 ) ;  annihilationoperator a2(1 ) ;  //2nd freedom  numberoperator n2(1 ) ;  sigmaplus sp(2 ) ;       //3rd freedom  operator sm = sp.hc ( ) ;    //hermitian conjugate  operator ac1 = a1.hc ( ) ;  operator ac2 = a2.hc ( ) ; // hamiltonian  double e = 20.0 ;        double chi = 0.4 ;     double omega = -0.7 ;      double eta = 0.001 ;  complex i(0.0,1.0 ) ;  operator h = ( e*i)*(ac1-a1 )        + ( 0.5*chi*i)*(ac1*ac1*a2 - a1*a1*ac2 )        + omega*sp*sm + ( eta*i)*(a2*sp - ac2*sm ) ; // lindblad operators  double gamma1 = 1.0 ;      double gamma2 = 1.0 ;      double kappa = 0.1 ;      const int nl = 3 ;  operator l[nl]={sqrt(2*gamma1)*a1,sqrt(2*gamma2)*a2,sqrt(2*kappa)*sm } ; // initial state  state phi1(50,field ) ;    // see section 4.2  state phi2(50,field ) ;state phi3(2,spin ) ;  state statelist[3 ] = { phi1,phi2,phi3 } ;  state psiini(3,statelist ) ; // trajectory  double dt = 0.01 ;   // basic time step                int numdts = 50 ;   //time interval between outputs = numdts*dt   int numsteps = 10 ;  // total integration time = numsteps*numdts*dt  int nofmovingfreedoms= 2 ;  double epsilon = 0.01 ;   // cutoff probability  int npad = 2 ;        // pad size  acg gen(38388389 ) ;     // random number generator with seed  complexnormal rndm(&gen ) ;  //complex gaussian random numbers  adaptivestep stepper(psiini , h , nl , l ) ;    // see section 5  trajectory traj(psiini , dt , stepper , & rndm ) ;  // see section 5 // output  const int nofout = 5 ;  operator outlist[nofout]= { sp*a2*sm*sp , sm*sp*a2*sm , a2 , n1 , n2 } ;  char * flist[nofout]={"x1.out","x2.out","a2.out","n1.out","n2.out " } ;  int pipe [ ] = { 1 , 5 , 13 , 17 } ;   //controls standard output //simulate one trajectory  traj.plotexp ( nofout , outlist , flist , pipe , numdts , numsteps ,         nofmovingfreedoms , epsilon , npad ) ; } ....  in addition to the output files x1.out , x2.out , a2.out , n1.out , and n2.out , the program writes the following lines to standard output :  .... 0   0       0       0     0    5000   0 0.5  0.000505736  0.000504849 52.3875  3.5807  18  75 1   0.0131402   0.0131173  51.8747  35.1089  60  50 1.5  0.0329714   0.0320222  32.8707  44.3184  108  50 2   0.0425276   0.0455457  32.1562  41.7798  70  56 2.5  0.0284912   0.0564117  34.85   37.8809  80  117 3   0.0260639   0.0626976  33.9828  39.3437  80  143 3.5  0.0544306   0.0439029  51.0632  37.6462  70  99 4   0.0796275  -0.0209383  41.9614  38.0884  70  167 4.5  0.0834672  -0.0543796  33.1194  36.1007  70  195 5  -0.00616844  0.0110794  76.6321  29.4303  50  119 ....we would like to thank i. c. percival for initiating the project , for pushing us in the right direction , and for invaluable discussions .we would also like to thank m. rigo for several improvements of the code , and most notably for implementing the quantum jump and orthgonal jump classes .financial support was provided by the uk epsrc .

Abstract: quantum trajectory methods can be used for a wide range of open quantum systems to solve the master equation by unraveling the density operator evolution into individual stochastic trajectories in hilbert space . this c++ class library offers a choice of integration algorithms for three important unravelings of the master equation . different physical systems are modeled by different hamiltonians and environment operators . the program achieves flexibility and user friendliness , without sacrificing execution speed , through the way it represents operators and states in hilbert space . primary operators , implemented in the form of simple routines acting on single degrees of freedom , can be used to build up arbitrarily complex operators in product hilbert spaces with arbitrary numbers of components . standard algebraic notation is used to build operators and to perform arithmetic operations on operators and states . states can be represented in a local moving basis , often leading to dramatic savings of computing resources . the state and operator classes are very general and can be used independently of the quantum trajectory algorithms . only a rudimentary knowledge of c++ is required to use this package .   # 1#1 | # 1| # 1 # 1#1


a quantum process is said to be markovian if the future states of the process depends only on the state of present time . in contrast ,dependence on past states should then be a characteristic feature of non - markovian processes . with the development of technology to manipulate quantum system ,the quantum non - markovian process has attracted increasing attention in recent years . on one handthe inevitable interaction of a quantum system with its environment leads to dissipation of energy and loss of quantum coherence , on the other hand the quantum system may temporarily regain some of the previously lost energy and/or information due to non - markovian effects in the dynamics .this motivates the study on the non - markovianity and a measure for the degree of non - markovianity is indeed needed .several approaches are proposed to quantify non - markovianity , including the measure based on the increase of trace distance , the measure by quantifying the increase of entanglement shared between the system and an isolated ancilla and the divisibility of the dynamical map , the measure based on the decay rate of master equation itself , and the measure through the fisher information flow .although several approaches to quantifying the non - markovianity are proposed , the definition of non - markovianity still remains elusive and , in some sense , controversial .it has been proven that all divisible dynamical maps are markovian , this divisibility property holds for a larger class of quantum processes than those described by the lindblad master equation , for example , the time - local master equation with positive decay rates .this indicates that the divisibility may be a good starting point to quantify non - markovianity . in this paper, we will propose a measure for non - markovianity based on the divisibility of dynamical maps , three dynamical maps are presented and the corresponding non - markovian measures are calculated .these results suggest that the measure can capture the feature of non - markovian dynamics , and provide an easy way to calculate the non - markovianity .the paper is organized as follows : in sec.ii , we discuss the non - divisibility of dynamical map and the non - markovianity of this map . in sec.iii , we introduce a measure for non - markovianity .three examples are presented and discussed in sec.iv .sec.v summarizes our results .in quantum markovian process , the future state of the quantum system depends only on the state of present time . however , writing this statement in a precise mathematical representation is not an easy task .instead , we use the following description for quantum markovian process. a quantum evolution is markovian if it is an element of any one - parameter continuous completely positive semigroup .the quantum evolution governed by the master equation is an example , where is a time - independent generator of the well - known lindblad form , \nonumber\\ & + & \sum_\alpha\gamma_a(v_\alpha\rho { v_\alpha}^\dag-\frac{1}{2}{v_\alpha}^\dag v_\alpha \rho- \frac{1}{2}\rho{v_\alpha}^\dag v_\alpha ) \label{eqn : mgen}\end{aligned}\ ] ] with .this generator leads to completely positive trace - preserving maps and it satisfies the composition law , if a dynamical map can be written in this decomposition with both and being completely positive , the dynamical map is called divisible .this composition law can be extended to a general case , where the generator in eq .( [ eqn : mgen ] ) is time - dependent , namely , with +\sum_\alpha\gamma_{\alpha}(t ) ( v_\alpha(t)\rho { v_\alpha}^\dag(t)-\\\frac{1}{2}{v_\alpha}^\dag(t ) v_\alpha(t ) \rho-\frac{1}{2}\rho{v_\alpha}^\dag(t ) v_\alpha(t ) ) , \ \ \ \ \ \ \ \ \label{eqn : tdmargen } \end{split}\end{aligned}\ ] ] where .this is known as time - dependent markovian .the solution to eq .( [ eqn : tdmarme ] ) can be written in terms of the two - parameter family of dynamical maps ( ) .the composition law corresponding to eq .( [ eqn : tidcomplaw ] ) becomes and the map can be written as , is the chronological operator .the composition law ( divisibility of the map ) implies that the dynamical map  transforming a state at into a state at ( for systems governed by time independent master equation ( [ eqn : me ] ) , ) must be trace - preserving and completely positive , regardless of which dynamics it describes , e.g. , it is from the time - dependent master equation or the time - independent master equation .note that the starting time is not zero .  a measure for non- markovianity should quantify the deviation of a dynamical map from markovian evolution .noticing that when a dynamics is non - markovian , the dynamical map may not be completely positive , we may use the non - divisibility to quantify the non - markovianity .in fact , this is the underlying reason that the trace distance can increase , and the system gains entanglement with an isolated ancilla .it is worth stressing that there is no contradiction between the requirement on non - completely positivity and that on physics . consider a quantum evolution in a time interval , we always have due to the time continuity .for to be a dynamical map , it is required that must be completely positive , however , may not be completely positive .therefore these two - parameter maps in non - markovian dynamics do not generate a quantum dynamical semigroup .then one may wonder : does there exist a that it is not completely positive but does ?the answer is yes .first , a wide range of non - markovian process can be described by time - local master equations via time - convolutionless projection operator .second , it has been shown that any quantum dynamics described by memory kernel master equation may be written in a time - local form .note that the decay rates in these time - local master equation are different from that in eq .( [ eqn : tdmargen ] ) , they can be negative . with this time - local master equation ,the dynamical map with non - zero starting time in eq.([eqn : marmap ] ) may violate the complete positivity due to the negative decay rates .this implies that the non - complete positivity of the map is an essential feature of non - markovian process. the time - dependent decay rate may be negatively infinite at some points of time , where the reviving of population or regaining of quantum coherence happen .we call these points of time singular points .when or , may not exist .however , we can use in the limit that instead of .it is convenient to discuss with a specific time - local master equation , but this is not necessary .to construct a measure for non - markovianity , we resort to the choi - jamiokowski isomorphism , it asserts that a linear map : is isomorphic to the choi matrix , where are orthogonal bases .an familiar form of the choi matrix is where is the maximally entangled state , is an identity map acting on the ancilla , and is the normalized .it turns out that is completely positive if and only if is positive semidefinite . in other words ,the sufficient and necessary condition of non - complete positivity is the negativity of .hence , the sum of negative eigenvalues of can be taken as a measure for the non - complete positivity of the dynamical map .however , the summation may sometimes be an infinite value in some models due to singular decay rates , this suggests to use a normalized quantity as a measure for non - complete positivity of the map where is the negative eigenvalue of . clearly if ,  .then we have .based on the complete positivity property of the map , a measure of non - markovianity has been proposed .this measure is different from ours in that we use the an averaged negativity of the map to quantify the non - markovianity .moreover , insightful examples are presented to shed light on the non - markovianity measure .  to calculate eq .( [ ncp ] ) with a given time - local master equation , the exact form of is not necessary .what we need is to extend the time - local master equation from one system to two systems , taking an isolated ancilla attached to the system .the hilbert space is extended from to accordingly .all operators , say , are replaced by by this extension , we get a new master equation , which describes the system and the ancilla .the system evolves in the same manner as before , while the anciila is isolated from both the system and environment .the master equation can be solved starting from at time and the state at time ( ) can be obtained .we aim at finding a measure for non - markovianity which captures the feature of non - complete positivity of all possible .note that is a function of and .let count the number of in all time interval with  , i.e. if , i.e. , all ( for any and , as long as ) are completely positive , the non - markovinity should be defined to be zero . if , we define as a measure of non - markovianity .this can be understood as an averaged non - complete positivity of all the non - completely positive maps in interval .therefore , from , we have .  the upper limit of the integral in the definition eq .( [ eqn : define ] ) is taken to be infinite . however , the distribution of on plan is often periodic or is limited in a small area , this suggests that the integration can be taken merely in one period of time or taken in a finite area .when is neither periodic nor limited in a small region , the upper limit in eq .( [ eqn : define ] ) should be large enough to get a convergent . the definition can be written into a simple form , where represents all the non - completely positive maps and means expectation value .therefore , can be numerically calculated by averaging a large number of non - completely positive maps with equal weight ( or randomly ) in a _ representative area _ as discussed above .the representative area means one period in time or a limited region where   to illustrate the measure of non - markovianity , we present three examples in the next section .we work in the interaction picture for simplicity to calculate the measure , since unitary transformation does not change the eigenvalues of as well as of , hence the non - markovianity measure under unitary transformation remains unchanged .the first example is a two - level system coupling to a reservoir at zero temperature .the reservoir consists of infinite number of harmonic oscillators that is also referred in the literature as the spin - boson model .this model is exactly solvable .the hamiltonian for such a system reads ,  where . the rabi frequency of the two - level system and the frequency for the harmonic oscillator are denoted by and respectively . and are the creation and annihilation operators of oscillator , which couples to the system with coupling constant .  assuming the system and the reservoir are initially uncorrelated , we can obtain a time - dependent master equation in the interaction picture , \nonumber\\ & + & \gamma(t)(\sigma^-\rho\sigma^+-\frac{1}{2}\sigma^+ \sigma^-\rho-\frac{1}{2}\rho\sigma^+\sigma^- ) , \label{eqn : exactnm}\end{aligned}\ ] ] where  ] . plays the role of lamb shift and is the decay rate .both and are time - dependent . is determined by , where is the environmental correlation function . in the derivation of the master equation, the reservoir is assumed in its vacuum at .consider the following spectral density , where represents the coupling constant between the system and reservoir , defines the spectral width of the coupling at the resonance point . for the spectral density ( [ sd ] ) , we have , $ ] , and with .note that eq .( [ eqn : exactnm ] ) is derived without any approximations , hence it is non - markovian and it exactly describes the dynamics of the open system .it is well - known that characterizes the correlation time of the reservoir through .the time scale on which the state of the system changes is given by .so the degree of non - markovianity should be relevant to the rate .namely , when is very small , the evolution is markovian , when is comparable with , the memory effect of reservoir should be taken into account , the dynamics of the open system is then non - markovian .let us first analyze the non - markovianity of the dynamics by examining . for , is always positive and it is a monotonically increasing function of time , all are completely positive , hence the dynamics is markovian .when , is a periodic function of time , it takes negative values sometimes .in particular , has discrete singular points where the upper level gains population , this is a typical feature of non - markovianity .now we see if our measure can capture all these features of non - markonianity . in order to apply our measure, we have to extend the time - local master equation to the compound system , i.e. , the operators in eq .( [ eqn : exactnm ] ) is replaced by with being the ancilla s identity operator . for a given time interval , a straightforward calculation yields where was defined below eq .( [ eqn : exactnm ] ) and .   and non - markovianity in the damping j - c model .( a ) versus and ( in units of ) at .three oscillations are shown .( b ) as a function of .clearly , monotonically increases with .,width=245 ]  for a typical non - markovian case ( ) , we plot as a function of and in fig.[fig : jc](a ) ( , since , we use instead of for convenience ) .this plot shows the non - zero area and its value of versus and . as is a periodic function of , and the area where  decays very fast with  be given by averaging all in one period , it yields   as expected , when , , and when the non - markovianity is finite .we plot the measure of non - markovianity with different in fig.[fig : jc](b ) . here is chosen from to .note that when , does not exist due to the zero denominator .our result for is obtained at with an infinitesimal positive number .intuitively , the larger is , the stronger the non - markovianity .the results in fig.[fig : jc](b ) demonstrate that this is indeed the case .    and non - markovianity in the detuning j - c model .( a)counter plot of as a function of and ( in units of ) , with and ( in units of ) .( b ) as a function of .other parameters chosen are the same as in ( a ) .the maximum non - markianity arrives at about .,width=245 ]  the second example is similar to the first one , but here we consider the system in a cavity whose center frequency is detuned from the system rabi frequency .the dynamics in the interaction picture is governed by eq .( [ eqn : exactnm ] ) , but and are determined by the lorenz spectral density where denotes the detuning .we extend eq .( [ eqn : exactnm ] ) to a compound system by introducing an ancilla as we did in the first example , then we calculate numerically .we plot as a function of and in fig.[fig : dt](a ) for a typical non - markovian case .we see that is finite in contrast to infinite values in the same region for the first example .on the other hand , of all ( with different and ) are far less than indicating weaker non - markovianity in comparison with the first example . finally , from eq .( [ eqn : define ] ) , or eq . ( [ eqn : exception ] ) we have in this case .now we discuss the dependence of non - markovianity on the detuning .we plot in fig.[fig : dt](b ) with different .we find that appears non - zero at about , it first increases then decreases with .this result is similar to that in , where the non - markovianity is measured by the decreases of trace distance .   in the third example, we consider a central spin- coupling to a bath of spin- .the interaction hamiltonian is , where represents the coupling constants .the non - markovianity of the central spin in this model is discussed in .assume the initial state of the whole system is , i.e. , all spins in the reservoir are in a maximal mixed state .the density matrix of the central spin at time takes , in terms of dynamical map , the dynamics can be represented as , this is equivalent to the following master equation , where , and the time - dependent .this example is discussed in several papers as a classical example to quantify non - markovianity , and the non - markovianity is infinite . by our definition of non - markovianity , it is finite .this allows us to establish a relation between non - markovianity and the number of spin in the reservoir .   and non - markovianity in the n - spin bath model .( a ) as a function of and for . is in units of .it shows that is a periodic function of and , two periods are shown here .( b ) with different .non - markovianity increases with and tends to when the limit is taken after .,width=245 ]  it is easy to calculate ( defined in eq.([eqn : rhol ] ) ) by eq .( [ eqn : tan ] ) , with , then we have   the non - completely positivity of the map can be examined by plotting in ( ) plan .fig.[fig : tan](a ) shows this result taking only one spin as the environment ( for , the results is similar ) .we find that is a periodic function of both and .when and  , reaches its maximum .the non - markovianity measure in this case is   now we try to find the relation between non - markivianity and the number of spins in the environment , the result is plotted in fig.[fig : tan](b ) .we find that increases with the spin number .for a very large , arrives at its maximum .however , the coupling strength is very small in large limit , this implies that the characteristic time of the central spin tends to be infinitely long in this limit , i.e. , non - markovian dynamics can be observed only on a long time scale . if we are interested in a limited time interval , all dynamical maps are completely positive , there is no non - markovian effect .this can be understood as follows . with a fixed ,one always can choose that is close to zero .the off - diagonal element of the density matrix eq.([denc1 ] ) then takes , indicating that the density matrix in eq.([denc1 ] ) describes a typical markovian process .we have presented a measure for non - markovianity based on the divisibility of dynamical map .this measure has the advantage that it is easy to calculated and no optimization is required .three examples are illustrated , which show that the measure can nicely manifest the non - markovianity .we also compare our measure with others in the literature and find that it almost agrees with the trace - distance based measure .this work is supported by nsf of china under grant nos 61078011 and 10935010 , as well as the national research foundation and ministry of education , singapore under academic research grant no .wbs : r-710 - 000 - 008 - 271 .

Abstract: identifying non - markovianity with non - divisibility , we propose a measure for non - markovinity of quantum process . three examples are presented to illustrate the non - markovianity , measure for non - markovianity is calculated and discussed . comparison with other measures of non - markovianity is made . our non - markovianity measure has the merit that no optimization procedure is required and it is finite for any quantum process , which greatly enhances the practical relevance of the proposed measure .


networks are elegant representations of interactions between individuals in large communities and organizations .these networks are constantly changing according to demands , fashions and flow of ideas .recently there has been a growing interest in the dynamics of complex networks with a focus on pairwise interactions .however , it has often been assumed that the mere existence of a connection in a network implies that transmission of information is complete .this assumption is associated with the fact that most studies consider static structures derived from all recorded interactions .often it is less interesting though to know whether two individuals are connected at some point in time and space than it is to quantify the volatility of the link connecting them .( s.d . ) .panel b ) and c ) show the temporal variation in the tweet rates of three international brands . in the time signal in panel c ) there is a clear intermittent fluctuation in the overall signal while at the same time there is an underlying periodic variation over days and weeks .panel b ) shows the corresponding distributions of the tweet rate change measured in hourly intervals . ]  the rapidly growing flux of information through online media permits an unprecedented analysis of human behavior and interactions .these interactions can be monitored in real time with a high level of detail via social media such as twitter .twitter is a micro - blogging universe where registered users can submit small pieces of information , named `` tweets '' , to an online stream .the length of a tweet is limited to 140 characters and the content ranges from personal information to massively distributed advertisements or political messages .twitter has a potentially huge reach and is used by an increasing number of companies and political organizations to disseminate news .  ) . only links with a strength larger than 0.004are shown .the network is strongly modular and individual modules have been identified using the spin - glass method . in panelb ) , a similar network over major cities in the usa is shown .links with a strength larger 0.004 are shown . in both panelspairwise tweet - rates were collected throughout november 2010 and an averaged similarity measures were computed . ]current tweet rates were measured by submitting repeated search queries to twitter . for each query , up to 1500 of the latest tweets were returned and based on the time interval over which they appeared a rate was calculated .samples were performed during a 4 month period , november 2010 to february 2011 .users of twitter have the opportunity to actively follow and re - post tweets , socalled retweets , of other users .the rate by which a given tweet or user is retweeted provides an instantaneous measure on the community s interest in a given subject .the distribution of retweet rates of specific tweets and users are shown in fig . 1 .both distributions have a scale free form on up to five orders of magnitude with an exponent ( s.d . ) , i.e. .the scale free distribution strongly indicates that the community s interest in a given user or subject is self - organizing and as a consequence leads to avalanches of retweet rates of all sizes .avalanches are often associated with an intermittent dynamics where large to extreme events are interrupted by longer periods of quiescent behavior .this is confirmed by the distribution of the tweet rate change measured in hourly intervals .the distribution has a clear stretched exponential tail fig .similar heavy - tail distributions are observed in a number of other systems which show intermittent temporal dynamics .examples are fully developed turbulence and time series of economical indices .the impact of a current subject is influenced by the collective behavior of individuals in social networks .for instance , the constant stream of information can be used to monitor the real - time popularity of different topics .moreover , correlations between topics can be measured by analyzing the content of individual tweets , i.e. related topics are likely to appear simultaneously in a tweet as well as in associated retweets .specifically , we have analyzed correlations within three widely different categories : 1 ) international brands , 2 ) nouns and 3 ) major cities in the usa .we compiled a list of 100 popular international brands representing top companies in different categories and used a list of the 50 largest cities in the usa .similarly random samples were taken from a list of 2000 common nouns of the english language .the similarity of two entities and is defined in terms of the rate by which tweets contain both and .for example , by considering queries to twitter containing the terms `` google '' and `` microsoft '' , we get per hour and per hour whereas per hour ( january 2011 ) . a normalized symmetric measure of similarityis naturally defined by in fig .2 we present networks of international brands and usa major cities created by this measure .the network of brands is strongly modular with groups of brands representing similar products .however , some links reveal non - trivial relations between selected brands . for citiesthe similarity network provides an alternative map where individual cities only to some extent are grouped according to their geographical location .the network is dominated by a central module consisting of new york , chicago , atlanta , los angeles and boston .this is not surprising as these cities are hubs in the american society . in the lower right part, we observe californian cities in a module that connects naturally to cities like denver and seattle .we also detect a module of east - coast to mid - western cities connecting to a module of southern cities .( s.d . ) .the dashed line is a guide to the eye and corresponds to the computed exponent .the inset shows distributions of tweet rates of single brands ( purple circles ) , major us cities ( blue triangles ) and english nouns ( green squares ) .although there is no clear scaling of these distributions we have inserted the same line as in the main panel for comparison . ]  in social media , international brands and to some extent us cities are of global common interest .fashions spontaneously emerge over a short time span in terms of a collective awareness in the network .we therefore expect that correlations between current fashions reflect how the awareness percolates on the social network . as a main result ,we obtain scale free distributions of the pair - wise tweet rates over six orders of magnitude using brands , nouns as well as major cities , see fig .surprisingly , the distributions are all defined by the same scaling exponent ( s.d . ) .the distribution of the tweet rates of individual search terms , , does not follow a clear scale invariant distribution ( see inset of fig . 3 ) andcorrelations cause the tweet - rate of pairs not to be proportional to the product .in particular we notice that if the distribution of the rates could be approximated by a scale invariant distribution , we get that the product would follow a distribution the logarithmic correction to scaling does not fit the data of fig . 3, e.g. a best fit gives an exponent significantly larger than expected from the distributions of the tweet rates of individual search terms shown in the inset of fig .we attribute this observation to the interactions between individuals of the social network which generate a common perception of related entities . in other words, there is an amplification of the frequency by which e.g. certain brands appear together in a tweet . performing a similar analysis using search engines such as google and bing , we achieve different distributions ( see fig .in contradistinction to social media , the search engines integrate over a long time and include results from widely different media . moreover the search engines include results from web pages which are not restricted in size like the tweets .the results can be put into further perspective by considering correlations of nouns in a different context . in sentences of novels by e.g. mark twain ( huckleberry finn ) and hermanmelville ( moby - dick ) , we recover scale free distributions with significantly larger exponents ( see fig .the sentences have a typical length comparable to the 140 characters of a tweet .however , a novel is written by a single author and typically exhibits a more formal structure compared to the text messages created by online interactions between many individuals .the unique self - organizing behavior of users of social media appears to initiate a cascade dynamics which widens the distributions and lowers the scaling exponent relative to that of novels .a deeper understanding of this effect calls for an uncovering of mechanisms behind human communication on online media .social media have become vital channels for advertising as well as disseminating news and political opinions , therefore this understanding will have significant potential not only in several branches of science but also for commercial purposes .the fact that the complex communication patterns appear to be universal indicates that the information flow on social media is a reflection of basic human behaviour .( huckleberry finn ) and (s.d . )( moby - dick ) .inset : probability density function of the frequencies by which individual nouns appear in the same sentences ., title="fig : " ] ( s.d . )( huckleberry finn ) and (s.d . )( moby - dick ) .inset : probability density function of the frequencies by which individual nouns appear in the same sentences ., title="fig : " ]suggestions and comments by kim sneppen and namiko mitarai are gratefully acknowledged .this study was supported by the danish national research foundation through the center for models of life .10 albert r , barabasi a .-( 2002 ) statistical mechanics of complex networks .74 : , 47 - 97 .boccaletti s , latora v , moreno y , chavez m , hwang du ( 2006 ) complex networks : structure and dynamics .424 : 175 - 308 ( 2006 ) .borgatti sp , mehra a , brass dj , labianca g. ( 2009 ) network analysis in the social sciences .science 323 : 892 - 895 .( 2010 ) identification of influential spreaders in complex networks .nature physics 6 : , 888 - 893 .vespignani a ( 2010 ) complex networks : the fragility of interdependency .nature 464 : 984 - 985 .mandavilli a ( 2011 ) peer review : trial by twitter .nature 469 : , 286 - 287 .huberman ba , romero dm , wu f ( 2009 ) crowdsourcing , attention and productivity .j. inform .35 : 758 - 765 .newman , mej ( 2010 ) networks : an introduction , oxford university press , new york .nagler j , levina a , timme m ( 2011 ) impact of single links in competitive percolation .nature physics 7 : , 265 - 270 .buldyrev sv , parshani r , paul g , stanley he , havlin s ( 2010 ) catastrophic cascade of failures in interdependent networks .nature 464 : 1025 - 1028 .king g ( 2011 ) ensuring the data - rich future of the social sciences .science 331 : , 719 - 721 .centola d ( 2010 ) the spread of behavior in an online social network experiment .science 329 : 1194 - 1197 .bak p , tang c , wiesenfeld k ( 1987 ) self - organized criticality : an explanation of the 1/f noise .lett 59 : 381 - 384 .ramos o , altshuler e , maaloy kj ( 2009 ) avalanche prediction in a self - organized pile of beads .lett 102 , 078701 .jamtveit b , jettestuen e , mathiesen j ( 2009 ) scaling properties of european research units .usa 106 : 13160 - 13163 .mathiesen j , jamtveit b , sneppen k ( 2010 ) organizational structure and communication networks in a university environment .e 82 : 016104 .bohr t , jensen mh , paladin g , vulpiani a ( 1998 ) dynamical system approach to turbulence , cambridge : cambridge university press .mantegna rn , stanley he ( 1995 ) scaling behaviour in the dynamics of an economic index .nature 376 : 46 .reichardt j , bornholdt s ( 2006 ) statistical mechanics of community detection .e 74 : 016110 .

Abstract: social media have become essential conduits in the worldwide exchange of ideas , opinions and consumer marketing . complex networks are important tools for analyzing the information flow in many aspects of nature and human society . here , we introduce a method based on networks and social media to gauge how ideas , opinions and new trends impact society . we show that correlations between different international brands , nouns or us major cities follow a universal scale free distribution . the correlations indicate a self - organizing dynamics in large social organizations where the exchange of information between individuals is highly volatile . our method provides new fundamental insight on the propagation of opinions and the emergence of trends in online communities .


the first two parts of the video show the impact dynamic of 30 water droplet at different impact velocity . at low impact velocity of 1.03 m / s ,the water droplet deforms upon impact and eventually bounces off completely of the surface of the array . at higher impact velocity of 2.21 m/ s , the droplet breaks up into many smaller droplets and eventually bounces off completely of the surface of the array .the coefficient of restitution of water droplet at very low impact velocity can be seen clearly by dropping a water droplet on a slightly tilted carbon nanotube array . at tilt angle of 2.5 the droplet skips off of the surface of the array multiple times without showing any sign of pinning on the surface of the array , as demonstrated in the third part of the video .the fourth part of the video shows the sliding / rolling behavior of the droplet along the surface of a u - shaped carbon nanotube array .the fifth part of the video shows the impact of two identical 14 water droplets to one another on a u - shaped carbon nanotube arrays . upon impact , these two water droplets , which come from the opposite direction , merge to form one larger droplet .all parts of the video were captured by high speed camera operated at various frame rates .the droplet was illuminated from behind with a diffuse halogen light .the droplet was dropped on the surface by flat - tipped needle and the volume of the droplet was controlled precisely by syringe pump .+  + this work was supported by the charyk foundation and the fletcher jones foundation .

Abstract: over the past few decades , superhydrophobic materials have attaracted a lot of interests , due to their numerous practical applications . among various superhydrophobic materials , carbon nanotube arrays have gained enormous attentions simply because of their outstanding properties . the impact dynamics of water droplet on a superhydrophobic carbon nanotube array is shown in this fluid dynamics video .


in the last years , radio frequency identification ( rfid ) systems have received much attention both in academia and in many industries , for applications of monitoring and tracking .rfid systems offer a promisingly affordable , cheap and flexible solution for object identification .for instance , fast and reliable reading of labels ( tags ) attached to different objects stowed in warehouses can greatly speed up operations such as localization and retrieval . among the countless applications, we can cite public transportation and ticketing , access control , production control , animal identification , inventory control , electronic payments , speed - up the checkout in shops , location monitoring in real - time of all tagged objects within the supply chain , secure operations in dangerous environments , localization of objects ( like cars in parking lots , or books in libraries ) , and of people .rfid systems consist of networked electromagnetic readers and tags , where the readers try to identify the tags attached to objects .the reader is an entity with great computation power and memory , while tags have ( very ) limited computation resources .tags have a unique i d and transmit their own i d to the reader for being identified .the reader must be able to identify tags as quickly as possible by wireless communications .rfid tags can be _ active _ or _ passive _ , according to their technology .active tags are continually powered by internal batteries , while passive tags have no internal power and reflect energy from the reader for communication .consequently , active tags can be read from a greater distance than passive tags . moreover , active tags have more functions than passive tags , e.g. data storage and sensor capabilities .tags have to be very simple in order to be as cheap as possible .the lifetime of active tags is over when the battery is exhausted .it is non economical to replace or recharge an active tag battery , because of large number of small and cheap nodes . for these reasons ,active tags are not practical for use with disposable consumer products , for instance .passive tags instead rely only on rf energy induced by the electromagnetic waves emitted by the reader . in a typical communication sequence ,the reader emits a continuous radio frequency wave .when a tag enters in the rf field of the reader , it receives energy from the field .continuous advancements in protocols and circuits design , make the reliability and the reading range of passive tags rfid systems continuously improving . besides , their cost continues to decrease , leading to an increase of their applications . to meetcost , size and lifetime requirements , passive tags seem to be the best solution for rfid systems , and we focus on them in this paper .  the limited available bandwidth forces all tags to share a common broadcast wireless channel .this can lead to the collision problem in signal transmission of the readers or the tags , which hardly leads to fast identification . as a result , either the reader may not recognize all objects , or a tag identification process may suffer from long delay . therefore ,anti - collision protocols which enable the fast and correct identification regardless of the occurrence of collisions are required .collisions are divided into reader collisions and tag collisions .reader collision problems arise when multiple readers are simultaneously used .the other collision problem ( approached in this paper ) is the tag collision one , that occurs when several tags try to answer to a reader query at the same time .the reader queries the tags for their i d through the rf communication channel , by broadcasting a request message to tags . upon receiving this message , all tagssend an answer back to the reader .if only one tag answers , the reader identifies the tag .if more than one tag answer , their messages will collide on the rf communication channel , and the reader can not identify these tags .this is a special case of the multiple - access communication problem .however , rfid applications introduce a more challenging aspect to the problem . since the low functional power and energy constraints in each tag , it is unreasonable to assume that tags can communicate with each other directly , and that they can notice their neighboring tags or detect collisions .tags anti - collision protocols are required for identification in rfid systems .a natural question is : what is the best communication protocol so that the tags can be read as fast and reliable as possible ?this is known as anti - collision problem .the issue becomes more challenging on considering that the tags must be simple , cheap and small enough .there are two families of protocols for approaching the tag collision problem : a family of _ probabilistic _ protocols , and a family of _ deterministic _ ones .we will survey both families in section [ section : relatedwork ] . in this paper, we propose a new anti - collision protocol which , assuming a particular rfid system simple technology , achieves an optimal performance outperforming all existing protocols .  the paper is organized as follows . in section [ section :relatedwork ] , we survey the known suitable protocols for our problem . in section [ section :theprotocol ] , we describe our approach , by highlighting the assumptions we made , and the achieved performance , in terms of number of reader queries . in section [ section :correctness ] , we assess the protocol performance . conclusions ( section [ section : conclusions ] ) terminate the paper .the proposed protocols for tag collision resolution in rfid systems are either probabilistic or deterministic .the first ones are _ aloha - based _ protocols , the last ones are _ tree - based _protocols .there are also hybrid approaches , where randomization is applied in tree schemes .aloha - based protocols , such as aloha , slotted aloha , framed slotted aloha , and dynamic framed slotted aloha , reduce the probability of the occurrence of tag collisions since tags try to answer at distinct times .  in framed slotted aloha ,a frame is a time interval between requests of a reader and consists of a number of slots .each tag transmits its serial number to the reader in a randomly selected slot of a frame , and the reader identifies tags when a time slot is used by one tag only .read cycles are repeated for unrecognized ( namely , whose transmission results in a collision ) tags , until all tags have been identified .so , in the last read cycle there must be no collision .the basic framed slotted aloha anti - collision protocol uses a fixed frame size and does not change the size during the process of tag identification .the dynamic framed slotted aloha protocol changes the frame size dynamically .the constraint of this protocol is that the frame size can not be increased indefinitely as the number of tags increases , but it has an upper bound .this implies a very high number of collisions when the number of tags exceeds the maximum admitted frame size .the enhanced dynamic framed slotted aloha ( edfsa ) protocol , analyzed in , overcomes such problem by dividing the unread tags into a number of groups and interrogating each group of them respectively .the system efficiency of edfsa protocol is improved by the variant enhanced dynamic framed slotted aloha protocol where a dynamic group dividing approach is adopted .the frame size affects the performance of aloha based algorithms .a small frame size results in many collisions , and so increases the required total number of slots when the number of tags is high .in contrast , a large frame size may result in more idle time slots , when the number of tags is small .different methods estimating the number of unread tags , permit to the reader of choosing an optimal frame size for the next read cycle , are presented in .  in ,the tree slotted aloha ( tsa ) protocol is proposed .it aims to reduce tag transmission collisions by querying only those tags colliding in the same slot of a previous frame of transmissions . at the end of each frame , for each slot in which a collision occurred , the reader starts a new small frame , reserved to those tags which collided in the same time slot . in this way , a transmission frame can be viewed as a node in a tree , where the root is the initial frame ; leaves represent frames where no collision occurred .aloha - based protocols can not perfectly prevent collisions .in addition , they have the serious problem that a tag may not be identified for an unlimited time ( the so called _ tag starvation problem _ ) .tree - based tag anti - collision protocols can have a longer identification delay than slotted aloha based ones , but they are able to avoid the tag starvation . among tree - based protocols ,there are binary search protocols and query tree protocols .  in query tree protocol ( qt ), the reader sends a prefix , and all tags having the i d matching the prefix , answer . if there is a collision , the reader queries for a one bit longer prefix , until no collision occurs .once a tag is identified , the reader starts a new round of queries with another prefix . in ,many improvements of qt protocol have been presented , for increasing its performance . among them , the best performing one is called query tree improved .this protocol avoids the queries that certainly will produce collisions .since tags do not need additional memory except the i d , query tree protocols have the advantage to be _ memoryless _ , and for this they require low functional and less expensive tags .however , since they use prefixes , their performance is sensitive to the distribution of tag ids which a reader have to identify .  in ,a prefix - randomized query tree protocol is proposed , where tags randomly choose the prefixes rather than using their id - based ones .the identification time of this protocol is improved with respect to qt protocol because it is no longer affected by the length and distribution of tag ids as in qt protocol .  in binary search protocols , , the reader performs identification by recursively splitting the set of answering tags .each tag has a counter initially set to zero . only tags with counter set to zero answer the reader s queries .after each tag transmission , the reader notifies the outcome of the query : collision , identification , or no - answer .when tag collision occurs , each tag with counter set to zero , adds a random binary number to its counter .the other tags increase by one their counters .in such a way , the set of answering tags is randomly split into two subsets . after a no - collision transmission, all tags decrease their counters by one .  in , the bi - slotted query tree algorithm , and bi - slotted collision tracking tree algorithmare proposed .they reduce the prefix overhead for fast tag identification .myung et al . proposed two adaptive tag anti - collision protocols : the adaptive query splitting protocol which is an improvement of the query tree protocol , and the adaptive binary splitting protocol which is based on the binary tree protocol . for reducing collisions ,the proposed protocols use information obtained from the last process of tag identification , assuming that in most object tracking and monitoring applications the set of rfid tags encountered in successive reading from a reader does not change substantially and information from a reading process can be used for the next one .an improvement of adaptive binary splitting protocol is proposed in .performance for tags collision problem , is usually computed as the ratio between the number of tags to be identified , and the number of queries ( or time slots , in case of slotted aloha based protocols ) performed in the whole identification process .this metric is referred as _system efficiency _ .all the protocols proposed so far exhibit an average performance ( both in terms of messages and in terms of transmitted bits , two metrics strictly related to system efficiency ) well below 50% .actually , the best performing protocols , namely qt and tsa , perform around 40% of system capacity on average , in their best performing versions .such results are reported in the above papers , where the protocols have been proposed , and were substantially confirmed in a paper describing an extensive simulation experiment set up for assessing the average performance of several tag identification protocols .  in this paper we propose an optimum tag identification protocol that outperforms , at the best of our knowledge , all existing protocols .we assume a particular simple rfid system technology that we describe in section [ subsection : system ] , and we show in section [ section : correctness ] that by using this rfid system technology , our protocol achieves a system efficiency of 100% , and so perfectly solves the problem .in this section , we first state the assumptions made on the transmission techniques used by the target rfid systems .then , we give a detailed description of our protocol .   in this paper, we assume that signals transmitted by multiple entities sum up at the receiver , with no loss of information .besides , we assume ( as usual in this setting ) that the signal corresponding to a bit equal to 0 is the complement of that corresponding to a bit equal to 1 ( this is what happens , for instance , when a manchester bit coding is used ). we shall call such signals `` -1 '' and `` + 1 '' , respectively . for instance , if we have four tags with ids 011010 , 010101 , 110001 , 011111 , the simoultaneous transmission of their i d will be received by the reader as `` -2 4 0 0 0 2 '' . from the collided tags answers , a reader can detect the exact number of transmitting tags , provided that all such tags have transmitted the same bit ( say `` 1 '' ) in the same position ( say , the second one ) . in this case, the maximum ( in absolute value ) of the received signals is equal to the number of transmitting tags . in the above example, all four tags transmit a `` + 1 '' in second position .however , this is not always the case : consider for example the above tags , with the first one having a `` 0 '' in second position , instead of a `` 1 '' .then , the signals received by the reader would be `` -2 2 0 0 0 2 '' .this sort of `` capture effect '' prevents from exactly knowing the number of answering tags .as we shall see , this is not a problem since our protocol works in splitting the tags in two subsets , with possibly one subset containing only one tag ( thus identifying it ) .the important thing is that , when there are multiple answering tags , the received signal is not formed by `` + 1 '' and `` -1 '' only .this happens only when the number of `` 0 '' bits and that of `` 1 '' bits differ by exactly one . in this case, we have a `` false positive '' , namely we identify one tag that is not present in our set , whose i d is given by the sum of the ids of the colliding tags .for example , if ids `` 0 1 1 0 0 1 '' , `` 0 0 1 0 1 0 '' , `` 1 0 0 1 0 0 '' are transmitted simultaneously , the reader will receive `` 0 0 1 0 0 0 '' which does not correspond to any i d of tags in its range .notice that tag ids are 48 , 96 , ... ,bits long , and so the probability of this `` false positive '' is extremely low .anyway , the above problem can be overcome by adding a one bit prefix to each i d , so forcing each tag to transmit a `` + 1 '' ( for instance ) before their i d .the cost of this is obviously negligible , given the above reported i d s lengths .   given the above assumptions , it is possible to build a protocol which always achieves a 100% performance .the protocol , called , works as follows .initially , the reader asks all tags to transmit their own complete i d . from the answer , which is the sum of all ids , the reader starts to divide the set of tags in a recursive way until all tags are identified .the partioning is done in the following manner : the reader chooses the first bit position , say , for which the answer presents the maximum absolute value , say .two cases can occur :   : : :   in this case , a tag i d is recognized ; : : :   in this case , the reader searches the first position ,  say , where a value , say , equal to  the largest absolute value smaller than is present in  the previous answer .then , it issues a new query by asking all tags  having 1 " in position , with the same sign of   .then , the reader repeats the above procedure with  the outcome of the last query .when a tag i d is recognized , the reader obtains another tag i d or the sum of more than one tag i d , by subtracting the recognized i d from the previous answer , so without issuing any query . by recursively applying the previous procedure , the reader always splits the responding tags into two groups : one having + 1 " in a given position , the other having -1 " in the same position .since any two tag ids differ in at least one bit position , the protocol converges to a complete identification of all tags .  in table[ tab : pseudocode ] , we sketch the behavior of protocol . when the reader issues a query , it transmits a _ mask _ of bits of the same length of tag ids ( in the pseudocode ) , initially empty ( empty value is coded with `` 0 '' ) .tags have their ids stored with `` -1 '' instead of `` 0 '' , and in table [ tab : pseudocode ] such an i d is referred as .  in figure[ figure : example ] , we show the execution of protocol on a set of seven tags .the queries issued by the reader are represented with bold arrows between father nodes and left son nodes .arrows between father nodes and right son nodes , instead , represent ids sums obtained by difference between the previous and the actual answers . as evident from the figure ,the execution of protocol is equivalent to a depth first search ( dfs ) on the tree , where the leaves represent the ids of the tags to be identified .notice that tag hardware is very simple : tags have only to listen the reader queries and answer if the received mask matches with their own i d .so tags are memoryless .a = aaa = aa = aa = aa a +  _ /*initialization*/ _   + 1 . =0 ]*/ _   + 8 . ( \geq 0 ] ; +  _ /*issue the query*/ _broadcast( ) ; +  _ /*put the sum of i d signals in an array called */ _   + 12 . getids ( ) ; +  _ /*analyse the result*/ _   + 13 . ; +  _ /*set the mask for being used in the right subtree*/ _   + 14 .=-s2 ] ; +  + * tag procedure : * + 1.(true ) + 2 .wait for reader transmission ; + 3 .( matches ) * then * transmit ; +in this section , we formally show that the above protocol always achieves 100% performance , provided that the transmission assumptions are met .[ lemmauno ] the execution of protocol for identifying tags can be represented by a full binary tree with nodes .a full binary tree is a tree in which every node has zero or two sons . works by dividing the tags set into two subsets : each subset is represented by a node in the full binary tree .when a set is partitioned by querying the tags having a given value ( + 1 " or -1 " ) in a given bit position , the resulting two subsets are the sons of the node associated to the previous set . the subset related to the left sonis obtained by query , while the other set ( the right son ) is obtained by difference between the previous answer ( father ) and the current answer ( left son ) .then , all the queries done by the reader are associated with all the edges between father and left son , in addition to the first query , whose answer is associated with the root of the full binary tree .a node associated with a subset with cardinality equal to one , is a leaf and it represents an identified tag .so , the number of leaves of the tree is ( the number of tags ) .it is well known that any full binary tree with leaves has nodes .given the above lemma , we are able to state the following theorem .protocol achieves always a 100% performance .due to leamma [ lemmauno ] , every execution of for identifying tags , is equivalent to a full binary tree with nodes .queries are as many as the links between fathers and left sons of the associated full binary tree , plus one for the root .so , if the associated full binary tree has nodes , it has left sons . adding the root , we obtain that the number of queries is equal to .  on the other hand , a full binary tree with nodes ,has leaves .since leaves represent subsets with cardinality equal to one , they represent the tags participating to the identification process .so , the number of queries is equal to the number of tags .this means that always achieves the 100% performance .in this paper , we investigated the tags collision problem in rfid systems .we presented a novel protocol , and showed that its performance is 100% , provided that some assumptions on i d transmissions and receptions are met .the protocol outperforms the currently known protocols for the same problem . as the most important open problem, we cite the performance evaluation of our protocol when the assumptions made do not hold .m. nanjundaiah and v. chaudhary , improvement to the anticollision protocol specification for 900mhz class 0 radio frequency identification tag . in _ proc . of the 19 int .conf . on advanced information networking and applications , aina05 _ , 2005 , pp .616620 .m. a. bonuccelli , f. lonetti , and f. martelli .tree slotted aloha : a new protocol for tag identification in rfid networks . in _ proc .of ieee int .symposium on a world of wireless , mobile and multimedia networks _ , pp . 603608 , jun . 2006 .    c. law , k. lee , and k .- y .siu , efficient memoryless protocol for tag identification ( extended abstract ) . in _ proc .workshop on discrete algorithms and methods for mobile computing and communications ( dialm 00 ) _ ,new york , usa , 2000 , pp .7584 .a. micic , a. nayac , d. simplot - ryl and i. stojmenovic , a hybrid randomized protocol for rfid tag identification . in _1st ieee int .workshop on next generation wireless networks ( wongen 05)_. dec .2005 .j. myung , w. lee , j. srivastava and t.k .shih , tag - splitting : adaptive collision arbitration protocols for rfid tag identification . in _ieee trans . on parallel anddistributed systems _ , vol . 18 ( 6 ) , pp .763 - 775 , jun . 2007 .q. peng , m. zhang and w. wu , variant enhanced dynamic frame slotted aloha algorithm for fast object identification in rfid system . in _ proc . of ieee int .workshop on anti - counterfeiting , security , identification _ , pp .88 - 91 , apr . 2007 .chen , s .-horng and p. fan , an enhanced anti - collision algorithm in rfid based on counter and stack . in _ proc . of the second int. conf . on systems and networks communications21 , aug . 2007 .j. park , m.y .chung and t.j .lee , identification of rfid tags in framed - slotted aloha with robust estimation and binary selection . in _ ieee communications letters _ ,11 ( 5 ) , pp .452454 , may 2007 .

Abstract: radio frequency identification ( rfid ) systems are becoming more and more popular in the field of ubiquitous computing , in particular for objects identification . an rfid system is composed by one or more readers and a number of tags . one of the main issues in an rfid network is the fast and reliable identification of all tags in the reader range . the reader issues some queries , and tags properly answer . then , the reader must identify the tags from such answers . this is crucial for most applications . since the transmission medium is shared , the typical problem to be faced is a mac - like one , i.e. to avoid or limit the number of tags transmission collisions . we propose a protocol which , under some assumptions about transmission techniques , always achieves a 100% perfomance . it is based on a proper recursive splitting of the concurrent tags sets , until all tags have been identified . the other approaches present in literature have performances of about 42% in the average at most . the counterpart is a more sophisticated hardware to be deployed in the manufacture of low cost tags .