add first example of polyfit
This commit is contained in:
parent
97c036a8d0
commit
52b5fdeb98
2 changed files with 1310 additions and 12 deletions
1297
scheduling/images/polyfit.svg
Normal file
1297
scheduling/images/polyfit.svg
Normal file
File diff suppressed because it is too large
Load diff
|
After Width: | Height: | Size: 35 KiB |
|
|
@ -8,29 +8,30 @@
|
||||||
|
|
||||||
|
|
||||||
The principle of #acr("EBS") is to use a function to determine which task is allowed to communicate at anypoint in time.
|
The principle of #acr("EBS") is to use a function to determine which task is allowed to communicate at anypoint in time.
|
||||||
This principle provide a mathematically proovable way for each task to determine when to communicate.
|
This principle provide a mathematically proovable way for each task to determine when to communicate without collision.
|
||||||
|
|
||||||
*Problem Statement:*
|
*Problem Statement:*
|
||||||
#grid(
|
#grid(
|
||||||
columns: (1fr,15fr,1fr),
|
columns: (1fr,15fr,1fr),
|
||||||
[],[
|
[],[
|
||||||
Given $n$ tasks $t_i, i in [0,n-1]$,
|
Given $n$ tasks $t_i, i in [0,n-1]$,
|
||||||
and an array of $m$ time periods $A = [x_0, dots.h.c, x_(m-1)]$
|
and a schedule array of $m$ time periods $A = [x_0, dots.h.c, x_(m-1)]$
|
||||||
where each element $x_i in [t_0,dots.h.c, t_(n-1)]$ is the task allowed to communicate at time $tau_i$,
|
where each element $x_i in [t_0,dots.h.c, t_(n-1)]$ is the task allowed to communicate at time $tau_i$,
|
||||||
provide a set of $n$ scheduling functions $S=(s_0,dots.h.c,s_(n-1))$ such that,
|
provide a scheduling functions $s$ such that,
|
||||||
for each time period $tau_i$, only $s_i(tau_i)$ associated with the task $t_i$ defined at by $A[i]$
|
for each time period $tau_i$, $s(tau_i) = A[tau_i]$.
|
||||||
validates a pre-defined _enable_ condition.
|
|
||||||
],
|
],
|
||||||
[]
|
[]
|
||||||
)
|
)
|
||||||
|
|
||||||
The _enable_ condition is any condition defined on the value of a scheduling function evaluated at a regular time.
|
= Polynomials
|
||||||
For example, a simple _enable_ condition can be the positivity of the value.
|
|
||||||
In this case, the definition of the scheduling functions set is
|
|
||||||
|
|
||||||
|
Contrary to popular beliefs, polynomials are not boring.
|
||||||
|
Let us consider a problem with four tasks $(t_0,t_1,t_2,t_3)$ and a schedule array of 20 time period
|
||||||
$
|
$
|
||||||
S = cases(
|
A = [0,1,2,3,0,0,1,2,0,1,2,3,0,3,0,2,3,2,0,1]
|
||||||
&s_i(tau_i) > 0 "if" A[tau_i] = t_i,
|
$
|
||||||
&s_(j eq.not i) < 0 "else",
|
|
||||||
|
#figure(
|
||||||
|
image("images/polyfit.svg", width:100%),
|
||||||
|
caption: "Scheduling function defined as a polynomial fit of the scheduling array."
|
||||||
)
|
)
|
||||||
$
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue