Definizione dei dati
- $M$: insieme delle macchine
- $P$: insieme dei processi
- $MP \subseteq M \times P$: coppie ammissibili di assegnamento processo-macchina
- $R$: insieme delle risorse
- $TR$: insieme delle risorse transitorie
- $x^0_p \in M$: assegnamento iniziale dei processi
Definizione dei dati
- $NS$: insieme dei servizi
- $S_s \subset P$: processi che appartengono al servizio $s$
- $Nei_m$: vicinato della macchina $m$
- $N_i \subset M$: sottoinsieme di macchine nel vicinato $i$
- $Loc_m$: locations della macchina $m$
- $L_i$: sottoinsieme di macchine nella location $i$
Definizione dei dati
- spread$_s$: coefficiente di spread per il servizio $s$
- $Q_{pr}$: consumo di risorsa $r$ per processo $p$
- $C_{mr}$: capacita` risorsa $r$ di macchina $m$
- $SC_{mr}$: livello di capacita` di sicurezza per risorse $r$ della macchina $m$
- $RC_{mr}=C_{mr} - \sum_{p \in P: x^0_p = m} Q_{pr}$: capacita` transitoria per risorsa $r$ della macchina $m$
Pesi dei diversi obiettivi
- $Lw$: peso per il costo di carico (load)
- $Bw$: peso per il costo di bilanciamento
- $Pw$: peso per il costo di spostamento di un processo
- $Sw$: peso per il costo di spostamento dei servizi
- $Mw$: peso per il costo di spostamento di un processo macchina-macchina
- $PMC_p$: costo di spostamento del processo $p$
- $MMC_{m1,m2}$: costo per spostare un processo da $m^1$ a $m^2$
Definizione dei dati
- $SP_s \subseteq S$: sottoinsieme di processi del servizio $s$
- $SM_s \subseteq S$: sottoinsieme di macchine del servizio $s$
- $SN_s \subseteq S$: sottoinsieme di vicinati del servizio $s$
Variabili
- $x_{mp} \in \{0,1\}$: uguale a 1 se assegno il processo $p$ alla macchina $m$
- $y_{ls} \in \{0,1\}$: uguale a 1 se il servizio $s$ (almeno un processo in $s$) e` nel luogo $l$
- $0 \leq \alpha_{mr} \leq C_{mr} - SC_{mr}$: eccesso da pagare per la risorsa $r$ sulla macchina $m$
- $\beta_{bm} \geq 0$: costo di bilanciamento $b$ per la macchina $m$
- $0 \leq \gamma \leq \max_{s \in NS} {|S_s|}$: costo per lo spostamento dei servizi
Funzione obiettivo
$$\begin{align}
\min \quad & Sw \gamma + \sum_{r \in R} Lw_r \sum_{m \in M} \alpha_{mr} \\
&\sum_{b \in NB} Bw_b \sum_{m \in M} \beta_{bm} + \\
&\sum_{p \in P: (x^0_p,p) \in MP} Pw \times PMC_p (1 - x_{x^0_p,p}) + \\
& Mw \sum_{p \in P, m \in M: (m,p) \in MP} MMC_{x^0_p m} x_{mp}
\end{align}$$
Vincoli di Assegnamento
- Ogni processo deve essere assegnato ad una macchina:
$$\sum_{(m,p) \in MP} x_{mp} = 1, \quad \forall p \in P$$
Conflict constraints
- Due processi dello stesso servizio non possono stare sulla stessa macchina:
$$\sum_{p \in S_s: (m,p) \in MP} x_{mp} \leq 1 \quad \forall m \in M, s \in NS: |S_s| > 1 $$
Spread constraint
- Vincoli di "spread":
$$\sum_{l \in NL} y_{ls} \geq \mbox{spread}_s \quad \forall s \in NS$$
Attivazione variabile $y$
- Vincoli:
$$\sum_{m \in L_l, p \in S_s: (m,p) \in MP} x_{mp} \geq y_{ls} \quad \forall l \in NL, \forall s \in NS: \mbox{spread}_s > 1 $$
Load Costs
- Vincoli di costo di carico e "link" con le variabili di costo:
$$\sum_{(m,p) \in MP} Q_{pr} x_{mp} \leq \alpha_{mr} + SC_{mr} \quad \forall m \in M, \forall r \in R$$
Transient Capacity
- Capacita` Temporanea
$$\sum_{(m,p) \in MP: x^0_p \neq m} Q_{pr} x_{mp} \leq RC_{mr} \quad \forall m \in M, \forall r \in TR$$
Costi per lo spostamento dei servizi
-
$$\gamma \geq |S_s| - \sum_{p \in S_s, m \in M: x^0_p =m, (m,p) \in MP} x_{mp} $$
Bilanciamento tra risorse
- $NB$: insieme di rapporti per costo di bilanciamento delle risorse (indice di una tripla $(r_1,r_2, \mbox{target}$))
- $B^1_i \subseteq R$: primo elemento della tripla $i$
- $B^2_i \subseteq R$: secondo elemento della tripla $i$
- $B^3_i$: target della tripla $i$
Balance Cost constraints
- Vincoli per i costi di bilanciamento dei carichi:
$$
\begin{align}
\beta_{bm} \geq &B^3_b(C_{m,B^1_b} - \sum_{p \in P: (m,p) \in MP} Q_{p,B^1_b}x_{mp}) & \\
&- C_{m,B^2_b} + \sum_{p \in P: (m,p) \in MP}Q_{p,B^2_b}x_{mp}& \\
\end{align}$$
Attivazione variabile $z$
- $z_{ns} \in \{0,1\}$: uguale a 1 se il servizio $s$ e` nel vicinato $n$
- Vincoli:
$$\sum_{m \in N_n, p \in S_s: (m,p) \in MP} x_{mp} \geq z_{ns} \quad \forall n \in NN, s \in Ind $$
Dependency constraints
- $Dep_s$: sottoinsieme di servizi da cui dipende $s$
- $Ind \subseteq S$: insieme di servizi che hanno un vincolo di dipendenza
- Vincoli:
$$
\begin{align}
& \sum_{m \in N_n, p \in S_s: (m,p) \in MP} x_{mp} \leq |S_s|z_{n,s^2} \\
& \quad \forall n \in NN, s \in NS, s^2 \in Dep_s: |Dep_s| \geq 1
\end{align}$$