{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "[Table of Contents](table_of_contents.ipynb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Topic 29. Kuhn Tucker Conditions\n", "Author: Jenna Newcomb; jennewcomb178@gmail.com\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction\n", "The Kuhn Tucker Conditions, commonly known as the KKT conditions, are a set of requirements in nonlinear programming necessary for a point to be optimal. This approach allows inequality constraints by generalizing the method of Lagrange Multipliers. It finds the optimum for a function with both equality and inequality constraints by using a single cost function that encompasses the cost as well as the equality and inequality constraints. The equality constraints are multiplied by a Lagrange multiplier vector $\\lambda$. The inequality constraints are multiplied by a Lagrange multiplier vector $\\mu$. As seen previously, for equality constraints we differentiate the objective function with respect to $\\lambda$ as well as the x variables to solve for all x and $\\lambda$ variables. Thus, the solution is restricted to that which meets the necessities of the equality constraints. However, inequality constraints are more difficult since we have to determine which ones are \"active.\" For example, when the overall optimum solution already is within the bounds set by that inequality constraint, we term that constrain \"non-active\" and its Lagrange multiplier, $\\mu_i$, is set to zero. However, if the inequality constraint is active, or in other words, the solution lies at the constraint boundary, then that constraint is set so $g(x^*) = 0$ and the constraint is then solved in a process like the equality constraints. The examples below illustrate this process. In addition, the $\\mu$ multipliers can only be less than or equal to zero. The reasoning behind this is explained below." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Explanation of the theory\n", "\n", "Suppose you have the problem:\n", "\n", "