#import "@preview/acrostiche:0.3.2": * #init-acronyms(( "EBS": ("Equation-Based Scheduling",), )) #align(center)[#text(size:2em)[Equation-Based Scheduling]] 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 without collision. *Problem Statement:* #grid( columns: (1fr,15fr,1fr), [],[ Given $n$ tasks $t_i, i in [0,n-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$, provide a scheduling functions $s$ such that, for each time period $tau_i$, $s(tau_i) = A[tau_i]$. ], [] ) = Polynomials 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 $ A = [0,1,2,3,0,0,1,2,0,1,2,3,0,3,0,2,3,2,0,1] $ #figure( image("images/polyfit.svg", width:100%), caption: "Scheduling function defined as a polynomial fit of the scheduling array." )