https://github.com/0xr0bert/motivate

An agent-based model of active travel

https://github.com/0xr0bert/motivate

Science Score: 10.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    2 of 4 committers (50.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (6.1%) to scientific vocabulary

Keywords

agency agent agent-based-modeling agent-based-simulation artificial-intelligence model simulation social-sciences
Last synced: 5 months ago · JSON representation

Repository

An agent-based model of active travel

Basic Info
  • Host: GitHub
  • Owner: 0xr0bert
  • License: mit
  • Language: Rust
  • Default Branch: master
  • Homepage:
  • Size: 10.5 MB
Statistics
  • Stars: 1
  • Watchers: 2
  • Forks: 1
  • Open Issues: 0
  • Releases: 0
Archived
Topics
agency agent agent-based-modeling agent-based-simulation artificial-intelligence model simulation social-sciences
Created over 7 years ago · Last pushed over 5 years ago
Metadata Files
Readme License

README.md

Motivate Build Status

Setup

Install rust using rustup

Running Motivate

Configuration

config/parameters.yaml

```yaml

totalyears: the number of years the simulation runs for numberofpeople: the number of people in the simulation numberofsimulations: the number of simulations to run in parallel socialconnectivity: how connected an agent is to its social network subcultureconnectivity: how connected an agent is to its subculture neighbourhoodconnectivity: how connected an agent is to its neighbourhood numberofsocialnetworklinks: the minimum number of links an agent should have in its social network numberofneighbourlinks: the minimum number of neighbours an agent should be influenced by daysinhabitaverage: the number of days that account for approximately 86% of the habit average distributions: this should not be changed ```

config/scenario.yaml

```yaml

id: the name of the scenario subcultures: <- these are the subcultures in the scenario, currently an equal amount of agents in each - id: Subculture A <- the name of the subculture desirability: <- the desirability scores of transport modes in the subculture from 0 - 1 PublicTransport: 0.5 Walk: 0.699999988079071 Car: 0.800000011920929 Cycle: 0.8999999761581421 < other subcultures omitted > neighbourhoods: - id: "0" <- the name of the subulture supportiveness: <- how supportive the neighbourhood is for a transport mode Cycle: 0.699999988079071 Walk: 0.800000011920929 Car: 0.8999999761581421 PublicTransport: 0.8999999761581421 capacity: <- the maximum capacity at which there is no congestion penalty Car: 3600 Cycle: 150000 Walk: 150000 PublicTransport: 3000 < other neighbourhoods omitted > numberofbikes: 10000 <- How many bikes are in the scenario numberofcars: 5000 <- How many cars are in the scenario intervention: <- The intervention that should occur day: 365 <- The day at which the intervention takes place neighbourhoodchanges: - id: "0" <- The ID of the neighbourhood to change increaseinsupportiveness: <- How to change the supportiveness, be careful that this does not make the supportiveness < 0 or > 1 Car: -0.1 Cycle: 0.1 < fields with no change are not required > increaseincapacity: <- Be careful this does not make the capacity < 0 Car: -4000 PublicTransport: -100 < if there is no increaseinsupportiveness or increaseincapacity the respective field can be left out e.g. > - id: "1" increaseincapacity: Car: -100 - id: "2" increaseinsupportiveness: Walk: 0.4 Cycle: 0.3 < other changes to the neighbourhood can be added in the same way > subculturechanges: - id: Subculture A <- The ID of the Subculture to change increaseindesirability: <- How to change the desirability, be careful that this does not make the desirability < 0 or > 1 Car: -0.1 Cycle: 0.1 < fields with no change are not required > < other changes to the subculture can be added in the same way > changeinnumberofbikes: 10000 <- An increase (or decrease) in the number of bikes changeinnumberofcars: -100 <- An increase (or decrease) in the number of cars ```

Running the simulation

On the first run of the simulation run cargo run --release -- --generate, so that social networks are generated.

Afterwards in the root of the repository run cargo run --release.

Generating Documentation

Documentation can be generated by running cargo rustdoc -- --document-private-items

Notes

As specified in .cargo/config the generated executable will target the cpu it is compiled on, therefore binaries created on one system, may not execute on other systems, even if they run the same operating system. To remove this requirement remove -C target_cpu=native from .cargo/config, however this could have an impact on performance.

Owner

  • Name: Robert Greener
  • Login: 0xr0bert
  • Kind: user
  • Location: United Kingdom
  • Company: London School of Hygiene and Tropical Medicine

PhD candidate in Public Health / FLOSS software developer.

GitHub Events

Total
Last Year

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 111
  • Total Committers: 4
  • Avg Commits per committer: 27.75
  • Development Distribution Score (DDS): 0.162
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Robert Greener r****r@k****k 93
Robert Greener r****1@g****m 11
Robert Greener r****b@r****m 4
Daniel Lewis d****s@l****k 3
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: almost 2 years ago

All Time
  • Total issues: 0
  • Total pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: 4 minutes
  • Total issue authors: 0
  • Total pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
  • 0xr0bert (2)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

Cargo.lock cargo
  • arrayvec 0.4.7
  • bitflags 1.0.3
  • cfg-if 0.1.4
  • cloudabi 0.0.3
  • crossbeam-deque 0.2.0
  • crossbeam-epoch 0.3.1
  • crossbeam-utils 0.2.2
  • dtoa 0.4.2
  • either 1.5.0
  • fuchsia-zircon 0.3.3
  • fuchsia-zircon-sys 0.3.3
  • hashmap_union 0.2.0
  • itertools 0.7.8
  • lazy_static 1.0.1
  • libc 0.2.42
  • linked-hash-map 0.5.1
  • log 0.4.3
  • maplit 1.0.1
  • memoffset 0.2.1
  • nodrop 0.1.12
  • num_cpus 1.8.0
  • proc-macro2 0.4.6
  • quote 0.6.3
  • rand 0.4.2
  • rand 0.5.3
  • rand_core 0.2.1
  • rayon 1.0.1
  • rayon-core 1.4.0
  • redox_syscall 0.1.40
  • scopeguard 0.3.3
  • serde 1.0.69
  • serde_derive 1.0.70
  • serde_yaml 0.7.5
  • simple_logger 0.5.0
  • syn 0.14.4
  • time 0.1.40
  • unicode-xid 0.1.0
  • winapi 0.3.5
  • winapi-i686-pc-windows-gnu 0.4.0
  • winapi-x86_64-pc-windows-gnu 0.4.0
  • yaml-rust 0.4.0