ResilienceDecisionMaking
https://github.com/friesischscott/resiliencedecisionmaking.jl
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 8 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.2%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: FriesischScott
- License: mit
- Language: Julia
- Default Branch: main
- Size: 29.3 KB
Statistics
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
- Releases: 2
Metadata Files
README.md
ResilienceDecisionMaking.jl
This package contains the code and examples for the resilience decision-making method presented in Salomon et al. (2022).
Installation
The package is registered in the Julia General registry and can be installed from Pkg with
julia
] add ResilienceDecisionMaking
Getting started
The main interface of the resilience decision making method is the grid_search method which returns the computed resilience values as a Dict of the endowment configurations, the coefficient of variation and the pareto front. To explain we use the example of the multistage high-speed axial compressor as presented in the paper. First, we define a system representation in this case the adjacency matrix of the system as
julia
A = [
0.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
]
We further define the maximum values of the endowment configurations we want to explore and the time as a tuple of minimum and maximum as well as the number of time steps
```julia endowments = [20, 20, 20, 20]
t = (0.0, 10.0) tₙ = 200 ```
Next, we define a function failure_rates which returns the current failure rates of all components for all time steps times for the current endowment configuration η
```julia λ = 0.8
function failure_rates(times::Vector{T} where {T<:Real}, η::Vector{T} where {T<:Integer}) rates = [ (λ - 0.03 * η[1]) * ones(2)..., (λ - 0.03 * η[2]), (λ - 0.03 * η[3]), (λ - 0.03 * η[4]) * ones(4)..., ] return hcat([rates for _ in 1:length(times)]...) end ```
Finally, we define the recovery behaviour of the components through the recovery! function. This function must update the components and recovery_times vectors in place (!) and return nothing. Note, that in this example recovery is independent of η. See the other demo example for how to use η to influence the recovery of components.
```julia r_max = 21
function recovery!(components, recoverytimes, η) for (i, (c, r)) in enumerate(zip(components, recoverytimes)) if ~c if r >= rmax - 11 components[i] = true recoverytimes[i] = 1 else recoverytimes[i] = recoverytimes[i] + 1 end end end
return nothing
end ```
Finally, we can run the grid_search where configurations are accepted if the resilience value is above α = 0.85. We also pass a structure function evaluating of the system is currently working (s-t-connectivity) and the number of samples (500) to use per resilience computation.
```julia α = 0.85
res, σ, front = gridsearch( A, endowments, t, tₙ, failurerates, recovery!, ResilienceDecisionMaking.stconnectivity([1, 3], [5, 6, 7, 8]), 500, α, true, # only return the "dominant" entries of the pareto front ) ```
References
Salomon, J., Behrensdorf, J., Winnewisser, N., Broggi, M., & Beer, M. (2022). Multidimensional resilience decision-making for complex and substructured systems. Resilient Cities and Structures, 1(3), 61-78, 10.1016/j.rcns.2022.10.005.
Owner
- Name: Jasper Behrensdorf
- Login: FriesischScott
- Kind: user
- Location: Hannover, Germany
- Company: Leibniz University Hannover
- Website: https://www.irz.uni-hannover.de/de/institut/team/behrensdorf
- Repositories: 7
- Profile: https://github.com/FriesischScott
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Behrensdorf"
given-names: "Jasper"
orcid: "https://orcid.org/0000-0001-9628-7250"
- family-names: "Salomon"
given-names: "Julian"
orcid: "https://orcid.org/0000-0002-5184-6968"
- family-names: "Winnewisser"
given-names: "Niklas"
orcid: "https://orcid.org/0000-0003-0694-1349"
title: "SurvivalSignature.jl"
doi: 10.5281/zenodo.7034998
license: MIT
url: "https://github.com/FriesischScott/ResilienceDecisionMaking.jl"
preferred-citation:
type: article
authors:
- family-names: "Salomon"
given-names: "Julian"
orcid: "https://orcid.org/0000-0002-5184-6968"
- family-names: "Behrensdorf"
given-names: "Jasper"
orcid: "https://orcid.org/0000-0001-9628-7250"
- family-names: "Winnewisser"
given-names: "Niklas"
orcid: "https://orcid.org/0000-0003-0694-1349"
- family-names: "Broggi"
given-names: "Matteo"
orcid: "https://orcid.org/0000-0002-3683-3907"
- family-names: "Beer"
given-names: "Michael"
orcid: "https://orcid.org/0000-0002-0611-0345"
doi: "10.1016/j.rcns.2022.10.005"
journal: "Resilient Cities and Structures"
title: "Multidimensional resilience decision-making for complex and substructured systems"
volume: 1
issue: 3
start: 61
end: 78
year: 2022
GitHub Events
Total
Last Year
Issues and Pull Requests
Last synced: 10 months ago
All Time
- Total issues: 1
- Total pull requests: 0
- Average time to close issues: less than a minute
- Average time to close pull requests: N/A
- Total issue authors: 1
- Total pull request authors: 0
- Average comments per issue: 1.0
- Average comments per pull request: 0
- Merged pull requests: 0
- 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
- JuliaTagBot (1)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
- Total downloads: unknown
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 1
juliahub.com: ResilienceDecisionMaking
- Documentation: https://docs.juliahub.com/General/ResilienceDecisionMaking/stable/
- License: MIT
-
Latest release: 1.0.0
published over 2 years ago
Rankings
Dependencies
- JuliaRegistries/TagBot v1 composite