https://github.com/martinrepo/smartgrid
Implementation of some smart grid sheduling algorithms, with a visualization page.
https://github.com/martinrepo/smartgrid
algorithm-implementations smart-grid
Last synced: 7 months ago
JSON representation
Implementation of some smart grid sheduling algorithms, with a visualization page.
- Host: GitHub
- URL: https://github.com/martinrepo/smartgrid
- Owner: MartinRepo
- Created: 2024-04-03T07:10:07.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-05-08T21:41:54.000Z (over 1 year ago)
- Last Synced: 2024-05-09T10:59:39.148Z (over 1 year ago)
- Topics: algorithm-implementations, smart-grid
- Language: C++
- Homepage: https://demo-smartgrid.tech
- Size: 877 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Scheduling for Smart Grid
>Authored by: @[Martingale](https://github.com/MartinRepo)>Click [here](https://demo-smartgrid.tech) to visit demo site. Just try it. :D
## Content
- [Algorithms Implementation](#algorithms-implementation)
- [Feasible Graph](#feasible-graph)
- [Fixed Parameter](#fixed-parameter)
- [Greedy](#greedy)
- [Genetic](#genetic)
- [Dataset Preview](#dataset-preview)
- [Simulation](#simulation)
- [Performance Comparison](#performance-comparison)
- [Total cost](#total-cost)
- [Peak cost](#peak-cost)
- [Running time](#running-time)
- [References](#references)## Algorithms Implementation
Core strategies for following algorithms
### Feasible Graph

### Fixed Parameter
Pseudocode as following
```
Input: a set of job J
Output: an optimal configuration of J
{bi} i=1...τ/2+1 ← the boundaries {0, 2, 4, 6, ..., τ}
{Di} i=1...τ/2 ← the windows where Di is bounded by bi (inclusively) and bi+1 (exclusively)
{Ci} i=1...τ/2 ← the collection of job sets where Ci is the set of jobs in Di
Tleft ← a configuration that labels all jobs j ∈ J to be not yet executed for i from 1 to τ/2 do
Tright ← ListConfigurations(Di, Ci)
Tleft ← ConcatenateTables(Tleft, Tright)
Tleft ← FilterTable(Tleft)
return any configuration in Tleft
```
### Greedy
Job is assigned to the machine with the smallest number of jobs currently assigned.
### Genetic
Regard a solution as an individual. Then through constant crossover mutations
(crossover: crossing two schedules to generate a new schedule.Mutation: randomly changing the position or time of a task within a feasible interval.).
It uses the fitness function (calculating peak cost) to decide which scheduling scheme is kept and which is filtered out.
## Dataset Preview
There are 11 jobs, 6 windows, 7 boundaries.Their width(duration) and height(power cost) is adjusted
## Simulation
## Performance Comparison
Load function: Sum of jobs' height in per unit time t. 𝐿(𝑡) = ∑𝐽:𝑡 𝐻(𝑗)
### Total cost
Total cost function: Total cost of the entire scheduling solution S. 𝐶𝑜𝑠𝑡(𝑆) = ∑ 𝐿(𝑡)^𝛼
### Peak cost
Peak cost function: 𝐶𝑜𝑠𝑡(𝑆) = max(𝐿(𝑡))^𝛼
### Running time
Every algorithm's running time.## References