Random

线性同余法

线性同余法:产生伪随机数最常用方法

  • $d \leq m$:随机序列种子
  • $b \geq 0, c \geq 0, m \geq 0$:关系到产生随机序列的随机性能
    • $m$:应该取得充分大
    • $gcd(m ,b)=1$:可以取b为素数

随机算法

数值随机化算法

数值化随机算法:常用于数值问题求解,往往得到的是近似解

  • 近似解的精度随计算时间、采样数量增加不断提高
  • 很多情况下计算问题的精确解不可能、无必要,数值化随机算法 可以得到较好的解

随机投点法

随机投点法:在给定范围内生成均匀分布随机数模拟随机投点

  • 计算$\pi$值:在正方形、内切圆中随机撒点,计算圆内、 正方形内点数量之比

  • 计算黎曼积分:在包括积分区域单位矩形内随机投点,计算 积分区域、矩形区域点数量之比

平均值法

平均值法:结合随机数分布、目标问题构造统计量,估计目标问题

计算黎曼积分

  • 假设独立同分布随机变量${\eta_i}$在$[a, b]$中服从分布 $f(x)$、待积函数为$g(x)$

  • 记$g^{*}(x) = \frac {g(x)} {f(x)}$,则有

  • 由强大数定理

    选择$\bar I = \frac 1 n \sum_{i=1}^n g^{*}(\eta_i)$, 则$\bar I$依概率收敛为$I$

  • 选择抽样方法简单的概率密度函数$f(x)$满足

    可以取$f(x)$为均匀分布

  • 则积分

    取均值

    可作为求分I的近似值

解非线性方程组

  • 线性化方法、求函数极小值方法有时会遇到麻烦,甚至使方法 失效而不能获得近似解
  • 随机化方法相较而言要耗费较多时间,但设计简单、易于实现
  • 对于精度要求较高的问题,随机化方法可以提供一个较好的初值

步骤

  • 构造目标函数

    则目标函数的极小值点即为所求非线性方程组的一组解

  • 随机选择点$x_0$作为出发点,不断随机生成搜索方向, 迭代为使得目标函数值下降的搜索点

    • 一般以目标函数变化幅度、迭代轮数作为终止条件
    • 搜索方向为随机生成,迭代步长比例每轮缩小指定幅度
  • 真正的随机次梯度下降

Monte Carol Method

蒙特卡洛算法:一定能给出问题解,但未必正确

  • 要求在有限时间、采样内必须给出解,解未必正确
  • 求得正确解的概率依赖于算法所用时间,算法所用时间越多, 得到正确解概率越高
  • 无法有效判断得到的解是否肯定正确

Las Vegas Method

拉斯维加斯算法:找到的解一定是正确解,但是可能找不到解

  • 找到正确解的概率随着计算所用时间增加而提高
  • 用同一拉斯维加斯算法反复对实例求解多次,可使得求解失效 概率任意小

Sherwood Method

舍伍德算法:能求得问题的一个解,所求得得解总是正确的

  • 确定性算法在最好情况、平均情况下计算复杂度有较大差别, 在确定性算法中引入随机性将其改造成舍伍德算法,消除、减少 问题的好坏实例间差别

  • 精髓不是改进算法在最坏情形下的行为,而是设法消除最坏情形 与特定问题实例的关联性

思想

  • 问题输入规模为n时,算法A所需的平均时间为

    • $X_n$:算法A输入规模为n的实例全体
    • $t_A(x)$:输入实例为x时所需的计算时间

    显然存在$x \in X_n, t_A(x) >> \bar t_A(x)$

  • 希望获得随机化算法B,使得对问题的输入规模为n的每个实例 $x \in X_n$均有$t_B(x) = \bar t_A(x) + s(n)$

    • 对具体实例,存在$x \in X_n$,算法B需要时间超过 $\bar t_A(x) + s(n)$,但这是由于算法所做的概率引起, 与具体实例无关

    • 算法B关于规模为n的随机实例平均时间为

      K

      当$s(n)$与$\bar t_A(n)$相比可以忽略时,舍伍德算法 可以获得较好平均性能

todo