Social networks, MATSim Castasegna meeting, October 2007

Social networks module, MATSim Castasegna meeting,
October 2007
Jeremy Hackney
July 17
Social interactions in transportation science
Long term
how travel technology and other factors influence contacts
Short term
how social contacts influence activity travel choices, mental
maps, spatial discovery
Social interaction and travel behavior
Geography
Transportation
supply
Transport
planning
Sociology
New areas
Statistical
physics
Social
behavior
Activity travel
behavior
Features of the Social Network Module
Initial social network
Face to face interactions (spatial)
Modify social network
Other interactions (non-spatial)
Modify activity plans using social influence model
Re-evaluate plans
Calculate complex network statistics
Output movements, socializing, and statistics
Module API classes
EgoNetwork
(Person.knowledge)
• A map of affiliated Persons and
SocialLinks to them
CoolPlaces
(Person.knowledge.map)
• Facilities <> Activities
SocialNetwork
• A map of EgoNetworks
• Initialization, modification methods
Knowledge is modified
• Ego Network
• CoolPlaces
(Person)
Interactors
(SocialNetwork)
• Spatial (face to face)
• NonSpatial (not observed, not face to face)
SocialNetworkStatistics
• Probes of social and travel behavior
MATSim Controller
Startup
Choose Strategy
and Scoring
Load Data
Replan
Strategy
.xml:
Plans
World
Network
Facilities
Matrix
Census
Etc.
Adjust Plans
Shutdown
Social Network Controller
Startup
Choose Strategy
and Scoring
Load Data
SocialNet
Interactions
Initialize
SocialNet
Adjust Plans
.xml:
Plans
World
Network
Facilities
Matrix
Census
Etc.
Shutdown
NOTE: Scoring
For quickly generating the social network, new evaluation of the
new plans is necessary. However, precise traffic assignment is
not important. MobSim in RePlanning can be a simple Euclidean
distance. I have not programmed this, though.
Instead, I generate the social network quickly by iterating outside of
the RePlanning loop. I have had to write my own scoring
function (not a standard MATSim scoring function, which is tied
to the replanning package).
IMPROVEMENT: I want to use the MATSim scoring package but I
need a simpler plan scoring device than full assignment
NOTE: Coupling
Partial relaxation technique used for socializing
Number of iterations of socializing before replanning is adjustable
This amounts to variable coupling strength between social network
algorithm and travel algorithms
This will be very important, I think (see sample results)
Input SocialNet
and Plans
SNInteractions
Spatial
Interactions
Nonspatial
Interactions
Wrapup
Map agents <>
activity locations
Exchange
Knowledge
Write out
Social Net
Agents interact
at
locations
(Negotiate
activities)
Calculate and
write out
Statistics
Link Removal
Return SocialNet
Input SocialNet
and Plans
SN Plan Adjustments
Probe
Knowledge
Change Copied
Plan
Evaluate
Change
Pick Type
of Activity
Pick Activity
of same Type
from Plan
Either Re-Assign
or other Measure
Pick Facility
of this Type
from Knowledge
Replace
its Facility
from Knowledge
Calculate and
write out
Statistics
Copy Selected
Plan
Return Plans
Example "experiment"
Initial social network
Erdös/Renyi
Face to face interactions
Renew link or make friend
Modify social network
Remove "old" links
Other interactions
Modify activity plans
Exchange info about locations
Introduce friends of friends
Switch secondary location
Re-evaluate plans
Select: shortest total length
Calculate complex network statistics
Output movements, socializing, and statistics
Example "experiment"
1008 randomly generated agents
0-3 random out of home activities
Random activity destinations
Equal time for each activity
1 day
Source: Michael Balmer 2007
Network:
Sample Configuration File
<!-- ====================================================================== -->
<module name="socialnetwork" >
<param name="degree_saturation_rate" value="0" />
<param name="edge_type" value="UNDIRECTED" />
<param name="factype_ns"
value="leisure,shop,education,work,person" />
<param name="fract_ns_interact" value="0." />
<param name="fract_s_interact" value="1." />
<param name="kbar" value="0" />
<param name="max_sn_iter" value="100" />
<param name="nonspatial_interactor_type" value="random" />
<param name="num_ns_interactions" value="1" />
<param name="outputDirSocialNets" value="C:/Documents and
<param name="prob_befriend" value="1." />
<param name="replanning_interval" value="1000" />
<param name="s_weights" value=".01,.05,.005,.05,.005" />
<param name="socnetalgorithm" value="random" />
<param name="socnetlinkremovalage" value="5" />
<param name="socnetlinkremovalalgorithm"
value="random_link_age1" />
<param name="socnetlinkremovalp" value="0.05" />
<param name="socnetlinkstrengthalgorithm" value="constant" />
<param name="spatial_interactor_type" value="random" />
<param name="switch_weights" value="0.0,0.01,1.0,0.01,1.0" />
</module>
<!-- ====================================================================== -->
Analysis 1: Overview
Calculating statistics in MATSim run requires
JUNG library
Support libraries for JUNG
Costs time, information not used in run (analysis only)
Other statistics from output network (iterations) in Space-ASCII
Postprocess with R and Pajek
Postprocessing will be impossible with larger networks/bigger files
Analysis 2: Some output files
Agent file (nodes)
iter id homeid deg asd1 asd2 asd3 clust plantype numknown
0
1 110 0 NaN
193.54 610.6 0.0 hlwhh 0
0 640 101 1 120.93
0.0
0.0 0.0 hhh
0
0 300 105 3 151.87
0.0
0.0 0.0 hhhhh 0
0 850 102 6 133.96 40.0 160.0 0.0 hehh 0
...
Edge file (edges)
iter tlast tfirst dist egoid alterid purpose timesmet
0 0 0 200.0 437 382 initialized 1
...
100 86 86 0.0 463 67 renewwork 1
100 91 91 200.0 108 319 newrandomintro 1
100 95 95 175.0 649 400 newleisure 1
...
Graph file (statistics)
iter deg clust clustratio asd1 asd2 asd3 dyad_dist
0 2.994 0.0019 0.672 125.961 127.277 383.09 127.54
1 3.049 0.0071 2.353 124.953 126.152 378.26 126.74
2 3.134 0.0143 4.616 123.515 125.556 374.77 125.32
...
link_age meet_freq
0.0 Infinity
0.95 1.00
1.87 0.50
Analysis 3: Analysis tools
Network statistics:
MATSim  /socialnets/stats  R  .pdf's  single .pdf
Visualization:
MATSim  /socialnets/pajek  Pajek  .svg
Movies of "Evolution" would be possible if I wrote out the format
KML is no problem except HUGE files and not sure what it shows
Automatic detection of clusters, different stats from MATSim
would give more insight
For output example
See Frontiers in Transportation presentation
(inserted 22.10.2007)
Model 1 no optimization of activities: only iterate social network
(friends-of-friends meeting, spatial meeting)
Model 2 optimize secondary locations: each social network iteration
(friends-of-friends meeting, spatial meeting, exchange of spatial
information), replan by changing secondary location. Choose
path with shortest-length chain (no MobSim)
Validation of social network output
Exponential degree distribution P(ij)~exp(N(z))
Average degree
Clustering coefficient > random
Short path lengths
Homophily (assortativity)
Geographic attributes
Visit frequency vs. distance, etc.
Analysis: Sample Degree Distribution
Log-normal
200
180
160
140
120
100
80
60
40
20
0
-1
STRC05
STRC04
-2
-3
ln(P(Degree))
Number of Agents
Activities constant
-4
y = -0.2779x - 1.3482
R2 = 0.9661
-5
-6
y = -0.3082x - 1.1713
R2 = 0.9109
-7
1
3
5
7
9
0
11 13 15 17 19 21 23
5
20
25
Degree
Activities optimized
Log-log
-1
STRC05
STRC04
-2
-3
y = -4.2047x + 5.6948
R2 = 0.9055
ln(P(Degree))
Number of Agents
15
-8
Degree
200
180
160
140
120
100
80
60
40
20
0
10
-4
-5
-6
-7
1
3
5
7
9
0
11 13 15 17 19 21 23
Degree
0.5
1
1.5
2
-8
ln(Degree)
2.5
3
3.5
Analysis: Sample Graph Statistics, N=1008
Run
configuration
Diameter
Constant
activity plan
14
125
2.13
3.77
Optimized
activity plan
12
195
1.31
3.57
~12±-1
~48±3
1.00
3.6-3.7
Erdös/Renyi
reference graph
Number of
components
Average clustering ratio
relative to Erdös/Renyi
Average
Degree
 The 2 social network graphs have exponentially distributed degree which is
the same whether activities are replanned or not. However other
graph and travel statistics are very different in the two models.
Analysis: Sample Activity Space Measures
Sum of arrow length is Euclideanbased length of plan (activity chain)
(asd3)
Circle representation of average
distance to all activities (asd1)
Circle representation of average
distance to all friends (asd2)
Plan type = "hwlh"
Analysis: Sample Activity Space Measures
No replanning of secondary activity location
Replanning secondary activity location
each iteration of social network
Calculation size
Interaction calculation scales as N * degree
~ pN * N where p is the percent of population that agent knows,
i.e. a function of 1/N
Knowledge exchange calculation scales as N * q * degree
where q is the number of places known to the agent
Introducing friends calculation scales as N * degree