summaryrefslogtreecommitdiff
path: root/doc/conf_model_deg.1.html
blob: 54365a91f793490c4eccf3d4742d7a49bab99b9b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
<!DOCTYPE html>
<html>
<head>
  <meta http-equiv='content-type' value='text/html;charset=utf8'>
  <meta name='generator' value='Ronn/v0.7.3 (http://github.com/rtomayko/ronn/tree/0.7.3)'>
  <title>conf_model_deg(1) - Sample a simple graph from the configuration model</title>
  <style type='text/css' media='all'>
  /* style: man */
  body#manpage {margin:0}
  .mp {max-width:100ex;padding:0 9ex 1ex 4ex}
  .mp p,.mp pre,.mp ul,.mp ol,.mp dl {margin:0 0 20px 0}
  .mp h2 {margin:10px 0 0 0}
  .mp > p,.mp > pre,.mp > ul,.mp > ol,.mp > dl {margin-left:8ex}
  .mp h3 {margin:0 0 0 4ex}
  .mp dt {margin:0;clear:left}
  .mp dt.flush {float:left;width:8ex}
  .mp dd {margin:0 0 0 9ex}
  .mp h1,.mp h2,.mp h3,.mp h4 {clear:left}
  .mp pre {margin-bottom:20px}
  .mp pre+h2,.mp pre+h3 {margin-top:22px}
  .mp h2+pre,.mp h3+pre {margin-top:5px}
  .mp img {display:block;margin:auto}
  .mp h1.man-title {display:none}
  .mp,.mp code,.mp pre,.mp tt,.mp kbd,.mp samp,.mp h3,.mp h4 {font-family:monospace;font-size:14px;line-height:1.42857142857143}
  .mp h2 {font-size:16px;line-height:1.25}
  .mp h1 {font-size:20px;line-height:2}
  .mp {text-align:justify;background:#fff}
  .mp,.mp code,.mp pre,.mp pre code,.mp tt,.mp kbd,.mp samp {color:#131211}
  .mp h1,.mp h2,.mp h3,.mp h4 {color:#030201}
  .mp u {text-decoration:underline}
  .mp code,.mp strong,.mp b {font-weight:bold;color:#131211}
  .mp em,.mp var {font-style:italic;color:#232221;text-decoration:none}
  .mp a,.mp a:link,.mp a:hover,.mp a code,.mp a pre,.mp a tt,.mp a kbd,.mp a samp {color:#0000ff}
  .mp b.man-ref {font-weight:normal;color:#434241}
  .mp pre {padding:0 4ex}
  .mp pre code {font-weight:normal;color:#434241}
  .mp h2+pre,h3+pre {padding-left:0}
  ol.man-decor,ol.man-decor li {margin:3px 0 10px 0;padding:0;float:left;width:33%;list-style-type:none;text-transform:uppercase;color:#999;letter-spacing:1px}
  ol.man-decor {width:100%}
  ol.man-decor li.tl {text-align:left}
  ol.man-decor li.tc {text-align:center;letter-spacing:4px}
  ol.man-decor li.tr {text-align:right;float:right}
  </style>
  <style type='text/css' media='all'>
  /* style: toc */
  .man-navigation {display:block !important;position:fixed;top:0;left:113ex;height:100%;width:100%;padding:48px 0 0 0;border-left:1px solid #dbdbdb;background:#eee}
  .man-navigation a,.man-navigation a:hover,.man-navigation a:link,.man-navigation a:visited {display:block;margin:0;padding:5px 2px 5px 30px;color:#999;text-decoration:none}
  .man-navigation a:hover {color:#111;text-decoration:underline}
  </style>
</head>
<!--
  The following styles are deprecated and will be removed at some point:
  div#man, div#man ol.man, div#man ol.head, div#man ol.man.

  The .man-page, .man-decor, .man-head, .man-foot, .man-title, and
  .man-navigation should be used instead.
-->
<body id='manpage'>
  <div class='mp' id='man'>

  <div class='man-navigation' style='display:none'>
    <a href="#NAME">NAME</a>
    <a href="#SYNOPSIS">SYNOPSIS</a>
    <a href="#DESCRIPTION">DESCRIPTION</a>
    <a href="#PARAMETERS">PARAMETERS</a>
    <a href="#OUTPUT">OUTPUT</a>
    <a href="#EXAMPLES">EXAMPLES</a>
    <a href="#SEE-ALSO">SEE ALSO</a>
    <a href="#REFERENCES">REFERENCES</a>
    <a href="#AUTHORS">AUTHORS</a>
  </div>

  <ol class='man-decor man-head man head'>
    <li class='tl'>conf_model_deg(1)</li>
    <li class='tc'>www.complex-networks.net</li>
    <li class='tr'>conf_model_deg(1)</li>
  </ol>

  <h2 id="NAME">NAME</h2>
<p class="man-name">
  <code>conf_model_deg</code> - <span class="man-whatis">Sample a simple graph from the configuration model</span>
</p>

<h2 id="SYNOPSIS">SYNOPSIS</h2>

<p><code>conf_model_deg</code> <var>degs</var> [<var>threshold</var>]</p>

<h2 id="DESCRIPTION">DESCRIPTION</h2>

<p><code>conf_model_deg</code> samples a simple random undirected graph (i.e., a
graph without self-loops and multiple edges) from the configuration
model associated to the degree sequence provided in the input file
<var>degs</var>.</p>

<h2 id="PARAMETERS">PARAMETERS</h2>

<dl>
<dt class="flush"><var>degs</var></dt><dd><p>  The name of the file containing the degree sequence. If <var>degs</var> is
  equal to '-' (dash) the degree sequence is read from STDIN
  (standard input).</p></dd>
<dt><var>threshold</var>:</dt><dd><p></p>

<p>  Optional number of edge stubs that are allowed to remain
  unmatched. This is useful to create graphs from too-constrained
  degree sequences (see <a href="#EXAMPLES" title="EXAMPLES" data-bare-link="true">EXAMPLES</a> below).</p></dd>
</dl>


<h2 id="OUTPUT">OUTPUT</h2>

<p><code>conf_model_deg</code> prints on output the edge list of the sampled graph,
and reports on STDERR whether it has been able to find a graph.</p>

<h2 id="EXAMPLES">EXAMPLES</h2>

<p>Let us assume that the file <code>pl_-3.0_3_500_10000</code> contains a power-law
degree sequence ('gamma=-3.0', 'k_min=3', 'k_max=500', 'N=10000'), for
instance created using [<span class="man-ref">power_law<span class="s">(1)</span></span>][<span class="man-ref">power_law<span class="s">(1)</span></span>]. We can sample a
simple configuration model graph having that degree sequence using:</p>

<pre><code>    $ conf_model_deg pl_-3.0_3_500_10000 &gt; conf_model_-3.0_3_500_10000.net
</code></pre>

<p>where we have redirected the output (the resulting edge list) to the
file <code>conf_model_-3.0_3_500_10000.net</code>. In this case it is not
necessary to specify a threshold, since the maximum degree in the
sequence is 126, which is smaller than the structural cut-off.</p>

<p>Let us assume now that the file <code>AS-20010316.net_degs</code> contains the
degree sequence of the data set <code>AS-20010316.net</code> (the graph of the
Internet at AS level in March 2001). In this case, the degree sequence
is too constrained, since the maximum degree (2277) is much larger
than the structural cut-off (see <a href="#REFERENCES" title="REFERENCES" data-bare-link="true">REFERENCES</a> below). So if we don't
specify a threshold, we get:</p>

<pre><code>    $ conf_model_deg AS-20010316.net_degs &gt; AS_20010316_rand.net
    Graph not found (unmatched stubs: 986 &gt; threshold: 0)
    Graph not found (unmatched stubs: 888 &gt; threshold: 0)
    Graph not found (unmatched stubs: 974 &gt; threshold: 0)
    .....
</code></pre>

<p>and so on, since <code>conf_model_deg</code> is trying to match all the edge
stubs, without success. From the messages printed by <code>conf_model_deg</code>
on STDERR we notice that the number of unmatched stubs is 986 in the
first attempt, 888 in the second one, and so on, while the acceptable
threshold is set to 0. If we instead specify a reasonable threshold
(in this example set to 950):</p>

<pre><code>    $ conf_model_deg AS-20010316.net_degs 950 &gt; AS_20010316_rand.net
    Graph not found (unmatched stubs: 978 &gt; threshold: 950)
    Found a graph (unmatched stubs: 876 &lt;= threshold: 950)
    $
</code></pre>

<p><code>conf_model_deg</code> is able to create a graph after a few
attempts. Notice that in the resulting graph 876 of the original edge
stubs will remain unmatched, meaning that the resulting graph has
876/2=438 edges less than those contained in the original graph.</p>

<h2 id="SEE-ALSO">SEE ALSO</h2>

<p><span class="man-ref">deg_seq<span class="s">(1)</span></span>, <span class="man-ref">conf_model_deg_nocheck<span class="s">(1)</span></span>, <span class="man-ref">power_law<span class="s">(1)</span></span>, <span class="man-ref">hv_net<span class="s">(1)</span></span></p>

<h2 id="REFERENCES">REFERENCES</h2>

<ul>
<li><p>V. Latora, V. Nicosia, G. Russo, "Complex Networks: Principles,
Methods and Applications", Chapter 5, Cambridge University Press
(2017)</p></li>
<li><p>V. Latora, V. Nicosia, G. Russo, "Complex Networks: Principles,
Methods and Applications", Appendix 12, Cambridge University Press
(2017)</p></li>
</ul>


<h2 id="AUTHORS">AUTHORS</h2>

<p>(c) Vincenzo 'KatolaZ' Nicosia 2009-2017 <code>&lt;v.nicosia@qmul.ac.uk&gt;</code>.</p>


  <ol class='man-decor man-foot man foot'>
    <li class='tl'>www.complex-networks.net</li>
    <li class='tc'>September 2017</li>
    <li class='tr'>conf_model_deg(1)</li>
  </ol>

  </div>
</body>
</html>