{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# [CBE40455](https://jckantor.github.io/CBE40455)\n", "\n", "\n", "## [Chapter 1.0 Getting Started Guides](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.00-Getting-Started-Guides.ipynb)\n", "\n", "### [1.1 Getting Started with CVXPY](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.01-Getting-Started-with-CVXPY.ipynb)\n", "- [Installation](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.01-Getting-Started-with-CVXPY.ipynb#Installation)\n", "- [Solving linear equations](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.01-Getting-Started-with-CVXPY.ipynb#Solving-linear-equations)\n", " - [Using Matrix Parameters and Vector Variables](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.01-Getting-Started-with-CVXPY.ipynb#Using-Matrix-Parameters-and-Vector-Variables)\n", "- [Regression: Evidence of Climate Change](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.01-Getting-Started-with-CVXPY.ipynb#Regression:-Evidence-of-Climate-Change)\n", "- [Integer Program](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.01-Getting-Started-with-CVXPY.ipynb#Integer-Program)\n", "* Markdown Links\n", " - [Jupyter notebook](http://jupyter.org/notebook.html)\n", " - [CVXPY](http://www.cvxpy.org/en/latest/)\n", " - [here (.pdf)](https://media.readthedocs.org/pdf/cvxpy/latest/cvxpy.pdf)\n", " - [here](http://www.cvxpy.org/en/latest/install/)\n", " - [Climatology office of the Minnesota Department of Natural Resources](https://www.dnr.state.mn.us/ice_out/index.html)\n", "\n", "### [1.2 Getting Started with Gurobi](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.02-Getting-Started-with-Gurobi.ipynb)\n", "- [Simple Two-Variable LP](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.02-Getting-Started-with-Gurobi.ipynb#Simple-Two-Variable-LP)\n", "- [Assignment Problem](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.02-Getting-Started-with-Gurobi.ipynb#Assignment-Problem)\n", " - [Problem Data](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.02-Getting-Started-with-Gurobi.ipynb#Problem-Data)\n", " - [Model and Optimization](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.02-Getting-Started-with-Gurobi.ipynb#Model-and-Optimization)\n", " - [Solution](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.02-Getting-Started-with-Gurobi.ipynb#Solution)\n", "* Markdown Links\n", " - [Gurobi](http://www.gurobi.com)\n", "\n", "### [1.3 Getting Started with GNU MathProg in Jupyter Notebooks](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.03-Getting-Started-with-GNU-MathProg.ipynb)\n", "- [GNU MathProg is a Mathematical Programming Language](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.03-Getting-Started-with-GNU-MathProg.ipynb#GNU-MathProg-is-a-Mathematical-Programming-Language)\n", "- [Installing GLPK/MathProg to Run from a Jupyter Notebook](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.03-Getting-Started-with-GNU-MathProg.ipynb#Installing-GLPK/MathProg-to-Run-from-a-Jupyter-Notebook)\n", " - [In the Cloud](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.03-Getting-Started-with-GNU-MathProg.ipynb#In-the-Cloud)\n", " - [Google Colaboratory](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.03-Getting-Started-with-GNU-MathProg.ipynb#Google-Colaboratory)\n", " - [On your Laptop](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.03-Getting-Started-with-GNU-MathProg.ipynb#On-your-Laptop)\n", " - [Testing](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.03-Getting-Started-with-GNU-MathProg.ipynb#Testing)\n", "- [Running GLPK/MathProg from Code Cells](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.03-Getting-Started-with-GNU-MathProg.ipynb#Running-GLPK/MathProg-from-Code-Cells)\n", "- [Specifying Input Files for MathProg](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.03-Getting-Started-with-GNU-MathProg.ipynb#Specifying-Input-Files-for-MathProg)\n", "- [Redirecting MathProg Output](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.03-Getting-Started-with-GNU-MathProg.ipynb#Redirecting-MathProg-Output)\n", "- [Working with MathProg Tables](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.03-Getting-Started-with-GNU-MathProg.ipynb#Working-with-MathProg-Tables)\n", " - [Reading and Writing Data from .csv Files](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.03-Getting-Started-with-GNU-MathProg.ipynb#Reading-and-Writing-Data-from-.csv-Files)\n", " - [MathProg implementation of Geometric Brownian Motion](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.03-Getting-Started-with-GNU-MathProg.ipynb#MathProg-implementation-of-Geometric-Brownian-Motion)\n", "* Markdown Links\n", " - [Jupyter notebook](http://jupyter.org/)\n", " - [GAMS](http://www.gams.com/)\n", " - [AIMMS](http://business.aimms.com/)\n", " - [AMPL](http://www.ampl.com/)\n", " - [LINDO/LINGO](http://www.lindo.com/)\n", " - [MPL](http://www.maximalsoftware.com/)\n", " - [XPRESS-MOSEL](http://www.fico.com/en/products/fico-xpress-optimization-suite/)\n", " - [GNU MathProg](http://en.wikibooks.org/wiki/GLPK/GMPL_(MathProg)\n", " - [AMPL book](http://www.ampl.com/BOOK/download.html)\n", " - [GNU GLPK project](http://www.gnu.org/software/glpk/)\n", " - [lpsolve](http://lpsolve.sourceforge.net/5.5/MathProg.htm)\n", " - [CBE40455](https://github.com/jckantor/CBE40455)\n", " - [mybinder.org](http://mybinder.org)\n", " - [mybinder.org](http://mybinder.org)\n", " - [Anaconda](https://www.continuum.io/downloads)\n", " - [Enthought Canopy](https://store.enthought.com/downloads/#default)\n", " - [Windows for GLPK web site](http://winglpk.sourceforge.net/)\n", " - [Homebrew package manager](http://brew.sh/)\n", " - ['magic' commands](http://nbviewer.ipython.org/github/ipython/ipython/blob/master/examples/notebooks/Cell%20Magics.ipynb)\n", " - [`glpsol -m`](http://en.wikibooks.org/wiki/GLPK/Using_GLPSOL)\n", " - [http://www.neos-guide.org/content/diet-problem](http://www.neos-guide.org/content/diet-problem)\n", "\n", "### [1.4 Getting Started with Pandas](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.04-Getting-Started-with-Pandas.ipynb)\n", "- [Example: Relationship between Crude Oil Futures and Petroleum Stocks](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.04-Getting-Started-with-Pandas.ipynb#Example:-Relationship-between-Crude-Oil-Futures-and-Petroleum-Stocks)\n", " - [Importing the Pandas Library](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.04-Getting-Started-with-Pandas.ipynb#Importing-the-Pandas-Library)\n", "- [Reading Inventory Data from a Spreadsheet](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.04-Getting-Started-with-Pandas.ipynb#Reading-Inventory-Data-from-a-Spreadsheet)\n", "- [Reading Futures Data with a Web API](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.04-Getting-Started-with-Pandas.ipynb#Reading-Futures-Data-with-a-Web-API)\n", "- [Term Structure of Oil Futures](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/01.04-Getting-Started-with-Pandas.ipynb#Term-Structure-of-Oil-Futures)\n", "* Markdown Figures\n", " - [Screen%20Shot%202017-09-27%20at%2011.06.18%20AM.png](attachment:Screen%20Shot%202017-09-27%20at%2011.06.18%20AM.png)\n", "* Markdown Links\n", " - [Pandas](http://pandas.pydata.org/)\n", " - [pandas-dev Cheat Sheet](https://github.com/pandas-dev/pandas/blob/master/doc/cheatsheet/Pandas_Cheat_Sheet.pdf)\n", " - [Datacamp Cheat Sheet](https://s3.amazonaws.com/assets.datacamp.com/blog_assets/PandasPythonForDataScience.pdf)\n", " - [Dataquest Cheat Sheet](https://www.dataquest.io/blog/images/cheat-sheets/pandas-cheat-sheet.pdf)\n", " - [tutorial](https://www.dataquest.io/blog/pandas-cheat-sheet/)\n", " - [EIA](https://www.eia.gov/dnav/pet/hist/LeafHandler.ashx?n=PET&s=WTESTUS1&f=W)\n", " - [crude oil futures](http://www.cmegroup.com/trading/energy/crude-oil/light-sweet-crude_contract_specifications.html)\n", " - [Quandl](https://www.quandl.com/)\n", " - [Python code](https://www.quandl.com/data/SCF/CME_CL1_FN-NYMEX-WTI-Crude-Oil-Futures-1-CL1-Front-Month-Unadjusted-Prices-Roll-on-First-of-Month-Continuous-Contract-History)\n", "\n", "\n", "## [Chapter 2.0 Simulation of Discrete Event Systems](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.00-Simulation-of-Discrete-Event-Systems.ipynb)\n", "\n", "### [2.1 Getting Started with SimPy](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.01-Getting-Started-with-SimPy.ipynb)\n", "- [Introduction to Modeling with SimPy](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.01-Getting-Started-with-SimPy.ipynb#Introduction-to-Modeling-with-SimPy)\n", " - [A Minimal SimPy Model](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.01-Getting-Started-with-SimPy.ipynb#A-Minimal-SimPy-Model)\n", " - [Adding a Process](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.01-Getting-Started-with-SimPy.ipynb#Adding-a-Process)\n", " - [Add Mutliple Instances of a Process](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.01-Getting-Started-with-SimPy.ipynb#Add-Mutliple-Instances-of-a-Process)\n", " - [Processes that Manage their own State](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.01-Getting-Started-with-SimPy.ipynb#Processes-that-Manage-their-own-State)\n", " - [Creating Simulation Objects](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.01-Getting-Started-with-SimPy.ipynb#Creating-Simulation-Objects)\n", " - [Adding a Reporter](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.01-Getting-Started-with-SimPy.ipynb#Adding-a-Reporter)\n", "- [Application Examples](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.01-Getting-Started-with-SimPy.ipynb#Application-Examples)\n", "- [Multiple Roombas](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.01-Getting-Started-with-SimPy.ipynb#Multiple-Roombas)\n", "* Markdown Links\n", " - [SimPy](http://simpy.readthedocs.org/en/latest/)\n", " - [Introduction to Modeling with SimPy]()\n", "\n", "### [2.2 Queuing Systems](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.02-Queuing-Systems.ipynb)\n", "- [Poisson Processes and Exponential Distributions](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.02-Queuing-Systems.ipynb#Poisson-Processes-and-Exponential-Distributions)\n", " - [Example: Simulate Customers Arriving at a Known Rate](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.02-Queuing-Systems.ipynb#Example:-Simulate-Customers-Arriving-at-a-Known-Rate)\n", "- [Let's Provide Some Service to the Customers](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.02-Queuing-Systems.ipynb#Let's-Provide-Some-Service-to-the-Customers)\n", "- [Little's Law](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.02-Queuing-Systems.ipynb#Little's-Law)\n", " - [Some analogies](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.02-Queuing-Systems.ipynb#Some-analogies)\n", " - [Why is this important?](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.02-Queuing-Systems.ipynb#Why-is-this-important?)\n", "- [Lognormal Distributions of Service Time](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.02-Queuing-Systems.ipynb#Lognormal-Distributions-of-Service-Time)\n", " - [Normal Distributions](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.02-Queuing-Systems.ipynb#Normal-Distributions)\n", " - [Lognormal Distribution](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.02-Queuing-Systems.ipynb#Lognormal-Distribution)\n", "- [Random Service Time](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.02-Queuing-Systems.ipynb#Random-Service-Time)\n", "- [Let's add multiple Queues](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.02-Queuing-Systems.ipynb#Let's-add-multiple-Queues)\n", "* Markdown Links\n", " - [Poisson distribution](https://en.wikipedia.org/wiki/Poisson_distribution)\n", " - [Little's law](http://web.mit.edu/sgraves/www/papers/Little's%20Law-Published.pdf)\n", "\n", "### [2.3 Emergency Room Simulation](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.03-Emergency_Room_Simulation.ipynb)\n", "- [Initializations](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.03-Emergency_Room_Simulation.ipynb#Initializations)\n", "- [Poisson processes](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.03-Emergency_Room_Simulation.ipynb#Poisson-processes)\n", "- [Modeling patient arrivals as a Poisson process](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.03-Emergency_Room_Simulation.ipynb#Modeling-patient-arrivals-as-a-Poisson-process)\n", " - [Version 1. Basic simulation](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.03-Emergency_Room_Simulation.ipynb#Version-1.-Basic-simulation)\n", " - [Version 2. Adding an event log](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.03-Emergency_Room_Simulation.ipynb#Version-2.-Adding-an-event-log)\n", " - [Version 3. Converting the log to a Pandas DataFrame](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.03-Emergency_Room_Simulation.ipynb#Version-3.-Converting-the-log-to-a-Pandas-DataFrame)\n", " - [Version 4. Plotting the DataFrame](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.03-Emergency_Room_Simulation.ipynb#Version-4.-Plotting-the-DataFrame)\n", "- [Version 5. Modeling the emergency room queue and service providers](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.03-Emergency_Room_Simulation.ipynb#Version-5.-Modeling-the-emergency-room-queue-and-service-providers)\n", "- [Version 6. How many service providers are required?](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.03-Emergency_Room_Simulation.ipynb#Version-6.-How-many-service-providers-are-required?)\n", " - [Calculating and plotting wait times](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.03-Emergency_Room_Simulation.ipynb#Calculating-and-plotting-wait-times)\n", " - [Histogram of wait times](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.03-Emergency_Room_Simulation.ipynb#Histogram-of-wait-times)\n", "- [Exercise: Further model development](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.03-Emergency_Room_Simulation.ipynb#Exercise:-Further-model-development)\n", "* Markdown Links\n", " - [Poisson Process](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-262-discrete-stochastic-processes-spring-2011/course-notes/MIT6_262S11_chap02.pdf)\n", " - [simpy.Stores](https://simpy.readthedocs.io/en/latest/topical_guides/resources.html#stores)\n", "\n", "### [2.4 Model Development in SimPy](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.04-Discrete-Event-Simulation-of-a-Batch-Process.ipynb)\n", "- [Processing the Simulation Log](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.04-Discrete-Event-Simulation-of-a-Batch-Process.ipynb#Processing-the-Simulation-Log)\n", "- [Encapsulating a Process as a Python Class](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.04-Discrete-Event-Simulation-of-a-Batch-Process.ipynb#Encapsulating-a-Process-as-a-Python-Class)\n", "- [References](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.04-Discrete-Event-Simulation-of-a-Batch-Process.ipynb#References)\n", "* Markdown Links\n", " - [SimPy](https://bitbucket.org/simpy/simpy/)\n", " - [create generators](https://pythontips.com/2013/09/29/the-python-yield-keyword-explained/)\n", " - [Store](http://simpy.readthedocs.io/en/latest/api_reference/simpy.resources.html)\n", "\n", "### [2.5 Extracting Information from Discrete-Event Simulations](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.05-Extracting_Information_from_Discrete-Event_Simulations.ipynb)\n", "- [Installations](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.05-Extracting_Information_from_Discrete-Event_Simulations.ipynb#Installations)\n", "- [Gathering Data](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.05-Extracting_Information_from_Discrete-Event_Simulations.ipynb#Gathering-Data)\n", " - [Why do we need to gather data?](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.05-Extracting_Information_from_Discrete-Event_Simulations.ipynb#Why-do-we-need-to-gather-data?)\n", " - [What data to log?](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.05-Extracting_Information_from_Discrete-Event_Simulations.ipynb#What-data-to-log?)\n", " - [What should the historian do?](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.05-Extracting_Information_from_Discrete-Event_Simulations.ipynb#What-should-the-historian-do?)\n", "- [Implementation of an Historian Class](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.05-Extracting_Information_from_Discrete-Event_Simulations.ipynb#Implementation-of-an-Historian-Class)\n", "- [Using the Historian Class](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.05-Extracting_Information_from_Discrete-Event_Simulations.ipynb#Using-the-Historian-Class)\n", " - [Adding `write_log` statements to the simulation](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.05-Extracting_Information_from_Discrete-Event_Simulations.ipynb#Adding-`write_log`-statements-to-the-simulation)\n", " - [Accessing simulation data](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.05-Extracting_Information_from_Discrete-Event_Simulations.ipynb#Accessing-simulation-data)\n", " - [Accessing data using `data` method](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.05-Extracting_Information_from_Discrete-Event_Simulations.ipynb#Accessing-data-using-`data`-method)\n", " - [Working with the dataframe](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.05-Extracting_Information_from_Discrete-Event_Simulations.ipynb#Working-with-the-dataframe)\n", " - [Plotting results](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.05-Extracting_Information_from_Discrete-Event_Simulations.ipynb#Plotting-results)\n", " - [Using `plot` method](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.05-Extracting_Information_from_Discrete-Event_Simulations.ipynb#Using-`plot`-method)\n", " - [Plotting one variable](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.05-Extracting_Information_from_Discrete-Event_Simulations.ipynb#Plotting-one-variable)\n", " - [Distribution of waiting times for storage following reaction](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.05-Extracting_Information_from_Discrete-Event_Simulations.ipynb#Distribution-of-waiting-times-for-storage-following-reaction)\n", "\n", "### [2.6 Spankys Pizzeria](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.06-Spankys-Pizzeria.ipynb)\n", "- [Menu](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.06-Spankys-Pizzeria.ipynb#Menu)\n", "- [Model](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.06-Spankys-Pizzeria.ipynb#Model)\n", "- [Simulation of Existing Operations](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.06-Spankys-Pizzeria.ipynb#Simulation-of-Existing-Operations)\n", "- [Should Spanky's add additional ovens?](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.06-Spankys-Pizzeria.ipynb#Should-Spanky's-add-additional-ovens?)\n", "- [Should Spanky's add additional servers?](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.06-Spankys-Pizzeria.ipynb#Should-Spanky's-add-additional-servers?)\n", "\n", "### [2.7 Warehouse Fulfullment Operations](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.07-Warehouse-Fulfillment-Operations.ipynb)\n", "- [Order Fulfillment Model](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.07-Warehouse-Fulfillment-Operations.ipynb#Order-Fulfillment-Model)\n", " - [Order Processing](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.07-Warehouse-Fulfillment-Operations.ipynb#Order-Processing)\n", " - [Order Generator](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.07-Warehouse-Fulfillment-Operations.ipynb#Order-Generator)\n", " - [Event Logging](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.07-Warehouse-Fulfillment-Operations.ipynb#Event-Logging)\n", " - [Fulfillment Class](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.07-Warehouse-Fulfillment-Operations.ipynb#Fulfillment-Class)\n", " - [Simulation](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.07-Warehouse-Fulfillment-Operations.ipynb#Simulation)\n", "- [Analyzing Results](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.07-Warehouse-Fulfillment-Operations.ipynb#Analyzing-Results)\n", " - [Total Processing Time](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.07-Warehouse-Fulfillment-Operations.ipynb#Total-Processing-Time)\n", " - [Time to Assign Picker](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.07-Warehouse-Fulfillment-Operations.ipynb#Time-to-Assign-Picker)\n", " - [Time to Pick Order](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.07-Warehouse-Fulfillment-Operations.ipynb#Time-to-Pick-Order)\n", " - [Time to Assign Reviewer](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.07-Warehouse-Fulfillment-Operations.ipynb#Time-to-Assign-Reviewer)\n", " - [Time to Review Order](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.07-Warehouse-Fulfillment-Operations.ipynb#Time-to-Review-Order)\n", " - [Time to Ship](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.07-Warehouse-Fulfillment-Operations.ipynb#Time-to-Ship)\n", "* Markdown Links\n", " - [SimPy](http://simpy.readthedocs.org/en/latest/)\n", "\n", "### [2.8 Geometric Brownian Price Process](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.08-Geometric-Brownian-Price-Process.ipynb)\n", "- [Multiple Simulations](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.08-Geometric-Brownian-Price-Process.ipynb#Multiple-Simulations)\n", "\n", "### [2.9 Continuous Time Simulation in SimPy](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.09-Continuous-Time-Simulation-in-SimPy.ipynb)\n", "\n", "### [2.10 Decentralized Control in a Supply Chain](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.10-Decentralized-Control-in-a-Supply-Chain.ipynb)\n", "- [Model](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.10-Decentralized-Control-in-a-Supply-Chain.ipynb#Model)\n", " - [Inventory Model](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.10-Decentralized-Control-in-a-Supply-Chain.ipynb#Inventory-Model)\n", " - [Deviation Variables](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.10-Decentralized-Control-in-a-Supply-Chain.ipynb#Deviation-Variables)\n", " - [Inventory Model in Deviation Variables](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.10-Decentralized-Control-in-a-Supply-Chain.ipynb#Inventory-Model-in-Deviation-Variables)\n", "- [Ordering Policies](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.10-Decentralized-Control-in-a-Supply-Chain.ipynb#Ordering-Policies)\n", " - [Feed-forward Ordering based on Customer Demand](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.10-Decentralized-Control-in-a-Supply-Chain.ipynb#Feed-forward-Ordering-based-on-Customer-Demand)\n", " - [Ordering based on Feedback Control of Inventory](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.10-Decentralized-Control-in-a-Supply-Chain.ipynb#Ordering-based-on-Feedback-Control-of-Inventory)\n", " - [Ordering based on 2DOF Feedback Control of Inventory](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.10-Decentralized-Control-in-a-Supply-Chain.ipynb#Ordering-based-on-2DOF-Feedback-Control-of-Inventory)\n", " - [A 3 DOF Feed-forward plus Feedback Ordering Policy](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.10-Decentralized-Control-in-a-Supply-Chain.ipynb#A-3-DOF-Feed-forward-plus-Feedback-Ordering-Policy)\n", " - [Closed-Loop Model](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/02.10-Decentralized-Control-in-a-Supply-Chain.ipynb#Closed-Loop-Model)\n", "\n", "\n", "## [Chapter 3.0 Linear Optimization](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/03.00-Linear-Optimization.ipynb)\n", "\n", "### [3.1 Production Models with Constraints](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/03.01-Production-Models-with-Constraints.ipynb)\n", "- [Initializations](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/03.01-Production-Models-with-Constraints.ipynb#Initializations)\n", "- [Example: Production Plan for a Single Product Plant](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/03.01-Production-Models-with-Constraints.ipynb#Example:-Production-Plan-for-a-Single-Product-Plant)\n", " - [Pyomo Model](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/03.01-Production-Models-with-Constraints.ipynb#Pyomo-Model)\n", " - [Exercises](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/03.01-Production-Models-with-Constraints.ipynb#Exercises)\n", "- [Production Plan: Product Y](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/03.01-Production-Models-with-Constraints.ipynb#Production-Plan:-Product-Y)\n", " - [Exercises](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/03.01-Production-Models-with-Constraints.ipynb#Exercises)\n", "- [Production Plan: Mixed Product Strategy](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/03.01-Production-Models-with-Constraints.ipynb#Production-Plan:-Mixed-Product-Strategy)\n", "- [What are the active constraints?](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/03.01-Production-Models-with-Constraints.ipynb#What-are-the-active-constraints?)\n", "- [What is the incremental value of labor?](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/03.01-Production-Models-with-Constraints.ipynb#What-is-the-incremental-value-of-labor?)\n", "- [Theory of Constraints](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/03.01-Production-Models-with-Constraints.ipynb#Theory-of-Constraints)\n", "* Markdown Figures\n", " - [LP_ProductX](https://github.com/jckantor/CBE40455/blob/master/notebooks/figures/LP_ProductX.png?raw=true)\n", " - [LP_ProductY](https://github.com/jckantor/CBE40455/blob/master/notebooks/figures/LP_ProductY.png?raw=true)\n", " - [LP_ProductXY](https://github.com/jckantor/CBE40455/blob/master/notebooks/figures/LP_ProductXY.png?raw=true)\n", "* Markdown Links\n", " - [Pyomo](http://www.pyomo.org/)\n", " - [glpk](https://en.wikibooks.org/wiki/GLPK)\n", "\n", "### [3.2 Transportation Networks](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/03.02-Transportation-Networks.ipynb)\n", "- [Background](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/03.02-Transportation-Networks.ipynb#Background)\n", " - [Table of Transportation Costs, Customer Demand, and Available Supplies](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/03.02-Transportation-Networks.ipynb#Table-of-Transportation-Costs,-Customer-Demand,-and-Available-Supplies)\n", "- [Pyomo Model](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/03.02-Transportation-Networks.ipynb#Pyomo-Model)\n", " - [Data File](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/03.02-Transportation-Networks.ipynb#Data-File)\n", " - [Model File](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/03.02-Transportation-Networks.ipynb#Model-File)\n", "- [Solution](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/03.02-Transportation-Networks.ipynb#Solution)\n", "- [Sensitivity Analysis](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/03.02-Transportation-Networks.ipynb#Sensitivity-Analysis)\n", " - [Analysis by Source](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/03.02-Transportation-Networks.ipynb#Analysis-by-Source)\n", " - [Analysis by Customer](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/03.02-Transportation-Networks.ipynb#Analysis-by-Customer)\n", "- [Exercises](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/03.02-Transportation-Networks.ipynb#Exercises)\n", "* Markdown Figures\n", " - [TransportationNetworksMap.png](https://github.com/jckantor/CBE40455/blob/master/notebooks/figures/TransportationNetworksMap.png?raw=true)\n", " - [TransportNet](https://github.com/jckantor/CBE40455/blob/master/notebooks/figures/TransportNet.png?raw=true)\n", " - [TransportNet_soln](https://github.com/jckantor/CBE40455/blob/master/notebooks/figures/TransportNet_soln.png?raw=true)\n", " - [TransportNet_sens](https://github.com/jckantor/CBE40455/blob/master/notebooks/figures/TransportNet_sens.png?raw=true)\n", "* Markdown Links\n", " - [pdf available](http://download.aimms.com/aimms/download/manuals/AIMMS3_OM.pdf)\n", "\n", "### [3.3 Data Reconciliation](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/03.03-Data-Reconciliation.ipynb)\n", "- [Data Reconciliation and Gross Error Detection](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/03.03-Data-Reconciliation.ipynb#Data-Reconciliation-and-Gross-Error-Detection)\n", " - [Heat Exchanger with Bypass](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/03.03-Data-Reconciliation.ipynb#Heat-Exchanger-with-Bypass)\n", "- [Visualization](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/03.03-Data-Reconciliation.ipynb#Visualization)\n", "\n", "\n", "## [Chapter 4.0 Scheduling](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.00-Scheduling.ipynb)\n", "\n", "### [4.1 Critical Path Method](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.01-Critical-Path-Method.ipynb)\n", "- [Background](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.01-Critical-Path-Method.ipynb#Background)\n", "- [MathProg Model](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.01-Critical-Path-Method.ipynb#MathProg-Model)\n", "- [Example: Stadium Construction](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.01-Critical-Path-Method.ipynb#Example:-Stadium-Construction)\n", "- [Visualization](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.01-Critical-Path-Method.ipynb#Visualization)\n", "* Markdown Links\n", " - [Example 7.1.1](http://www.maximalsoftware.com/modellib/modXpressMP.html)\n", " - [Christelle Gueret, Christian Prins, Marc Sevaux, \"Applications of Optimization with Xpress-MP,\" Chapter 7, Dash Optimization, 2000](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.69.9634&rep=rep1&type=pdf)\n", "\n", "### [4.2 Machine Bottleneck](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.02-Machine-Bottleneck.ipynb)\n", "- [Example](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.02-Machine-Bottleneck.ipynb#Example)\n", "- [Modeling](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.02-Machine-Bottleneck.ipynb#Modeling)\n", " - [Data](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.02-Machine-Bottleneck.ipynb#Data)\n", " - [Decision Variables](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.02-Machine-Bottleneck.ipynb#Decision-Variables)\n", "- [Pyomo Model](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.02-Machine-Bottleneck.ipynb#Pyomo-Model)\n", "- [Visualization](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.02-Machine-Bottleneck.ipynb#Visualization)\n", "- [Multiple Machines](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.02-Machine-Bottleneck.ipynb#Multiple-Machines)\n", "\n", "### [4.3 Job Shop Scheduling](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.03-Job-Shop-Scheduling.ipynb)\n", "- [Background](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.03-Job-Shop-Scheduling.ipynb#Background)\n", "- [Job Shop Example](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.03-Job-Shop-Scheduling.ipynb#Job-Shop-Example)\n", "- [Task Decomposition](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.03-Job-Shop-Scheduling.ipynb#Task-Decomposition)\n", "- [Model Formulation](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.03-Job-Shop-Scheduling.ipynb#Model-Formulation)\n", "- [Pyomo Implementation](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.03-Job-Shop-Scheduling.ipynb#Pyomo-Implementation)\n", "- [Displaying a Solution](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.03-Job-Shop-Scheduling.ipynb#Displaying-a-Solution)\n", "- [Visualizing Results with Gantt Charts](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.03-Job-Shop-Scheduling.ipynb#Visualizing-Results-with-Gantt-Charts)\n", "- [Benchmark Problem LA19](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.03-Job-Shop-Scheduling.ipynb#Benchmark-Problem-LA19)\n", "- [Application to Scheduling of Batch Processes](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.03-Job-Shop-Scheduling.ipynb#Application-to-Scheduling-of-Batch-Processes)\n", "- [Single Product Strategies](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.03-Job-Shop-Scheduling.ipynb#Single-Product-Strategies)\n", "- [Overlapping Tasks](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.03-Job-Shop-Scheduling.ipynb#Overlapping-Tasks)\n", "- [Unit Cleanout](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.03-Job-Shop-Scheduling.ipynb#Unit-Cleanout)\n", "- [Zero Wait Policy](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.03-Job-Shop-Scheduling.ipynb#Zero-Wait-Policy)\n", "* Markdown Figures\n", " - [jobshopdiagram.jpg](attachment:jobshopdiagram.jpg)\n", " - [Screen%20Shot%202017-09-14%20at%209.09.57%20AM.png](attachment:Screen%20Shot%202017-09-14%20at%209.09.57%20AM.png)\n", "\n", "### [4.4 Jesuit Volunteer Corps](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.04-Jesuit-Volunteer-Corps.ipynb)\n", "- [Background](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.04-Jesuit-Volunteer-Corps.ipynb#Background)\n", "- [Solution](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.04-Jesuit-Volunteer-Corps.ipynb#Solution)\n", "\n", "### [4.5 Unit Commitment](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.05-Unit-Commitment.ipynb)\n", "- [Install Pyomo and Solvers for Google Colaboratory](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.05-Unit-Commitment.ipynb#Install-Pyomo-and-Solvers-for-Google-Colaboratory)\n", " - [Install and Import Pyomo](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.05-Unit-Commitment.ipynb#Install-and-Import-Pyomo)\n", " - [Install COIN-OR BONMIN and Create Solver](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.05-Unit-Commitment.ipynb#Install-COIN-OR-BONMIN-and-Create-Solver)\n", "- [Unit Specifications](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.05-Unit-Commitment.ipynb#Unit-Specifications)\n", "- [Unit Commitment Model 1. Constant Demand without Uptime or Downtime Constraints](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.05-Unit-Commitment.ipynb#Unit-Commitment-Model-1.-Constant-Demand-without-Uptime-or-Downtime-Constraints)\n", " - [Cost](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.05-Unit-Commitment.ipynb#Cost)\n", " - [Unit Commitment Strategy](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.05-Unit-Commitment.ipynb#Unit-Commitment-Strategy)\n", "- [Unit Commitment Model 2. Variable Demand without Uptime or Downtime Constraints](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.05-Unit-Commitment.ipynb#Unit-Commitment-Model-2.-Variable-Demand-without-Uptime-or-Downtime-Constraints)\n", "- [Unit Commitment Model 3. Variable Demand with Uptime and Downtime Constraints](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.05-Unit-Commitment.ipynb#Unit-Commitment-Model-3.-Variable-Demand-with-Uptime-and-Downtime-Constraints)\n", "* Markdown Links\n", " - [Unit Commitment](https://yalmip.github.io/example/unitcommitment/)\n", " - [Dispa-Set](http://www.dispaset.eu/en/latest/)\n", "\n", "### [4.6 Scheduling Multipurpose Batch Processes using State-Task Networks](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.06-Scheduling-Multipurpose-Batch-Processes-using-State-Task-Networks.ipynb)\n", "- [References](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.06-Scheduling-Multipurpose-Batch-Processes-using-State-Task-Networks.ipynb#References)\n", "- [Example (Kondili, et al., 1993)](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.06-Scheduling-Multipurpose-Batch-Processes-using-State-Task-Networks.ipynb#Example-(Kondili,-et-al.,-1993))\n", " - [Exercise](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.06-Scheduling-Multipurpose-Batch-Processes-using-State-Task-Networks.ipynb#Exercise)\n", "- [Encoding the STN data](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.06-Scheduling-Multipurpose-Batch-Processes-using-State-Task-Networks.ipynb#Encoding-the-STN-data)\n", " - [Setting a Time Grid](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.06-Scheduling-Multipurpose-Batch-Processes-using-State-Task-Networks.ipynb#Setting-a-Time-Grid)\n", "- [Creating a Pyomo Model](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.06-Scheduling-Multipurpose-Batch-Processes-using-State-Task-Networks.ipynb#Creating-a-Pyomo-Model)\n", " - [Characterization of Tasks](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.06-Scheduling-Multipurpose-Batch-Processes-using-State-Task-Networks.ipynb#Characterization-of-Tasks)\n", " - [Characterization of States](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.06-Scheduling-Multipurpose-Batch-Processes-using-State-Task-Networks.ipynb#Characterization-of-States)\n", " - [Characterization of Units](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.06-Scheduling-Multipurpose-Batch-Processes-using-State-Task-Networks.ipynb#Characterization-of-Units)\n", " - [Pyomo Model](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.06-Scheduling-Multipurpose-Batch-Processes-using-State-Task-Networks.ipynb#Pyomo-Model)\n", "- [Analysis](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.06-Scheduling-Multipurpose-Batch-Processes-using-State-Task-Networks.ipynb#Analysis)\n", " - [Profitability](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.06-Scheduling-Multipurpose-Batch-Processes-using-State-Task-Networks.ipynb#Profitability)\n", " - [State Inventories](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.06-Scheduling-Multipurpose-Batch-Processes-using-State-Task-Networks.ipynb#State-Inventories)\n", " - [Unit Assignment](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.06-Scheduling-Multipurpose-Batch-Processes-using-State-Task-Networks.ipynb#Unit-Assignment)\n", " - [Unit Batch Inventories](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.06-Scheduling-Multipurpose-Batch-Processes-using-State-Task-Networks.ipynb#Unit-Batch-Inventories)\n", " - [Gannt Chart](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.06-Scheduling-Multipurpose-Batch-Processes-using-State-Task-Networks.ipynb#Gannt-Chart)\n", "- [Trace of Events and States](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/04.06-Scheduling-Multipurpose-Batch-Processes-using-State-Task-Networks.ipynb#Trace-of-Events-and-States)\n", "* Markdown Figures\n", " - [Screen%20Shot%202017-09-16%20at%209.45.36%20PM.png](attachment:Screen%20Shot%202017-09-16%20at%209.45.36%20PM.png)\n", "\n", "\n", "## [Chapter 5.0 Logistics](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.00-Logistics.ipynb)\n", "\n", "### [5.1 Economic Order Quantity](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.01-Economic-Order-Quantity.ipynb)\n", "- [Initializations](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.01-Economic-Order-Quantity.ipynb#Initializations)\n", "- [Economic Order Quantity (EOQ)](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.01-Economic-Order-Quantity.ipynb#Economic-Order-Quantity-(EOQ))\n", "* Markdown Links\n", " - [Jupyter notebook](http://jupyter.org/notebook.html)\n", "\n", "### [5.2 Assignment Problems](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.02-Assignment-Problems.ipynb)\n", "- [Example Problem](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.02-Assignment-Problems.ipynb#Example-Problem)\n", " - [Combinatorial Complexity](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.02-Assignment-Problems.ipynb#Combinatorial-Complexity)\n", " - [Types of Complexity](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.02-Assignment-Problems.ipynb#Types-of-Complexity)\n", "- [Formulation of a Basic Assignment Problem](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.02-Assignment-Problems.ipynb#Formulation-of-a-Basic-Assignment-Problem)\n", "- [Solution](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.02-Assignment-Problems.ipynb#Solution)\n", "- [Solution using CVXPY](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.02-Assignment-Problems.ipynb#Solution-using-CVXPY)\n", "- [Example](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.02-Assignment-Problems.ipynb#Example)\n", " - [What is the minimum time solution if one worker is assigned to each job?](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.02-Assignment-Problems.ipynb#What-is-the-minimum-time-solution-if-one-worker-is-assigned-to-each-job?)\n", " - [What is the minimum time solution if workers can be assigned multiple times?](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.02-Assignment-Problems.ipynb#What-is-the-minimum-time-solution-if-workers-can-be-assigned-multiple-times?)\n", " - [Exercise](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.02-Assignment-Problems.ipynb#Exercise)\n", "- [Knapsack Problems](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.02-Assignment-Problems.ipynb#Knapsack-Problems)\n", " - [Typical Applications](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.02-Assignment-Problems.ipynb#Typical-Applications)\n", " - [Example](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.02-Assignment-Problems.ipynb#Example)\n", " - [Exercise](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.02-Assignment-Problems.ipynb#Exercise)\n", "\n", "### [5.3 Vehicle Routing](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.03-Vehicle-Routing.ipynb)\n", "\n", "### [5.4 Vehicle Routing with Time Windows](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.04-Vehicle-Routing-with-Time-Windows.ipynb)\n", "\n", "### [5.5 Traveling Salesman Problem with Time Windows](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.05-Traveling-Salesman-Problem-with-Time-Windows.ipynb)\n", "- [Problem Description](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.05-Traveling-Salesman-Problem-with-Time-Windows.ipynb#Problem-Description)\n", "\n", "### [5.6 Pickup and Delivery](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.06-Pickup-and-Delivery.ipynb)\n", "- [Problem Description](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.06-Pickup-and-Delivery.ipynb#Problem-Description)\n", "- [Data Set](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.06-Pickup-and-Delivery.ipynb#Data-Set)\n", "- [MathProg Model](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.06-Pickup-and-Delivery.ipynb#MathProg-Model)\n", "\n", "### [5.7 Stock Cutting](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.07-Stock-Cutting.ipynb)\n", "- [Background](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/05.07-Stock-Cutting.ipynb#Background)\n", "* Markdown Links\n", " - [IPython notebook](http://ipython.org/notebook.html)\n", "\n", "\n", "## [Chapter 6.0 Optimization under Uncertainty](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.00-Optimization-under-Uncertainty.ipynb)\n", "\n", "### [6.1 Newsvendor Problem](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.01-Newsvendor-Problem.ipynb)\n", "- [Background](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.01-Newsvendor-Problem.ipynb#Background)\n", "- [Solution](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.01-Newsvendor-Problem.ipynb#Solution)\n", " - [Expected Value for the Mean Scenario (EVM)](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.01-Newsvendor-Problem.ipynb#Expected-Value-for-the-Mean-Scenario-(EVM))\n", " - [Expected Value with Perfect Information (EVPI)](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.01-Newsvendor-Problem.ipynb#Expected-Value-with-Perfect-Information-(EVPI))\n", " - [Expected Value by Stochastic Programming](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.01-Newsvendor-Problem.ipynb#Expected-Value-by-Stochastic-Programming)\n", " - [Value of Perfect Information](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.01-Newsvendor-Problem.ipynb#Value-of-Perfect-Information)\n", " - [Value of the Stochastic Solution](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.01-Newsvendor-Problem.ipynb#Value-of-the-Stochastic-Solution)\n", "\n", "### [6.2 Scenario Analysis for a Plant Expansion](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.02-Scenario-Analysis-for-a-Plant-Expansion.ipynb)\n", "\n", "### [6.3 Risk Neutral Gambler](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.03-Risk-Neutral-Gambler.ipynb)\n", "- [Problem Statement](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.03-Risk-Neutral-Gambler.ipynb#Problem-Statement)\n", "- [Formulation](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.03-Risk-Neutral-Gambler.ipynb#Formulation)\n", "- [Solution by Linear Programming](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.03-Risk-Neutral-Gambler.ipynb#Solution-by-Linear-Programming)\n", "- [MathProg Model](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.03-Risk-Neutral-Gambler.ipynb#MathProg-Model)\n", "* Markdown Links\n", " - [_Reinforcement Learning_ (MIT Press, 1998)](http://mitpress.mit.edu/books/reinforcement-learning)\n", " - [_Introduction to Stochastic Dynamic Programming_ (Academic Press, 1983)](http://www.amazon.com/Introduction-Stochastic-Dynamic-Programming-Sheldon/dp/0125984219)\n", "\n", "### [6.4 Risk Averse Gambler](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.04-Risk-Averse-Gambler.ipynb)\n", "- [Problem Statement](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.04-Risk-Averse-Gambler.ipynb#Problem-Statement)\n", "- [Solution by Stochastic Dynamic Programming](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.04-Risk-Averse-Gambler.ipynb#Solution-by-Stochastic-Dynamic-Programming)\n", "- [Solution by Linear Programming](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.04-Risk-Averse-Gambler.ipynb#Solution-by-Linear-Programming)\n", "- [MathProg Model](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.04-Risk-Averse-Gambler.ipynb#MathProg-Model)\n", "\n", "### [6.5 Points after Touchdown Decision](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.05-Points-after-Touchdown-Decision.ipynb)\n", "- [Initializations](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.05-Points-after-Touchdown-Decision.ipynb#Initializations)\n", "- [Multi-Stage Model of the Decision Process](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.05-Points-after-Touchdown-Decision.ipynb#Multi-Stage-Model-of-the-Decision-Process)\n", " - [Transition Probabilities](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.05-Points-after-Touchdown-Decision.ipynb#Transition-Probabilities)\n", " - [Opponent's Decisions After the Last Possession](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.05-Points-after-Touchdown-Decision.ipynb#Opponent's-Decisions-After-the-Last-Possession)\n", " - [Visualization](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.05-Points-after-Touchdown-Decision.ipynb#Visualization)\n", " - [Decision Prior to the Opponent's Last Possession](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.05-Points-after-Touchdown-Decision.ipynb#Decision-Prior-to-the-Opponent's-Last-Possession)\n", " - [Visualization](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.05-Points-after-Touchdown-Decision.ipynb#Visualization)\n", "- [Decision Chart](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.05-Points-after-Touchdown-Decision.ipynb#Decision-Chart)\n", "- [Odds of Winning](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.05-Points-after-Touchdown-Decision.ipynb#Odds-of-Winning)\n", "- [Analysis of Three Cases (To be completed)](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.05-Points-after-Touchdown-Decision.ipynb#Analysis-of-Three-Cases-(To-be-completed))\n", " - [Northwestern at Notre Dame, 2014](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.05-Points-after-Touchdown-Decision.ipynb#Northwestern-at-Notre-Dame,-2014)\n", " - [Notre Dame at Clemson, 2015](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.05-Points-after-Touchdown-Decision.ipynb#Notre-Dame-at-Clemson,-2015)\n", " - [Georgia Tech at Notre Dame, 2015](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/06.05-Points-after-Touchdown-Decision.ipynb#Georgia-Tech-at-Notre-Dame,-2015)\n", "\n", "\n", "## [Chapter 7.0 Risk and Diversification](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.00-Risk-and-Diversification.ipynb)\n", "\n", "### [7.1 Measuring Return](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.01-Measuring-Return.ipynb)\n", "- [Imports](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.01-Measuring-Return.ipynb#Imports)\n", "- [Where to get Price Data](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.01-Measuring-Return.ipynb#Where-to-get-Price-Data)\n", " - [Yahoo Finance](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.01-Measuring-Return.ipynb#Yahoo-Finance)\n", " - [Google Finance](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.01-Measuring-Return.ipynb#Google-Finance)\n", " - [Quandl](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.01-Measuring-Return.ipynb#Quandl)\n", "- [Returns](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.01-Measuring-Return.ipynb#Returns)\n", " - [Linear fractional or Arithmetic Returns](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.01-Measuring-Return.ipynb#Linear-fractional-or-Arithmetic-Returns)\n", " - [Linear returns don't tell the whole story.](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.01-Measuring-Return.ipynb#Linear-returns-don't-tell-the-whole-story.)\n", " - [Compounded Log Returns](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.01-Measuring-Return.ipynb#Compounded-Log-Returns)\n", " - [Volatility Drag and the Relationship between Linear and Log Returns](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.01-Measuring-Return.ipynb#Volatility-Drag-and-the-Relationship-between-Linear-and-Log-Returns)\n", "* Markdown Links\n", " - [Yahoo Finance](http://finance.yahoo.com/)\n", " - [Google Finance](https://www.google.com/finance)\n", " - [Quandl](http://www.quandl.com/)\n", " - [Yahoo Finance](http://finance.yahoo.com/)\n", " - [Adjusted Close](http://marubozu.blogspot.com/2006/09/how-yahoo-calculates-adjusted-closing.html)\n", " - [Google Finance](https://www.google.com/finance)\n", " - [Quandl](http://www.quandl.com/)\n", " - [Quandl API](http://www.quandl.com/help/api)\n", " - [Quandl Python package](http://www.quandl.com/help/packages#Python)\n", "\n", "### [7.2 Geometric Brownian Motion](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.02-Geometric-Brownian-Motion.ipynb)\n", "- [Python Imports and Utility Functions](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.02-Geometric-Brownian-Motion.ipynb#Python-Imports-and-Utility-Functions)\n", "- [Statistical Properties of Returns](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.02-Geometric-Brownian-Motion.ipynb#Statistical-Properties-of-Returns)\n", " - [Distribution of Returns](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.02-Geometric-Brownian-Motion.ipynb#Distribution-of-Returns)\n", " - [Distribution of First Half versus Second Half of the Data Set](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.02-Geometric-Brownian-Motion.ipynb#Distribution-of-First-Half-versus-Second-Half-of-the-Data-Set)\n", " - [Lag Plot of $r^{log}_{t+1}$ versus $r^{log}_t$](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.02-Geometric-Brownian-Motion.ipynb#Lag-Plot-of-$r^{log}_{t+1}$-versus-$r^{log}_t$)\n", " - [Autocorrelation](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.02-Geometric-Brownian-Motion.ipynb#Autocorrelation)\n", "- [Fitting Returns to a Distribution](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.02-Geometric-Brownian-Motion.ipynb#Fitting-Returns-to-a-Distribution)\n", " - [Normal Distribution](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.02-Geometric-Brownian-Motion.ipynb#Normal-Distribution)\n", "- [Geometric Brownian Motion](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.02-Geometric-Brownian-Motion.ipynb#Geometric-Brownian-Motion)\n", " - [Linear Returns](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.02-Geometric-Brownian-Motion.ipynb#Linear-Returns)\n", " - [Log Returns](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.02-Geometric-Brownian-Motion.ipynb#Log-Returns)\n", " - [Forecasting](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.02-Geometric-Brownian-Motion.ipynb#Forecasting)\n", " - [Simulation using Generators](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.02-Geometric-Brownian-Motion.ipynb#Simulation-using-Generators)\n", "* Markdown Links\n", " - [`pandas-datareader`](https://pandas-datareader.readthedocs.io/en/latest/#)\n", "\n", "### [7.3 Binomial Model for Pricing Options](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.03-Binomial-Model-for-Pricing-Options.ipynb)\n", "- [Historical Data](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.03-Binomial-Model-for-Pricing-Options.ipynb#Historical-Data)\n", "- [Binomial Model](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.03-Binomial-Model-for-Pricing-Options.ipynb#Binomial-Model)\n", "- [European Call Option](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.03-Binomial-Model-for-Pricing-Options.ipynb#European-Call-Option)\n", "- [Implementing a Replicating Portfolio with Pyomo](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.03-Binomial-Model-for-Pricing-Options.ipynb#Implementing-a-Replicating-Portfolio-with-Pyomo)\n", "- [European Put Option](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.03-Binomial-Model-for-Pricing-Options.ipynb#European-Put-Option)\n", "- [Early Exercise](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.03-Binomial-Model-for-Pricing-Options.ipynb#Early-Exercise)\n", "- [American Put Option](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.03-Binomial-Model-for-Pricing-Options.ipynb#American-Put-Option)\n", "* Markdown Figures\n", " - [BinomialModel](https://github.com/jckantor/CBE40455/blob/master/notebooks/figures/BinomialModel.png?raw=true)\n", " - [BinomialModel_Options](https://github.com/jckantor/CBE40455/blob/master/notebooks/figures/BinomialModel_Options.png?raw=true)\n", "* Markdown Links\n", " - [Luenberger (2013)](https://global.oup.com/ushe/product/investment-science-9780199740086?cc=us&lang=en&)\n", "\n", "### [7.4 Real Options](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.04-Real-Options.ipynb)\n", "- [Implementing a Replicating Portfolio in Pyomo](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.04-Real-Options.ipynb#Implementing-a-Replicating-Portfolio-in-Pyomo)\n", "- [Example 1. Value of a fixed cash flow](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.04-Real-Options.ipynb#Example-1.-Value-of-a-fixed-cash-flow)\n", "- [Example 2. Simplico Gold Mine](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.04-Real-Options.ipynb#Example-2.-Simplico-Gold-Mine)\n", " - [Solution](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.04-Real-Options.ipynb#Solution)\n", "- [Example 3. Simplico Gold Mine Capital Investment](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.04-Real-Options.ipynb#Example-3.-Simplico-Gold-Mine-Capital-Investment)\n", "- [Price Model](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.04-Real-Options.ipynb#Price-Model)\n", "- [Growth Model](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.04-Real-Options.ipynb#Growth-Model)\n", "* Markdown Figures\n", " - [../img/TimelineRealOption.png](../img/TimelineRealOption.png)\n", " - [../img/BinomialRealOption.png](../img/BinomialRealOption.png)\n", "* Markdown Links\n", " - [analysis of Martin Haugh](http://www.columbia.edu/~mh2078/FoundationsFE/RealOptions.pdf)\n", "\n", "### [7.5 Portfolio Optimization](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.05-Portfolio-Optimization.ipynb)\n", "- [Import libraries](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.05-Portfolio-Optimization.ipynb#Import-libraries)\n", "- [Load Price Data](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.05-Portfolio-Optimization.ipynb#Load-Price-Data)\n", "- [Plot Price and Returns Data](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.05-Portfolio-Optimization.ipynb#Plot-Price-and-Returns-Data)\n", "- [Linear and Log Returns](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.05-Portfolio-Optimization.ipynb#Linear-and-Log-Returns)\n", "- [Covariance and Correlation Matrices](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.05-Portfolio-Optimization.ipynb#Covariance-and-Correlation-Matrices)\n", " - [Visualizing the correlation coefficients](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.05-Portfolio-Optimization.ipynb#Visualizing-the-correlation-coefficients)\n", "- [Creating Portfolios](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.05-Portfolio-Optimization.ipynb#Creating-Portfolios)\n", " - [Mean Return and Variance of a Portfolio](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.05-Portfolio-Optimization.ipynb#Mean-Return-and-Variance-of-a-Portfolio)\n", "- [Examples of Portfolios with Two Assets](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.05-Portfolio-Optimization.ipynb#Examples-of-Portfolios-with-Two-Assets)\n", "- [Minimum Risk Portfolio](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.05-Portfolio-Optimization.ipynb#Minimum-Risk-Portfolio)\n", " - [Pyomo Model and Solution](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.05-Portfolio-Optimization.ipynb#Pyomo-Model-and-Solution)\n", " - [Out-of-Sample Simulation](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.05-Portfolio-Optimization.ipynb#Out-of-Sample-Simulation)\n", "- [Markowitz Portfolio](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.05-Portfolio-Optimization.ipynb#Markowitz-Portfolio)\n", " - [Out of Sample Simulation](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.05-Portfolio-Optimization.ipynb#Out-of-Sample-Simulation)\n", "- [Risk-Free Asset](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.05-Portfolio-Optimization.ipynb#Risk-Free-Asset)\n", "- [Maximum Log Return (to be developed).](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.05-Portfolio-Optimization.ipynb#Maximum-Log-Return-(to-be-developed).)\n", "- [Exercises](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.05-Portfolio-Optimization.ipynb#Exercises)\n", "* Markdown Links\n", " - [Jupyter notebook](http://jupyter.org/)\n", "\n", "### [7.6 Portfolio Optimization using Mean Absolute Deviation](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.06-Portfolio-Optimization-using-Mean-Absolute-Deviation.ipynb)\n", "- [Background](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.06-Portfolio-Optimization-using-Mean-Absolute-Deviation.ipynb#Background)\n", "- [Mean Absolute Deviation](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.06-Portfolio-Optimization-using-Mean-Absolute-Deviation.ipynb#Mean-Absolute-Deviation)\n", "- [Reformulation of the MAD Objective](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.06-Portfolio-Optimization-using-Mean-Absolute-Deviation.ipynb#Reformulation-of-the-MAD-Objective)\n", "- [Seeding the GLPK Pseudo-Random Number Generator](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.06-Portfolio-Optimization-using-Mean-Absolute-Deviation.ipynb#Seeding-the-GLPK-Pseudo-Random-Number-Generator)\n", "- [Simulation of the Historical Returns](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.06-Portfolio-Optimization-using-Mean-Absolute-Deviation.ipynb#Simulation-of-the-Historical-Returns)\n", "- [MathProg Model](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.06-Portfolio-Optimization-using-Mean-Absolute-Deviation.ipynb#MathProg-Model)\n", "* Markdown Links\n", " - [IPython notebook](http://ipython.org/notebook.html)\n", " - [GLPK Wikibook tutorial on the subject](http://en.wikibooks.org/wiki/GLPK/Portfolio_Optimization)\n", " - [A complete tutorial](http://en.wikibooks.org/wiki/GLPK/Portfolio_Optimization)\n", " - [GLPK wikibook](http://en.wikibooks.org/wiki/GLPK/)\n", "\n", "### [7.7 Portfolio Optimization](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.07-MAD-Portfolio-Optimization.ipynb)\n", "- [Investment Objectives](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.07-MAD-Portfolio-Optimization.ipynb#Investment-Objectives)\n", "- [Why Diversify?](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.07-MAD-Portfolio-Optimization.ipynb#Why-Diversify?)\n", " - [Reduce Risk through Law of Large Numbers](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.07-MAD-Portfolio-Optimization.ipynb#Reduce-Risk-through-Law-of-Large-Numbers)\n", "- [Select a Portfolio from a Set of Candidate Portfolios](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.07-MAD-Portfolio-Optimization.ipynb#Select-a-Portfolio-from-a-Set-of-Candidate-Portfolios)\n", " - [Download Historical Data](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.07-MAD-Portfolio-Optimization.ipynb#Download-Historical-Data)\n", " - [Equally Weighted Portfolio](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.07-MAD-Portfolio-Optimization.ipynb#Equally-Weighted-Portfolio)\n", " - [Compute Component Returns](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.07-MAD-Portfolio-Optimization.ipynb#Compute-Component-Returns)\n", "- [MAD Porfolio](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.07-MAD-Portfolio-Optimization.ipynb#MAD-Porfolio)\n", "- [Problem 1: Solve for Dominating MAD Portfolio](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.07-MAD-Portfolio-Optimization.ipynb#Problem-1:-Solve-for-Dominating-MAD-Portfolio)\n", "* Markdown Links\n", " - [IPython notebook](http://ipython.org/notebook.html)\n", " - [GLPK Wikibook tutorial on the subject](http://en.wikibooks.org/wiki/GLPK/Portfolio_Optimization)\n", " - [http://github.com/jckantor/CBE20255](http://github.com/jckantor/CBE20255)\n", " - [Creative Commons Attribution Noncommericial ShareAlike License](http://creativecommons.org/licenses/by-nc-sa/4.0/)\n", "\n", "### [7.8 Log-Optimal Growth and the Kelly Criterion](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.08-Log-Optimal-Growth-and-the-Kelly-Criterion.ipynb)\n", "- [Initializations](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.08-Log-Optimal-Growth-and-the-Kelly-Criterion.ipynb#Initializations)\n", "- [What are the Issues in Managing for Optimal Growth?](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.08-Log-Optimal-Growth-and-the-Kelly-Criterion.ipynb#What-are-the-Issues-in-Managing-for-Optimal-Growth?)\n", "- [Why Maximizing Expected Wealth is a Bad Idea](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.08-Log-Optimal-Growth-and-the-Kelly-Criterion.ipynb#Why-Maximizing-Expected-Wealth-is-a-Bad-Idea)\n", " - [Exercise](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.08-Log-Optimal-Growth-and-the-Kelly-Criterion.ipynb#Exercise)\n", " - [Utility Functions](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.08-Log-Optimal-Growth-and-the-Kelly-Criterion.ipynb#Utility-Functions)\n", " - [Maximizing Growth](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.08-Log-Optimal-Growth-and-the-Kelly-Criterion.ipynb#Maximizing-Growth)\n", "- [Kelly's Criterion: Maximizing Growth for a Game with Arbitrary Odds](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.08-Log-Optimal-Growth-and-the-Kelly-Criterion.ipynb#Kelly's-Criterion:-Maximizing-Growth-for-a-Game-with-Arbitrary-Odds)\n", "- [Volatility Pumping](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.08-Log-Optimal-Growth-and-the-Kelly-Criterion.ipynb#Volatility-Pumping)\n", "* Markdown Figures\n", " - [Kelly_Criterion_Fig1](https://github.com/jckantor/CBE40455/blob/master/notebooks/figures/Kelly_Criterion_Fig1.png?raw=true)\n", " - [Kelly_Criterion_Fig2](https://github.com/jckantor/CBE40455/blob/master/notebooks/figures/Kelly_Criterion_Fig2.png?raw=true)\n", " - [Kelly_Criterion_Volatility_Pumping](https://github.com/jckantor/CBE40455/blob/master/notebooks/figures/Kelly_Criterion_Volatility_Pumping.png?raw=true)\n", "* Markdown Links\n", " - [IPython notebook](http://ipython.org/notebook.html)\n", "\n", "### [7.9 Log-Optimal Portfolios](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.09-Log-Optimal-Portfolios.ipynb)\n", "- [Initializations](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.09-Log-Optimal-Portfolios.ipynb#Initializations)\n", "- [Kelly's Criterion](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.09-Log-Optimal-Portfolios.ipynb#Kelly's-Criterion)\n", "- [Example 1. Maximizing Return for a Game with Arbitrary Odds](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.09-Log-Optimal-Portfolios.ipynb#Example-1.-Maximizing-Return-for-a-Game-with-Arbitrary-Odds)\n", "- [Example 2. Betting Wheel](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.09-Log-Optimal-Portfolios.ipynb#Example-2.-Betting-Wheel)\n", "- [Example 3. Stock/Bond Portfolio in Continuous Time](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.09-Log-Optimal-Portfolios.ipynb#Example-3.-Stock/Bond-Portfolio-in-Continuous-Time)\n", "- [Volatility Pumping](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/07.09-Log-Optimal-Portfolios.ipynb#Volatility-Pumping)\n", "* Markdown Figures\n", " - [Kelly_Criterion_Fig2](https://github.com/jckantor/CBE40455/blob/master/notebooks/figures/Kelly_Criterion_Fig2.png?raw=true)\n", " - [Kelly_Criterion_Volatility_Pumping](https://github.com/jckantor/CBE40455/blob/master/notebooks/figures/Kelly_Criterion_Volatility_Pumping.png?raw=true)\n", "\n", "\n", "## [Chapter 8.0 Optimization in Google Sheets](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/08.00-Optimization-in-Google-Sheets.ipynb)\n", "* Markdown Links\n", " - [Production Planning with Constraints (Google Sheet)](https://docs.google.com/spreadsheets/d/1StL_Z-GnE23LuS93mr9fybxmcAopFuWVvGTauJgvxng/edit?usp=sharing)\n", " - [SEMD Refinery (Google Sheet)](https://docs.google.com/spreadsheets/d/1x-DX4rnt6LCLiDpuSEwZDF0zs5mpVrpcjlU5kb2dmUA/edit?usp=sharing)\n", " - [Transportation Network Optimization (Google Sheet)](https://docs.google.com/spreadsheets/d/1-loaUHVteMnf09fKJy9F03x51OfnUvvbiLgX4k_eaPs/edit?usp=sharing)\n", " - [Project Management with the Critical Path (Google Sheet)](https://docs.google.com/spreadsheets/d/170KbWCvI-9eonNeGbZhDq3GyvmUiR3aSjtUzXT3Cono/edit?usp=sharing)\n", " - [Machine Bottleneck Scheduling (Google Sheet)](https://docs.google.com/spreadsheets/d/1e3a0hSMW_Oht56hB2YtIZMjh4OZTMOQpTUYuq-JGJ40/edit?usp=sharing)\n", " - [Stochastic Programming: Two Stage Solution for the Newsvendor Problem (Google Sheet)](https://docs.google.com/spreadsheets/d/1I6bt5_QUz9-toGgiVc2Y5fHlHNJtevChd-0-2R3jyrI/edit?usp=sharing)\n", " - [Knapsack Problem (Google Sheet)](https://docs.google.com/spreadsheets/d/1KXEmKDCyUH-sQEbmSN4CMhcQtO88npDcgTK2b4CRVdI/edit?usp=sharing)\n", " - [Stock Cutting (Google Sheet)](https://docs.google.com/spreadsheets/d/1Djn5eApF1rbJOV5CZpY_YrnYFeEH5FuCAGjj0ShXKAc/edit?usp=sharing)\n", " - [Soduko Solver 4x4 (Google Sheet)](https://docs.google.com/spreadsheets/d/1XMkn64lSKxzxcSeIDBJjEGiI5eUU8f90gEiPQ2JKLOk/edit?usp=sharing)\n", "\n", "\n", "## [Chapter 9.0 Student Projects](http://nbviewer.jupyter.org/github/jckantor/CBE40455/blob/master/notebooks/09.00-Student-Projects.ipynb)" ] } ], "metadata": {}, "nbformat": 4, "nbformat_minor": 2 }