NetLogo / NetLogo/NW-Extension

Add configuration model generation

Open
#130 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Scala
Stars
66
Forks
25
PR merge metrics
No merged PRs in 30d

Description

The configuration model takes a specified degree distribution and generates a random network with that exact degree distribution. It works as follows: give each node i k_i link stubs, where a k_i is the degree assigned to node i and a link stub is simply a link with only one end connected. Connect the link stubs to each other uniformly at random. This can result in networks with multiple links between nodes and self-loops. If any appear, just reshuffle the connections.

The nice thing about the configuration model is that it's so flexible. Generating a regular network becomes one line:

nw:generate-configuration n-values 100 [ 5 ]

Arbitrary scale-free networks can be generated like so:

nw:generate-configuration n-values 100 [ round (50 * (? + 1) ^ -1) ]

This is partially inspired by this SO question: http://stackoverflow.com/questions/25332514/assigning-neighbors-to-agents-in-symmetric-manner

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the extension entry point for nw:generate-configuration and the existing network-generation APIs. Implement the described degree-stub connection behavior, including reshuffling when self-loops or multiple links occur. Done means the example calls generate networks with the requested degree distribution without those connections.

Written by the indexing model from the issue text.

Assessment

Tech stack
scala
Domain
networking
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.