tf.contrib.constrained_optimization.find_best_candidate_distribution

Finds a distribution minimizing an objective subject to constraints.

This function deals with the constrained problem:

minimize f(w) s.t. g_i(w) <= 0 for all i in {0,1,...,m-1}

Here, f(w) is the "objective function", and g_i(w) is the ith (of m) "constraint function". Given a set of n "candidate solutions" {w_0,w1,...,w{n-1} }, this function finds a distribution over these n candidates that, in expectation, minimizes the objective while violating the constraints by the smallest possible amount (with the amount being found via bisection search).

The objective_vector parameter should be a numpy array with shape (n,), for which objective_vector[i] = f(w_i). Likewise, constraints_matrix should be a numpy array with shape (m,n), for which constraints_matrix[i,j] = g_i(w_j).

This function will return a distribution for which at most m+1 probabilities, and often fewer, are nonzero.

For more specifics, please refer to:

Cotter, Jiang and Sridharan. "Two-Player Games for Efficient Non-Convex Constrained Optimization". https://arxiv.org/abs/1804.06500

This function implements the approach described in Lemma 3.

Args
objective_vector numpy array of shape (n,), where n is the number of "candidate solutions". Contains the objective function values.
constraints_matrix numpy array of shape (m,n), where m is the number of constraints and n is the number of "candidate solutions". Contains the constraint violation magnitudes.
epsilon nonnegative float, the threshold at which to terminate the binary search while searching for the minimal expected constraint violation magnitude.
Returns
The optimal distribution, as a numpy array of shape (n,).
Raises
ValueError If objective_vector and constraints_matrix have inconsistent shapes, or if epsilon is negative.
ImportError If we're unable to import scipy.optimize.

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/contrib/constrained_optimization/find_best_candidate_distribution