Skip to content
Josh Fogg edited this page Aug 1, 2024 · 3 revisions

Welcome to the wiki for RobustOCS, a Python module for providing a robust solution to optimal contribution selection (OCS) problems.

Suppose we have a breeding cohort whose relationships are modelled some known matrix $\Sigma$, and whose expected breeding values have mean $\bar{\boldsymbol\mu}$ and variance $\Omega$. While we would normally work with an OCS problem of the form

$$ \min_{\mathbf{w}\in W} \left(\boldsymbol{\mu}^{T}\mathbf{w} - \frac{\lambda}{2} \mathbf{w}^{T}\Sigma\mathbf{w} \right)\quad \text{ subject to }\quad \sum_{i\in\mathcal{S}} w_i = \frac{1}{2},~ \sum_{i\in\mathcal{D}} w_i = \frac{1}{2},~ $$

since there's uncertainty in the value of $\boldsymbol{\mu}$ the solution reached will not remain accurate if the problem variables are even slightly perturbed. Thus it's necessary to solve the robust version of the problem, using a new parameter $\kappa$ to control the tolerance for risk.

RobustOCS can do this using HiGHS (free software) or Gurobi (commercial software), utilising either conic or sequential quadratic programming. More information is given on using the module in this wiki.