# On-Board Decentralized Observation Planning for LEO Satellite Constellations
## 3 Improved CBBA
### Bundle Construction
\(\overline{n}\) is introduced to record the position of the first released task in \(\mathbf{b}_{i}\). \[k_{ij}^{\text{DMG}}=\text{argmin}_{k}\Bigl{(}st_{ijk}^{\text{oam}}\Bigr{)},\ \ \forall k\in\mathcal{K}_{ij}\text{ s.t. }f_{ijk}=1 \tag{12}\]0

\[k_{ij}^{\text{DMG}}=\text{argmin}_{k}\Bigl{(}st_{ijk}^{\text{oam}}\Bigr{)},\ \ \forall k\in\mathcal{K}_{ij}\text{ s.t. }f_{ijk}=1 \tag{12}\]1

\[k_{ij}^{\text{DMG}}=\text{argmin}_{k}\Bigl{(}st_{ijk}^{\text{oam}}\Bigr{)},\ \ \forall k\in\mathcal{K}_{ij}\text{ s.t. }f_{ijk}=1 \tag{12}\]2

\[k_{ij}^{\text{DMG}}=\text{argmin}_{k}\Bigl{(}st_{ijk}^{\text{oam}}\Bigr{)},\ \ \forall k\in\mathcal{K}_{ij}\text{ s.t. }f_{ijk}=1 \tag{12}\]3

(4) Recover the masks that have been deleted due to conflict with the released tasks. The constraint check in step (4) of bundle construction results in the deletion of the masks which conflict with the tasks already added. Since the tasks mentioned in step (3) have been released from the bundle, the masks which conflict with the released tasks should be recovered. The pseudo-code of consensus check is described in Algorithm 3. \begin{table}
\begin{tabular}{c c c} \hline \(sat_{i^{\prime}}\) (**Sender**) & \(sat_{i}\) (**Receiver**) & **Action of \(sat_{i}\) (Default: Leave)** \\ \cline{3-4}
**Thinks \(z_{ij}\) Is** & \(i\) & if \(y_{ij}>y_{ij}\rightarrow\) update \\ \cline{3-4}
**\(i^{\prime}\)** & \(i^{\prime}\) & update \\ \cline{2-4}  & \(i^{\prime}\
otin\{i,\ i^{\prime}\}\) & if \(s_{i^{\prime}i^{\prime\prime}}>s_{ii^{\prime\prime}}\) or \(y_{fj}>y_{ij}\rightarrow\) update \\ \cline{2-4}  & none & update \\ \hline \multirow{4}{*}{\(i\)} & \(i\) & leave \\ \cline{2-4}  & \(i^{\prime}\) & reset \\ \cline{2-4}  & \(i^{\prime}\
otin\{i,\ i^{\prime}\}\) & if \(s_{i^{\prime}i^{\prime\prime}}>s_{ii^{\prime\prime}}\rightarrow\) reset \\ \cline{2-4}  & none & leave \\ \hline \multirow{4}{*}{\(i^{\prime}\
otin\{i,\ i^{\prime}\}\)} & \(i\) & if \(s_{i^{\prime}i^{\prime\prime}}>s_{ii^{\prime\prime}}\) and \(y_{fj}>y_{ij}\rightarrow\) update \\ \cline{2-4}  & \(i^{\prime}\) & if \(s_{i^{\prime}i^{\prime\prime}}>s_{ii^{\prime\prime}}\rightarrow\) update \\ \cline{2-4}  & \(i^{\prime}\) & else \(\rightarrow\) reset \\ \cline{2-4}  & \(i^{\prime}\) & \(s_{i^{\prime}i^{\prime\prime}}>s_{ii^{\prime\prime}}\rightarrow\) update \\ \cline{2-4}  & \(i^{\prime\prime}\
otin\{i,\ i^{\prime},\ i^{\prime}\}\) & if \(s_{i^{\prime}i^{\prime\prime}}>s_{ii^{\prime\prime}}\) and \(y_{fj}>y_{ij}\rightarrow\) update \\ \cline{2-4}  & \(i^{\prime\prime}\) & if \(s_{i^{\prime}i^{\prime\prime}}>s_{ii^{\prime\prime}}\) and \(s_{ii^{\prime\prime}}>s_{i^{\prime}i^{\prime\prime}}\rightarrow\) reset \\ \hline \multirow{4}{*}{none} & \(i\) & leave \\ \cline{2-4}  & \(i^{\prime}\) & reset \\ \cline{2-4}  & \(i^{\prime}\
otin\{i,\ i^{\prime}\}\) & if \(s_{i^{\prime}i^{\prime\prime}}>s_{ii^{\prime\prime}}\rightarrow\) update \\ \cline{2-4}  & none & leave \\ \hline \end{tabular}
\end{table} 
Table 1: Action rule for \(sat_{i}\) based on communication with \(sat_{i^{\prime}}\) regarding \(task_{j}\).