{ "cells": [ { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "The optimal value is 9.79\n", "The values for variable x are: [[1.5 ]\n", " [4.28571429]\n", " [4. ]]\n" ] } ], "source": [ "import cvxpy as cp\n", "import numpy as np\n", "# inputs\n", "A = np.array([[10, 0, 0], \n", " [0, 7, 0], \n", " [0, 0, 5]])\n", "\n", "c = np.ones((3,1))\n", "b = np.array([15, 30, 20]).reshape((3,1))\n", "# declaring variables\n", "x = cp.Variable((3,1))\n", "\n", "# defining objective\n", "objective = cp.Minimize(cp.sum(x))\n", "\n", "# defining constraints\n", "constraints = [A@x==b,\n", " x>=0]\n", "\n", "myprob = cp.Problem(objective, constraints)\n", "myprob.solve()\n", "# printing outputs\n", "print(\"\\nThe optimal value is\", round(myprob.value, 2))\n", "print(\"The values for variable x are:\", myprob.variables()[0].value)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[15],\n", " [30],\n", " [20]])" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def calculate_reduced_costs(c, B):\n", " #Get inverse of basis matrix\n", " B_inv = np.linalg.inv(B)\n", " #Get reduced costs for simplex method step\n", " w = B_inv.dot(c)\n", " #Return index of minimum value\n", " return np.argmin(w)" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "The optimal value is 11.0\n", "The values for variable x are: [[11.]\n", " [ 0.]\n", " [ 0.]]\n" ] } ], "source": [ "#Knapsack problem\n", "a= cp.Variable((3,1), integer=True)\n", "w = np.array([7, 11, 16]).reshape((3,1))\n", "\n", "knapsack_objective = cp.Maximize(cp.sum(a))\n", "# defining constraints\n", "knap_sack_constraints = [cp.sum(cp.multiply(w,a))<=80,\n", " a>=0]\n", "knapsack_prob = cp.Problem(knapsack_objective, knap_sack_constraints)\n", "knapsack_prob.solve()\n", "\n", "# printing outputs\n", "print(\"\\nThe optimal value is\", round(knapsack_prob.value, 2))\n", "print(\"The values for variable x are:\", knapsack_prob.variables()[0].value)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "For I,j,k in range(0, int(W/min(w)):\n", "If each I j and k times their weight <= b(each element associated with which entry I j and k weights are multiplied by):\n", "Append to an empty list [i, j, k]" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "ename": "TypeError", "evalue": "cannot unpack non-iterable int object", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[0mW\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m80\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[1;32mfor\u001b[0m \u001b[0mi\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mj\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mk\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mW\u001b[0m\u001b[1;33m/\u001b[0m\u001b[0mmin\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mw\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mj\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mk\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mTypeError\u001b[0m: cannot unpack non-iterable int object" ] } ], "source": [ "W=80\n", "for i,j,k in range(0, int(W/min(w))):\n", " print(i,j,k)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.9" } }, "nbformat": 4, "nbformat_minor": 2 }