Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Semi-Markov Process #4

Merged
merged 61 commits into from
Jan 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
5cc35d9
rough implementation of semi Markov process
timmyfaraday Apr 19, 2022
2ff856d
Exponential and Weibull distribution
timmyfaraday Apr 20, 2022
ea43723
LogNormal distribution
timmyfaraday Apr 20, 2022
3f4c799
Update MultiStateSystems.jl
timmyfaraday Apr 20, 2022
25b99ff
added tests for distributions.jl
timmyfaraday Apr 25, 2022
4f07fcb
update markov_process.jl
timmyfaraday Apr 25, 2022
7111b0a
Added weighting function
Glemmers Apr 25, 2022
b877a36
Create semi-analytical.jl
Glemmers Apr 25, 2022
0663a3f
Merge branch 'semi-markov' of https://github.com/timmyfaraday/MultiSt…
Glemmers Apr 25, 2022
e35afd7
Update semi_markov_process.jl
Glemmers Apr 26, 2022
ca6996a
small changes
timmyfaraday Apr 26, 2022
bec9000
Update semi_markov_process.jl
timmyfaraday Apr 26, 2022
5c7ad67
update solvedSTD
timmyfaraday Apr 26, 2022
0431e04
UGO for time dependent probabilities
timmyfaraday Apr 26, 2022
0300203
Minor changes and fixes in semi_markov_process.jl
Glemmers Apr 28, 2022
3ef1edb
Implementation of optical monitoring example
Glemmers May 6, 2022
a086de5
Update semi-analytical.jl
Glemmers May 6, 2022
e8a44aa
Update semi_markov_process.jl
Glemmers May 6, 2022
61b1087
Stripped weight of unit in distributions.jl
Glemmers May 6, 2022
04289b1
small changes
timmyfaraday May 7, 2022
6c03d0b
Update semi-analytical.jl
timmyfaraday May 8, 2022
5fdc97f
Update semi_markov_process.jl
timmyfaraday May 10, 2022
9cb524b
Update semi_markov_process.jl
timmyfaraday May 10, 2022
122bfbf
Create validation_test.jl
Glemmers May 10, 2022
1a36464
small updates
timmyfaraday May 10, 2022
d9a8a5c
Merge branch 'semi-markov' of https://github.com/timmyfaraday/MultiSt…
Glemmers May 10, 2022
3512e6c
Cleanup validation_test.jl
Glemmers May 12, 2022
ba892c0
add QuadGK for integrals
timmyfaraday May 13, 2022
6bcbc72
Merge branch 'semi-markov' of https://github.com/timmyfaraday/MultiSt…
Glemmers May 16, 2022
3a72986
Merge branch 'semi-markov' of https://github.com/timmyfaraday/MultiSt…
Glemmers May 17, 2022
c61d240
Update Project.toml
timmyfaraday May 17, 2022
11ca42a
Merge branch 'semi-markov' of https://github.com/timmyfaraday/MultiSt…
timmyfaraday May 17, 2022
e62140c
*Update universal_generating_operator.jl
Glemmers May 17, 2022
3773a85
Small adjustments for debugging
Glemmers May 23, 2022
d1779d7
set_U functional with sparse matrix, SparseArrays added to MSS
Glemmers May 30, 2022
30876a6
Minor changes semi_markov_process.jl
Glemmers Jun 1, 2022
0378582
Update semi-analytical.jl
Glemmers Jun 1, 2022
c799bdf
Optimization of Semi_markov_process.jl
Glemmers Jun 7, 2022
a906b16
Unitful compatibility adjustment
Glemmers Nov 30, 2022
69ed3c8
update the log-normal
timmyfaraday Nov 30, 2022
88b75ff
Final version of SMP
Glemmers Jun 14, 2023
b9e73d7
Adding final comments and examples
Glemmers Jul 14, 2023
ae5383d
First version of more detailed numerical inrush calculation method
Glemmers Jul 24, 2023
8792e24
Addition of tests, working set_P
Jul 28, 2023
8e4d67b
Significant performance improvement of Set_U
Glemmers Jul 30, 2023
7914ebd
Improvements of distributions.jl
Glemmers Aug 1, 2023
74d3a19
Optimized Set_U, Set_A and Set_P, including passing tests
Glemmers Aug 3, 2023
f34a3ea
Added lower bound implementation to both set_A and set_U, cleaned up …
Glemmers Aug 4, 2023
274b36e
Small adjustment to distributions.jl
Glemmers Aug 7, 2023
08a2aa5
Update semi_markov_process.jl
Glemmers Aug 11, 2023
2f87978
Adjustments made to set_P
Glemmers Aug 11, 2023
a555e69
Adjustment of set_U to include upper and lower bound value limits
Glemmers Aug 11, 2023
4fb3cda
Adjustment to integration of probability function, added tests
Glemmers Aug 30, 2023
ffd87a8
update of the pkg environment
timmyfaraday Sep 14, 2023
35fdab0
rewrite of semi-markov model
timmyfaraday Sep 27, 2023
d892cd6
Adding the LVDC Battery system paper model as example to the github
Glemmers Dec 22, 2023
3087011
Create lvdc_resilience.jl
Glemmers Dec 22, 2023
b3e4393
Merge pull request #7 from timmyfaraday/semi-markov-finalization
timmyfaraday Jan 22, 2024
497c81c
final commit before merge into main
timmyfaraday Jan 22, 2024
9c700d5
Update ci.yml
timmyfaraday Jan 22, 2024
57d84f3
Update Project.toml
timmyfaraday Jan 22, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
fail-fast: false
matrix:
version:
- '1.5'
- '1.8'
- 'nightly'
os:
- ubuntu-latest
Expand Down
1 change: 1 addition & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
23 changes: 15 additions & 8 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -1,25 +1,32 @@
name = "MultiStateSystems"
uuid = "63dd226a-9d27-42a2-9f4c-7f7a071798e0"
authors = ["Tom Van Acker"]
version = "0.1.2"
version = "0.2.0"

[deps]
AdditionalUnits = "02d9b4f0-7821-44c6-acbd-01a1ab91b72e"
LightGraphs = "093fc24a-ae57-5d10-9952-331d41423f4d"
Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6"
Interpolations = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7"
Multigraphs = "7ebac608-6c66-46e6-9856-b5f43e107bac"
OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
QuadGK = "1fd47b50-473d-5c70-9696-f719f8f3bcdc"
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b"
Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d"

[compat]
AdditionalUnits = "0.1.4"
Graphs = "1.9.0"
Interpolations = "0.14.7"
Measurements = "2.11.0"
Multigraphs = "0.3.0"
OrdinaryDiffEq = "6.58.2"
QuadGK = "2.9.4"
SpecialFunctions = "2.3.1"
Unitful = "1.19.0"
julia = "1"
AdditionalUnits = "0.1.2"
LightGraphs = "1.3.5"
Measurements = "2.6.0"
Multigraphs = "0.2.2"
OrdinaryDiffEq = "5.59.4"
Unitful = "1.8.0"

[extras]
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
Expand Down
39 changes: 12 additions & 27 deletions docs/src/distribution.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,55 +11,40 @@ it to allow for weighted distributions as well as the
## Distributions

Each distribution has a number of constructors, both based on its full name and
abbreviation, e.g., `Weibull()` is equivalent to `𝑾()`. Furthermore,
additional constructors are included for limited input, where all remaining
parameters are set to their default, e.g., `Weibull(10.0u"hr")` is equivalent
to `Weibull(10.0u"hr",1.0,1.0)`.
abbreviation, e.g., `Weibull()` is equivalent to `𝑾()`. The abbreviation
constructor is the first letter of the distribution in the `\bi` font.
Furthermore, additional constructors are included for limited input, where all
remaining parameters are set to their default, e.g., `Weibull(10.0u"hr")` is
equivalent to `Weibull(10.0u"hr",1.0,1.0)`.

All input parameters are either of the type `Number` or its subtype `Real`:
All input parameters are either of the type `Number`, its subtype `Real` or a
`Function`:
```
Number
|- Unitful.Quantity, e.g., 10.0u"hr"
|- Real
|- AbstractFloat, e.g., 10.0
|- Integer, e.g., 10
Function
```

All distributions may be scaled using a weight parameter `ω`, where
`0.0 < ω ≤ 1.0`.

### Dirac Distribution

```@docs
Dirac
```

## Uniform Distribution

```@docs
Uniform
```
`0.0 < ω::Real ≤ 1.0` or `0.0 < ω(t)::Fuction ≤ 1.0`.

## Exponential Distribution

```@docs
Exponential
MultiStateSystems.Exponential
```

## Weibull Distribution

```@docs
Weibull
```

## Raised Cosine Distribution

```@docs
Cosine
MultiStateSystems.Weibull
```

## LogNormal Distribution

```@docs
LogNormal
MultiStateSystems.LogNormal
```
27 changes: 21 additions & 6 deletions docs/src/processes.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,14 @@

A number of stochastic processes are available to determine the state
probabilities of an `std`:

* Steady state process `SteadyStateProcess <: AbstractMarkovProcess`
* Markov chain `:markov_process`
* Markov process `:markov_process`
* Semi-Markov process `:semimarkov_process`
* Van Acker process `:vanacker_process`
```
AbstractStochasticProcess
|- AbstractMarkovProcess
|- SteadyStateProcess
|- MarkovProcess
|- AbstractSemiMarkovProcess
|- SemiMarkovProcess
```

Solving a stochastic process may be accomplished through:
```@docs
Expand Down Expand Up @@ -60,6 +62,19 @@ probabilities, given transition rates ρ$_{ij}$(t) and initial values δ$_{i}$:
dp_i(t)/dt = - ∑_j ρ_{ij}(t)p_i(t) + ∑_j ρ_{ji}(t)p_j(t), ∀ i ∈ 𝓢.
```

## Semi-Markov Process

| Spaces | | Properties | |
| :---------- | :-------------- | :---------- | :---------- |
| State-space | discrete | Renewal | ✅ |
| Time-space | continuous | Markov | ❎ |

A semi-Markov process is described by a random variable $X_t$, where $t$ denotes
the calendar time. The possible values of $X_t$ are represented by the discrete
state-space 𝓢 of the state transition diagram `std`.

A semi-Markov process...

## Van Acker Process

* `T. Van Acker, and D. Van Hertem (2018). Stochastic Process for the
Expand Down
Loading
Loading