@@ -9,6 +9,13 @@ kernelspec:
99 display_name : Python 3 (ipykernel)
1010 language : python
1111 name : python3
12+ translation :
13+ title : 库存动态
14+ headings :
15+ Overview : 概述
16+ Sample Paths : 样本路径
17+ Marginal Distributions : 边际分布
18+ Exercises : 练习
1219---
1320
1421``` {raw} jupyter
@@ -21,6 +28,9 @@ kernelspec:
2128
2229# 库存动态
2330
31+ ``` {index} single: Markov process, inventory
32+ ```
33+
2434``` {contents} 目录
2535:depth: 2
2636```
8595
8696下面是一个类,它用于存储参数并生成库存的时间路径。
8797
88- ``` {code-cell} ipython3
98+ ``` {code-cell} python3
8999firm_data = [
90100 ('s', float64), # 触发补货水平
91101 ('S', float64), # 库存总容量
@@ -149,7 +159,7 @@ ax.legend(**legend_args)
149159plt.show()
150160```
151161
152- 现在让我们模拟多条路径,这样可以更好地了解库存动态的整体行为和可能的库存分布 :
162+ 现在让我们模拟多条路径,从而更全面地了解不同结果的概率 :
153163
154164``` {code-cell} ipython3
155165sim_length=200
@@ -243,7 +253,7 @@ plt.show()
243253* 大多数公司已经补了两次货,但也有少部分公司只补货一次(见上图路径)。
244254* 第二种公司的库存较少。
245255
246- 我们还可以使用[ 核密度估计] ( https://baike.baidu.com/item/核密度估计/10349033 ) 来近似这个分布。
256+ 我们还可以使用[ 核密度估计] ( https://en.wikipedia.org/wiki/Kernel_density_estimation ) 来近似这个分布。
247257
248258核密度估计可以被理解为平滑的直方图。
249259
@@ -291,7 +301,7 @@ plt.show()
291301
292302你应该能看到收敛性,体现在两个连续分布之间的差异越来越小。
293303
294- 尝试使用不同的初始条件来验证,无论从哪个初始状态开始,长期分布都会收敛到相同的平稳分布 。
304+ 尝试使用不同的初始条件来验证,从长期来看,分布在不同初始条件下是不变的 。
295305```
296306
297307``` {solution-start} id_ex1
@@ -300,9 +310,9 @@ plt.show()
300310
301311以下是其中一种解法:
302312
303- 由于这个计算需要大量的计算资源,我们需要编写更高效的代码 。
313+ 由于这个计算需要大量的CPU运算,我们尝试编写更高效的代码 。
304314
305- 为此,我们将创建一个专门的函数来替代之前使用的类,以提高计算效率 。
315+ 为此,我们编写了一个专门的函数来替代之前使用的类 。
306316
307317``` {code-cell} ipython3
308318s, S, mu, sigma = firm.s, firm.S, firm.mu, firm.sigma
@@ -351,23 +361,23 @@ ax.legend()
351361plt.show()
352362```
353363
354- 从图中可以看出,随着时间的推移,分布逐渐收敛到一个稳定状态 。
364+ 注意到,到 $t=500$ 或 $t=750$ 时,密度几乎不再变化 。
355365
356- 在 t=500 和 t=750 时的分布几乎完全重合,表明我们已经得到了平稳密度的良好近似 。
366+ 我们已经得到了平稳密度的一个合理近似 。
357367
358- 你可以通过测试多个不同的初始条件,来确定初始条件确实不重要 。
368+ 你可以通过测试几个不同的初始条件,来确认初始条件确实不重要 。
359369
360- 例如,你可以尝试将所有公司的初始库存设置为 $X_0 = 20$ 或 $X_0 = 80$,然后重新运行上面的代码,观察分布最终是否收敛到相同的稳态分布 。
370+ 例如,你可以尝试将所有公司的初始库存设置为 $X_0 = 20$ 或 $X_0 = 80$,然后重新运行上面的代码。
361371
362372``` {solution-end}
363373```
364374
365375``` {exercise}
366376:label: id_ex2
367377
368- 使用模拟的方法,估计一家初始库存为 $X_0 = 70$ 的公司在前50个时期内至少需要补充库存两次的概率 。
378+ 使用模拟的方法,计算初始库存为 $X_0 = 70$ 的公司在前50个时期内需要补货两次或以上的概率 。
369379
370- 为了获得统计上可靠的结果,请确保使用足够大的样本量 。
380+ 你需要较大的样本量才能得到准确的结果 。
371381```
372382
373383``` {solution-start} id_ex2
@@ -378,7 +388,7 @@ plt.show()
378388
379389同样地,由于计算量相对较大,我们编写了一个专门的函数而不是使用上面的类。
380390
381- 我们将利用并行计算来同时处理多家公司的模拟,以提高计算效率 。
391+ 我们还将利用公司之间的并行计算 。
382392
383393``` {code-cell} ipython3
384394@jit(parallel=True)
@@ -413,11 +423,11 @@ freq = compute_freq()
413423print(f"至少发生两次缺货的频率 = {freq}")
414424```
415425
416- 尝试将上面` @jit ` [ 装饰器 ] ( https://zhuanlan.zhihu.com/p/53666925 ) 中的 ` parallel ` 参数改为` False ` 。
426+ 尝试将上面` @jit ` 装饰器中的 ` parallel ` 参数改为` False ` 。
417427
418428根据你的系统配置,运行速度的差异可能会很大。
419429
420- (在我们的系统上运行速度提升了5倍! )
430+ (在我们的系统上运行速度提升了5倍。 )
421431
422432``` {solution-end}
423433```
0 commit comments