marp | headingDivider | paginate | math | footer |
---|---|---|---|---|
true |
2 |
true |
true |
[CPSC 406](https://friedlander.io/ubc-cpsc-406) |
CPSC 406, Department of Computer Science
Professor Michael P. Friedlander
- recognize and formulate the main optimization problem classes
- understand how to apply standard algorithms for each class
- recognize that an algorithm has succeeded or failed
- hands-on experience with mathematical software
- fitting a statistical model to data (machine learning)
- logistics, economics, finance, risk management
- theory of games and competition
- theory of computer science and algorithms
- geometry and analysis
a model is a simplified abstraction of process
- model parameters
$x=(x_1,x_2,…,x_n)\in\mathcal{P}$ - prediction
$m(x)\in\mathcal{F}$
least-error principle: the optimal parameters
- Objective function:
$f:ℝ^n\toℝ$ - feasible set (eg, "constraints"):
$\mathcal{C}⊆ℝ^n$ - decision variables:
$x=(x_1,x_2,\ldots,x_n)\in\mathcal{C}$
- find
$x\in\mathcal{C}$ such that$f(x)$ is minimal, eg, $$ p^* = \min_{x\in\mathcal{C}}\ f(x) $$ - optimal solution set
$$\mathcal{S}:=\set{x\in\mathcal{C}\mid p^*=f(x)}$$
Assume the objective
- measures the objective's sensitivity to feasible perturbations
- usually sufficient to devise tractable and implementable algorithms
- least-squares approximation:
$x^*=(A^T A)^{-1}A^T b$ minimizes$$f(x):=|r(x)|^2= \textstyle\sum_i[r(x)]_i^2$$ - least absolute-sum approximation: no closed-form solution for minimizing
$$f(x):=|r(x)|_1 = |r_1(x)| + \cdots + |r_m(x)|$$
Minimize number nurses needed to meet weekly staffing demands
- each nurse works 5 straight days with 2 days off
-
$d_j$ nurses required on nights$j=1,\ldots,7$
-
$y_j$ nurses work on night$j$ - minimize
$\sum_j y_j$ subject to$y_j\ge d_j$ with$j\in1:7$ - doesn't respect days off constraints
let
- note the constraint structure. This is almost always true of practical LPs
- we may want to restrict
$x_{j}$ to be integer. That's a much harder problem!
- 8 homework assignments (30%)
- programming and mathematical deriviations
- typeset submissions, correctness, and writing quality graded
- midterm exam (30%): ✏️️ and 🗞️, short mathematical problems
- final exam (40%): multiple choice
- common programming languages in optimization: Python, Matlab, R; C++
- we'll use Julia only
- Matlab-like syntax, but free and fast
- lots of tutorials available
- Pluto ❤️ or Jupyter or ️notebooks highly recommended for assignments
- work alone or collaborate in pairs 👯
- hand in your own assignment and list collaborators
- 3 late days allowed (no permission required)
- but no more than 2 late days for a particular assignment
- no solutions posted online
- come to office hours to see solutions
- submit solutions to Crowdmark
- no late days, no collaborators
- hints at required background
- due next week
- see the course home page for schedule
- announcements and discussions on Piazza
- TA and instructor office hours start week 2