BEE 4750 Homework 5: Mixed Integer and Stochastic Programming

Due Date

Thursday, 12/04/24, 9:00pm

If you are enrolled in the course, make sure that you use the GitHub Classroom link provided in Ed Discussion, or you may not be able to get help if you run into problems.

Otherwise, you can find the Github repository here.

Overview

Instructions

  • In Problem 1, you will use mixed integer programming to solve a waste load allocation problem.
  • In Problem 2, you will formulate a stochastic optimization problem.

Load Environment

The following code loads the environment and makes sure all needed packages are installed. This should be at the start of most Julia scripts.

import Pkg
Pkg.activate(@__DIR__)
Pkg.instantiate()
using JuMP
using HiGHS
using DataFrames
using GraphRecipes
using Plots
using Measures
using MarkdownTables

Problems (Total: 30 Points)

Problem 1 (24 points)

Three cities are developing a coordinated municipal solid waste (MSW) disposal plan. Three disposal alternatives are being considered: a landfill (LF), a materials recycling facility (MRF), and a waste-to-energy facility (WTE). The capacities of these facilities and the fees for operation and disposal are provided below.

  • LF: Capacity 200 Mg, fixed cost $2000/day, tipping cost $50/Mg;
  • MRF: Capacity 350 Mg, fixed cost $1500/day, tipping cost $7/Mg, recycling cost $40/Mg recycled;
  • WTE: Capacity 210 Mg, fixed cost $2500/day, tipping cost $60/Mg;

Transportation costs are $1.5/Mg-km, and the relative distances between the cities and facilities are provided in the table below.

City/Facility Landfill (km) MRF (km) WTE (km)
1 5 30 15
2 15 25 10
3 13 45 20
LF - 32 18
MRF 32 - 15
WTE 18 15 -

The fixed costs associated with the disposal options are incurred only if the particular disposal option is implemented. The three cities produce 100, 90, and 120 Mg/day of solid waste, respectively, with the composition provided in the table below.

Component % of total mass Combustion ash (%) MRF Recycling rate (%)
Food Wastes 15 8 0
Paper & Cardboard 40 7 55
Plastics 5 5 15
Textiles 3 10 10
Rubber, Leather 2 15 0
Wood 5 2 30
Yard Wastes 18 2 40
Glass 4 100 60
Ferrous 2 100 75
Aluminum 2 100 80
Other Metal 1 100 50
Miscellaneous 3 70 0

The information in the above table will help you determine the overall recycling and ash fractions. Note that the recycling residuals, which may be sent to either landfill or the WTE, have different ash content than the ash content of the original MSW. You will need to determine these fractions to construct your mass balance constraints.

Reminder: Use round(x; digits=n) to report values to the appropriate precision!

Problem 1.1

Based on the information above, calculate the overall recycling and ash fractions for the waste produced by each city.

Problem 1.2

What are the decision variables for your optimization problem? Provide notation and variable meaning.

Problem 1.3

Formulate the objective function. Make sure to include any needed derivations or justifications for your equation(s).

Problem 1.4

Derive all relevant constraints. Make sure to include any needed justifications or derivations.

Problem 1.5

Find the optimal solution (using JuMP to solve the problem). Report the optimal objective value.

Problem 1.6

Draw a diagram showing the flows of waste between the cities and the facilities. Which facilities (if any) will not be used? Does this solution make sense?

Problem 2 (6 points)

Consider a two-period economic dispatch problem, based on the multi-period example from Lecture 14 (on 10/29). The generator data, including ramping constraints for each generator, is provided in `data/generators.csv.’ In period 1, the demand is \(d_1 = 1100 \text{MW}\). In period 2, the demand is projected to be \(d_2 = 1200 \text{MW}\), but there is a 25% probability that it is $1500 . In the first period, the solar capacity factor is \(0.9\) and the wind capacity factor is \(0.45\), but in the second period, there is some uncertainty: the forecasted solar and wind capacity factors are \(0.95\) and \(0.4\), respectively, but there is a 30% probability that they are \(0.75\) and \(0.5\). Your goal is to identify how to dispatch your generators to minimize the cost of meeting demand.

Problem 2.1

Draw a scenario tree for this problem.

Problem 2.2

Formulate a stochastic linear program for this problem based on your scenario tree from Problem 2.1 and the data in data/generators.csv.

References

List any external references consulted, including classmates.