数学优化简介

Python 优化入门

Jasmin Ludolf

Content Developer

即将学习…

 

您将学习…
  • 解决真实世界的优化问题
  • 构建工具箱以应对不同问题

 

需要的先修知识…

 

不需要掌握…
  • 微积分
  • 算法
Python 优化入门

什么是数学优化?

 

  • 为特定问题寻找"理想"输入

 

  • 示例
    • 最大化作物产量

田间生长的作物。

  • 土壤条件、天气
  • 最佳作物数量与质量
Python 优化入门

什么是数学优化?

 

 

货车按配送路线行驶。

 

 

  • 最优配送路线
  • 距离与交通
  • 改善送达时间并降低成本
Python 优化入门

目标函数

  • 描述输入变量与结果的关系

 

家具制造

  • 最大化利润 P
  • 数量 q

 

$P = 40q - 0.5q^2$

  • 哪个 q 使 P 最大?
Python 优化入门

用 Python 优化

import numpy as np
import matplotlib.pyplot as plt

qs = np.arange(80)


def profit(q): return 40 * q - 0.5 * q**2
plt.plot(qs, profit(qs)) plt.xlabel('Quantity') plt.ylabel('Profit') plt.show()
Python 优化入门

制造中的优化

 

  • 最大值 = 最优值

 

  • 可能的成因:
    • 人手或设备不足

 

利润随数量变化。

Python 优化入门

穷举搜索

  • "穷举"方法
  • 计算一系列数量下的利润
  • 选取利润最大的那个

 

一名男子手持双筒望远镜,坐在印有美元符号的气球上寻找利润。

Python 优化入门

Python 实现穷举搜索

import numpy as np

qs = np.arange(80)

def profit(q): 
  return 40 * q - 0.5 * q**2


profits = profit(qs) max_profit = profits.max()
max_ind = np.argmax(profits) q_opt = qs[max_ind]
print(f"The optimum is {q_opt} pieces of furniture, which makes ${max_profit} profit.")
The optimum is 40 pieces of furniture, which makes $800 profit.
Python 优化入门

穷举搜索的优缺点

 

  • 优点
    • (+) 实现简单
    • (+) 无需昂贵软件
    • (+) 假设最少
  • 缺点
    • (-) 不适用于复杂规模
Python 优化入门

开始练习!

Python 优化入门

Preparing Video For Download...