  In Part I of this report, we introduced a Byzantine fault-tolerant
distributed optimization problem whose goal is to optimize a sum of convex
(cost) functions with real-valued scalar input/ouput. In this second part, we
introduce a condition-based variant of the original problem over arbitrary
directed graphs. Specifically, for a given collection of $k$ input functions
$h_1(x), \ldots, h_k(x)$, we consider the scenario when the local cost function
stored at agent $j$, denoted by $g_j(x)$, is formed as a convex combination of
the $k$ input functions $h_1(x), \ldots, h_k(x)$. The goal of this
condition-based problem is to generate an output that is an optimum of
$\frac{1}{k}\sum_{i=1}^k h_i(x)$. Depending on the availability of side
information at each agent, two slightly different variants are considered. We
show that for a given graph, the problem can indeed be solved despite the
presence of faulty agents. In particular, even in the absence of side
information at each agent, when adequate redundancy is available in the optima
of input functions, a distributed algorithm is proposed in which each agent
carries minimal state across iterations.

Distributed, Parallel, and Cluster Computing