Skip to content

Commit b6346e0

Browse files
committed
Damping makes GLMSBM converge
1 parent aa9914d commit b6346e0

File tree

9 files changed

+275
-177
lines changed

9 files changed

+275
-177
lines changed

Manifest.toml

Lines changed: 146 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# This file is machine-generated - editing it directly is not advised
22

3-
julia_version = "1.10.0-beta2"
3+
julia_version = "1.9.3"
44
manifest_format = "2.0"
5-
project_hash = "06fe3f2e3a2d6f17958684cbeb77c96e1e718454"
5+
project_hash = "795b1df22cc4ba33911bbce0e4134da450b138d8"
66

77
[[deps.ArgTools]]
88
uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f"
@@ -20,6 +20,34 @@ uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33"
2020
[[deps.Base64]]
2121
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
2222

23+
[[deps.ColorSchemes]]
24+
deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"]
25+
git-tree-sha1 = "d9a8f86737b665e15a9641ecbac64deef9ce6724"
26+
uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4"
27+
version = "3.23.0"
28+
29+
[[deps.ColorTypes]]
30+
deps = ["FixedPointNumbers", "Random"]
31+
git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4"
32+
uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f"
33+
version = "0.11.4"
34+
35+
[[deps.ColorVectorSpace]]
36+
deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"]
37+
git-tree-sha1 = "a1f44953f2382ebb937d60dafbe2deea4bd23249"
38+
uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4"
39+
version = "0.10.0"
40+
weakdeps = ["SpecialFunctions"]
41+
42+
[deps.ColorVectorSpace.extensions]
43+
SpecialFunctionsExt = "SpecialFunctions"
44+
45+
[[deps.Colors]]
46+
deps = ["ColorTypes", "FixedPointNumbers", "Reexport"]
47+
git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a"
48+
uuid = "5ae59095-9a9b-59fe-a467-6f913c188581"
49+
version = "0.12.10"
50+
2351
[[deps.Compat]]
2452
deps = ["UUIDs"]
2553
git-tree-sha1 = "e460f044ca8b99be31d35fe54fc33a5c33dd8ed7"
@@ -33,7 +61,22 @@ weakdeps = ["Dates", "LinearAlgebra"]
3361
[[deps.CompilerSupportLibraries_jll]]
3462
deps = ["Artifacts", "Libdl"]
3563
uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae"
36-
version = "1.0.5+1"
64+
version = "1.0.5+0"
65+
66+
[[deps.Contour]]
67+
git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781"
68+
uuid = "d38c429a-6771-53c6-b99e-75d170b6e991"
69+
version = "0.6.2"
70+
71+
[[deps.Crayons]]
72+
git-tree-sha1 = "249fe38abf76d48563e2f4556bebd215aa317e15"
73+
uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f"
74+
version = "4.1.1"
75+
76+
[[deps.DataAPI]]
77+
git-tree-sha1 = "8da84edb865b0b5b0100c0666a9bc9a0b71c553c"
78+
uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a"
79+
version = "1.15.0"
3780

3881
[[deps.DataStructures]]
3982
deps = ["Compat", "InteractiveUtils", "OrderedCollections"]
@@ -69,6 +112,12 @@ version = "1.6.0"
69112
[[deps.FileWatching]]
70113
uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee"
71114

115+
[[deps.FixedPointNumbers]]
116+
deps = ["Statistics"]
117+
git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc"
118+
uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93"
119+
version = "0.8.4"
120+
72121
[[deps.Graphs]]
73122
deps = ["ArnoldiMethod", "Compat", "DataStructures", "Distributed", "Inflate", "LinearAlgebra", "Random", "SharedArrays", "SimpleTraits", "SparseArrays", "Statistics"]
74123
git-tree-sha1 = "1cf1d7dcb4bc32d7b4a5add4232db3750c27ecb4"
@@ -104,12 +153,12 @@ version = "1.5.0"
104153
[[deps.LibCURL]]
105154
deps = ["LibCURL_jll", "MozillaCACerts_jll"]
106155
uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21"
107-
version = "0.6.4"
156+
version = "0.6.3"
108157

109158
[[deps.LibCURL_jll]]
110159
deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"]
111160
uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0"
112-
version = "8.0.1+1"
161+
version = "7.84.0+0"
113162

114163
[[deps.LibGit2]]
115164
deps = ["Base64", "NetworkOptions", "Printf", "SHA"]
@@ -118,7 +167,7 @@ uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"
118167
[[deps.LibSSH2_jll]]
119168
deps = ["Artifacts", "Libdl", "MbedTLS_jll"]
120169
uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8"
121-
version = "1.11.0+1"
170+
version = "1.10.2+0"
122171

123172
[[deps.Libdl]]
124173
uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
@@ -143,6 +192,12 @@ version = "0.3.26"
143192
ChangesOfVariables = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0"
144193
InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112"
145194

195+
[[deps.LogarithmicNumbers]]
196+
deps = ["Random"]
197+
git-tree-sha1 = "8522befb54ff3b4bcf17d57b14b884d536a22015"
198+
uuid = "aa2f6b4e-9042-5d33-9679-40d3a6b85899"
199+
version = "1.2.1"
200+
146201
[[deps.Logging]]
147202
uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"
148203

@@ -152,21 +207,39 @@ git-tree-sha1 = "9ee1618cbf5240e6d4e0371d6f24065083f60c48"
152207
uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09"
153208
version = "0.5.11"
154209

210+
[[deps.MarchingCubes]]
211+
deps = ["PrecompileTools", "StaticArrays"]
212+
git-tree-sha1 = "c8e29e2bacb98c9b6f10445227a8b0402f2f173a"
213+
uuid = "299715c1-40a9-479a-aaf9-4a633d36f717"
214+
version = "0.1.8"
215+
155216
[[deps.Markdown]]
156217
deps = ["Base64"]
157218
uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"
158219

159220
[[deps.MbedTLS_jll]]
160221
deps = ["Artifacts", "Libdl"]
161222
uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1"
162-
version = "2.28.2+1"
223+
version = "2.28.2+0"
224+
225+
[[deps.Missings]]
226+
deps = ["DataAPI"]
227+
git-tree-sha1 = "f66bdc5de519e8f8ae43bdc598782d35a25b1272"
228+
uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28"
229+
version = "1.1.0"
163230

164231
[[deps.Mmap]]
165232
uuid = "a63ad114-7e13-5084-954f-fe012c677804"
166233

167234
[[deps.MozillaCACerts_jll]]
168235
uuid = "14a3606d-f60d-562e-9121-12d972cd8159"
169-
version = "2023.1.10"
236+
version = "2022.10.11"
237+
238+
[[deps.NaNMath]]
239+
deps = ["OpenLibm_jll"]
240+
git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4"
241+
uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3"
242+
version = "1.0.2"
170243

171244
[[deps.NetworkOptions]]
172245
uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908"
@@ -175,12 +248,12 @@ version = "1.2.0"
175248
[[deps.OpenBLAS_jll]]
176249
deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"]
177250
uuid = "4536629a-c528-5b80-bd46-f80d51c5b363"
178-
version = "0.3.23+2"
251+
version = "0.3.21+4"
179252

180253
[[deps.OpenLibm_jll]]
181254
deps = ["Artifacts", "Libdl"]
182255
uuid = "05823500-19ac-5b8b-9628-191a04bc5112"
183-
version = "0.8.1+2"
256+
version = "0.8.1+0"
184257

185258
[[deps.OpenSpecFun_jll]]
186259
deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"]
@@ -196,7 +269,7 @@ version = "1.6.2"
196269
[[deps.Pkg]]
197270
deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"]
198271
uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
199-
version = "1.10.0"
272+
version = "1.9.2"
200273

201274
[[deps.PrecompileTools]]
202275
deps = ["Preferences"]
@@ -225,9 +298,20 @@ deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"]
225298
uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"
226299

227300
[[deps.Random]]
228-
deps = ["SHA"]
301+
deps = ["SHA", "Serialization"]
229302
uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
230303

304+
[[deps.Reexport]]
305+
git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b"
306+
uuid = "189a3867-3050-52da-a836-e630ba90ab69"
307+
version = "1.2.2"
308+
309+
[[deps.Requires]]
310+
deps = ["UUIDs"]
311+
git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7"
312+
uuid = "ae029012-a4dd-5104-9daa-d747884805df"
313+
version = "1.3.0"
314+
231315
[[deps.SHA]]
232316
uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"
233317
version = "0.7.0"
@@ -254,10 +338,15 @@ version = "1.4.0"
254338
[[deps.Sockets]]
255339
uuid = "6462fe0b-24de-5631-8697-dd941f90decc"
256340

341+
[[deps.SortingAlgorithms]]
342+
deps = ["DataStructures"]
343+
git-tree-sha1 = "c60ec5c62180f27efea3ba2908480f8055e17cee"
344+
uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c"
345+
version = "1.1.1"
346+
257347
[[deps.SparseArrays]]
258348
deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"]
259349
uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
260-
version = "1.10.0"
261350

262351
[[deps.SpecialFunctions]]
263352
deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"]
@@ -291,10 +380,22 @@ deps = ["LinearAlgebra", "SparseArrays"]
291380
uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
292381
version = "1.9.0"
293382

383+
[[deps.StatsAPI]]
384+
deps = ["LinearAlgebra"]
385+
git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed"
386+
uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0"
387+
version = "1.7.0"
388+
389+
[[deps.StatsBase]]
390+
deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"]
391+
git-tree-sha1 = "75ebe04c5bed70b91614d684259b661c9e6274a4"
392+
uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91"
393+
version = "0.34.0"
394+
294395
[[deps.SuiteSparse_jll]]
295396
deps = ["Artifacts", "Libdl", "Pkg", "libblastrampoline_jll"]
296397
uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c"
297-
version = "7.2.0+1"
398+
version = "5.10.1+6"
298399

299400
[[deps.TOML]]
300401
deps = ["Dates"]
@@ -306,6 +407,12 @@ deps = ["ArgTools", "SHA"]
306407
uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e"
307408
version = "1.10.0"
308409

410+
[[deps.TensorCore]]
411+
deps = ["LinearAlgebra"]
412+
git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6"
413+
uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50"
414+
version = "0.1.1"
415+
309416
[[deps.Test]]
310417
deps = ["InteractiveUtils", "Logging", "Random", "Serialization"]
311418
uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
@@ -317,22 +424,43 @@ uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"
317424
[[deps.Unicode]]
318425
uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5"
319426

427+
[[deps.UnicodePlots]]
428+
deps = ["ColorSchemes", "ColorTypes", "Contour", "Crayons", "Dates", "LinearAlgebra", "MarchingCubes", "NaNMath", "PrecompileTools", "Printf", "Requires", "SparseArrays", "StaticArrays", "StatsBase"]
429+
git-tree-sha1 = "b96de03092fe4b18ac7e4786bee55578d4b75ae8"
430+
uuid = "b8865327-cd53-5732-bb35-84acbb429228"
431+
version = "3.6.0"
432+
433+
[deps.UnicodePlots.extensions]
434+
FreeTypeExt = ["FileIO", "FreeType"]
435+
ImageInTerminalExt = "ImageInTerminal"
436+
IntervalSetsExt = "IntervalSets"
437+
TermExt = "Term"
438+
UnitfulExt = "Unitful"
439+
440+
[deps.UnicodePlots.weakdeps]
441+
FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549"
442+
FreeType = "b38be410-82b0-50bf-ab77-7b57e271db43"
443+
ImageInTerminal = "d8c32880-2388-543b-8c61-d9f865259254"
444+
IntervalSets = "8197267c-284f-5f27-9208-e0e47529a953"
445+
Term = "22787eb5-b846-44ae-b979-8e399b8463ab"
446+
Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d"
447+
320448
[[deps.Zlib_jll]]
321449
deps = ["Libdl"]
322450
uuid = "83775a58-1f1d-513f-b197-d71354ab007a"
323-
version = "1.2.13+1"
451+
version = "1.2.13+0"
324452

325453
[[deps.libblastrampoline_jll]]
326454
deps = ["Artifacts", "Libdl"]
327455
uuid = "8e850b90-86db-534c-a0d3-1478176c7d93"
328-
version = "5.8.0+1"
456+
version = "5.8.0+0"
329457

330458
[[deps.nghttp2_jll]]
331459
deps = ["Artifacts", "Libdl"]
332460
uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d"
333-
version = "1.52.0+1"
461+
version = "1.48.0+0"
334462

335463
[[deps.p7zip_jll]]
336464
deps = ["Artifacts", "Libdl"]
337465
uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0"
338-
version = "17.4.0+2"
466+
version = "17.4.0+0"

Project.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,15 @@ DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d"
88
DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae"
99
Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6"
1010
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
11+
LogarithmicNumbers = "aa2f6b4e-9042-5d33-9679-40d3a6b85899"
1112
PrecompileTools = "aea7be01-6a6a-4083-8856-8a6e6704d82a"
1213
ProgressMeter = "92933f4c-e287-5a05-a399-4b506db050ca"
1314
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
1415
SimpleWeightedGraphs = "47aef6b3-ad0c-573a-a1e2-d07658019622"
1516
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
1617
SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b"
1718
Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
19+
UnicodePlots = "b8865327-cd53-5732-bb35-84acbb429228"
1820

1921
[compat]
2022
DensityInterface = "0.4"

src/StochasticBlockModelVariants.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ export CSBM, LatentsCSBM, ObservationsCSBM
2727
export GLMSBM, LatentsGLMSBM, ObservationsGLMSBM
2828
export GaussianWeightPrior, RademacherWeightPrior
2929
export init_amp, update_amp!, run_amp, evaluate_amp
30+
export discrete_overlap, continuous_overlap
3031

32+
include("utils.jl")
3133
include("abstract_sbm.jl")
3234
include("csbm.jl")
3335
include("glmsbm.jl")

src/abstract_sbm.jl

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -97,25 +97,3 @@ function sample_mask(rng::AbstractRNG, sbm::AbstractSBM, communities::Vector{<:I
9797
end
9898
return Ξ
9999
end
100-
101-
prior(::Type{R}, u, Ξᵢ) where {R} = ismissing(Ξᵢ) ? one(R) / 2 : R(Ξᵢ == u)
102-
103-
sigmoid(x) = 1 / (1 + exp(-x))
104-
105-
freq_equalities(x, y) = mean(x[i] y[i] for i in eachindex(x, y))
106-
107-
function discrete_overlap(u, û)
108-
R = eltype(û)
109-
û_sign = sign.(û)
110-
û_sign[abs.(û) .< eps(R)] .= 1
111-
q̂ᵤ = max(freq_equalities(u, û_sign), freq_equalities(u, -û_sign))
112-
qᵤ = 2 * (q̂ᵤ - one(R) / 2)
113-
return qᵤ
114-
end
115-
116-
function continuous_overlap(v, v̂)
117-
R = eltype(v)
118-
q̂ᵥ = max(abs(dot(v̂, v)), abs(dot(v̂, -v)))
119-
qᵥ = q̂ᵥ / (eps(R) + norm(v̂) * norm(v))
120-
return qᵥ
121-
end

0 commit comments

Comments
 (0)