CtcBox: \(\mathcal{C}_{box}\)
The \(\mathcal{C}_{box}\) is contracting IntervalVector around a support box of \(\mathbb{R}^n\). This contractor is based on the inverse of a canonical injection between the provided box and \(\mathbb{R}^n\).
Definition
Important
\[\iota^{-1}_\mathbf{b} : \mathbb{R}^n \hookrightarrow \mathbf{b} : x \mapsto x \longrightarrow \mathcal{C}_{box}\big([\mathbf{b}]\big)\]
c = CtcBox(b)
c.contract(x)
CtcBox c(b);
c.contract(x);
Optimality
This contractor is optimal as it is based on intersection between boxes which is optimal and does not add any pessimism.
Example
Let consider a box \(\mathbf{b} = ((1, 2), (3, 4))\) around which we want to contract boxes.
b = IntervalVector([[1, 2], [3, 4]])
ctc_box = CtcBox(b)
x1 = IntervalVector([[0, 3], [2, 5]])
x2 = IntervalVector([[1.5, 3.5], [3.5, 6.5]])
ctc_box.contract(x1)
ctc_box.contract(x2)
IntervalVector b{{1, 2}, {3, 4}};
CtcBox ctc_box(b);
IntervalVector x1{{0, 3}, {2, 5}};
IntervalVector x2{{1.5, 3.5}, {3.5, 6.5}};
ctc_box.contract(x1);
ctc_box.contract(x2);