随机规划:求解报童问题期望值模型的算法方案

文章目录

  • 1 引言
  • 2 数学模型
  • 3 报童问题
    • 3.1 直接最优化
    • 3.2 样本均值近似
    • 3.3 两阶段规划
    • 3.4 结果分析
  • 4 在线求教
  • 5 相关阅读

1 引言

上一篇关于不确定优化的文章(不确定优化入门:用简单实例讲明白随机规划、鲁棒优化和分布鲁棒优化 )发表后,被部分大佬认为是一篇科普文,有点诚惶诚恐,毕竟我从今年才开始认真学习不确定优化,水平还很有限。

秉承着先了解大概框架再深入学习各类算法细节的心态,我在那篇文章中,用简化版的报童问题,把求解不确定优化的各类算法方案做了直观上的实践和比较,完成了算法框架的初步梳理。

现在,已经到学习算法方案详细设计的阶段了。

我的学习路径一如既往的是从简单到复杂,所以,本文要研究的问题是随机规划中最简单的一类:决策变量只有1个,不确定参数也只有1个且分布函数已知;解决问题的基本思路是最优化其目标函数的期望值,有些书中也称之为期望值模型。

正文见下。

2 数学模型

先看一下确定性优化模型
min f ( x ) s.t g j ( x ) ≤ 0 , j = 1 , 2 , . . . , N \text{min} \quad f(\pmb x) \\ \text{s.t} \quad g_j(\pmb x)≤0, j=1,2,...,N \\ minf(x)s.tgj(x)0,j=1,2,...,N
其中 x \pmb x x是决策变量, f f f是目标函数表达式, g g g是约束条件表达式。

增加随机变量 ξ \pmb \xi ξ后,上述模型就变为不确定优化模型
min E [ f ( x , ξ ) ] s.t E [ g j ( x , ξ ) ] ≤ 0 , j = 1 , 2 , . . . , N \ \text{min} \quad E[f(\pmb x,\pmb \xi)] \nonumber \\ \text{s.t} \quad E[g_j(\pmb x,\pmb \xi)]≤0, j=1,2,...,N \nonumber \\  minE[f(x,ξ)]s.tE[gj(x,ξ)]0,j=1,2,...,N
式中, E E E表示期望,假设 ξ \pmb \xi ξ的概率密度函数为 ϕ ( ξ ) \phi(\pmb \xi) ϕ(ξ),目标函数和约束条件的表达式可以表示为
E [ f ( x , ξ ) ] = ∫ f ( x , ξ ) ϕ ( ξ ) d ξ E [ g j ( x , ξ ) ] = ∫ g j ( x , ξ ) ϕ ( ξ ) d ξ E[f(\pmb x,\pmb \xi)]=\int f(\pmb x,\pmb \xi)\phi(\pmb \xi)d\pmb \xi \\ E[g_j(\pmb x,\pmb \xi)]=\int g_j(\pmb x,\pmb \xi)\phi(\pmb \xi)d\pmb \xi E[f(x,ξ)]=f(x,ξ)ϕ(ξ)dξE[gj(x,ξ)]=gj(x,ξ)ϕ(ξ)dξ
如果 ξ \pmb \xi ξ是离散随机变量,且其分布函数为 P ( ξ = ξ i ) = θ i , i ∈ I P(\pmb \xi=\pmb \xi_i)=\theta_i,i\in I P(ξ=ξi)=θi,iI,目标函数和约束条件的表达式可以表示为
E [ f ( x , ξ ) ] = ∑ i ∈ I θ i f ( x , ξ i ) E [ g j ( x , ξ ) ] = ∑ i ∈ I θ i g j ( x , ξ i ) E[f(\pmb x,\pmb \xi)]=\sum_{i\in I} \theta_i f(\pmb x,\pmb \xi_i) \\ E[g_j(\pmb x,\pmb \xi)]=\sum_{i\in I} \theta_i g_j(\pmb x,\pmb \xi_i) E[f(x,ξ)]=iIθif(x,ξi)E[gj(x,ξ)]=iIθigj(x,ξi)

3 报童问题

有了模型后,我们还需要知道用什么算法可以求解。

本节主要使用报童问题作为实例,来阐述在决策变量只有1个、不确定参数也只有1个的情况下,可以得到最优解的各类算法方案。

报童问题可以描述为:报童每天需要采购一定数量的报纸用于当天的销售。已知每份报纸的成本价 c = 5 c=5 c=5,销售价 p = 8 p=8 p=8,需求量 d d d是个不确定参数,通过历史的数据可知其分布服从正态分布,均值是 μ = 100 \mu=100 μ=100,方差为 σ = 20 \sigma=20 σ=20,如果当天卖不完,会按回收价 s = 4 s=4 s=4将未卖完的报纸卖给回收站。

现在需要确定报童的最佳订购量 x x x,使得报童的净收入 θ ( x ) \theta(x) θ(x)最大化。 θ ( x ) \theta(x) θ(x)的表达式为
θ ( x ) = p ⋅ E [ min ⁡ ( x , d ) ] + s ⋅ E [ max ⁡ ( x − d , 0 ) ] − c x \theta(x)=p·E[\min(x,d)]+s·E[\max(x-d,0)]-cx θ(x)=pE[min(x,d)]+sE[max(xd,0)]cx
第一项是售卖报纸的收益,第二项是回收报纸的收益,第三项是购买报纸的成本。

3.1 直接最优化

常规求解思路是:对 θ ( x ) \theta(x) θ(x)求导使其梯度等于0,即可得到最佳 x x x

但由于公式中涉及到 x x x d d d的大小判断, θ ( x ) \theta(x) θ(x)的导数并不好算,为此,可以先把上面的 x x x转换成一个新的变量 x − d x-d xd,接着转变 θ ( x ) \theta(x) θ(x)的表达式。

  1. 对于 min ⁡ ( x , d ) \min(x,d) min(x,d)项,将其做如下转化
    min ⁡ ( x , d ) = d − max ⁡ ( d − x , 0 ) \min(x,d)=d-\max(d-x,0) min(x,d)=dmax(dx,0)
    上式的正确性可以分 x > d x>d x>d x ≤ d x≤d xd来依次验证: x > d x>d x>d时,左边为 d d d,右边为 d − 0 = d d-0=d d0=d x ≤ d x≤d xd时,左边为 x x x,右边为 d − ( d − x ) = x d-(d-x)=x d(dx)=x

  2. 对于 s ⋅ E [ max ⁡ ( x − d , 0 ) ] s·E[\max(x-d,0)] sE[max(xd,0)]项,不需要调整。

  3. 对于 c x cx cx项,将其做如下转化
    c x = c ( x − d ) + c d = c max ⁡ ( d − x , 0 ) − c max ⁡ ( x − d , 0 ) + c d cx=c(x-d)+cd=c\max(d-x,0)-c\max(x-d,0)+cd cx=c(xd)+cd=cmax(dx,0)cmax(xd,0)+cd
    上式的正确性也可以分 x > d x>d x>d x ≤ d x≤d xd来验证,这里就不赘述了。

  4. 将上述三式重新组合,目标函数 θ ( x ) \theta(x) θ(x)的表达式变为
    θ = ( p − c ) ⋅ E ( d ) − { ( p − c ) ⋅ E [ max ⁡ ( d − x , 0 ) ] + ( c − s ) ⋅ E [ max ⁡ ( x − d , 0 ) ] } \theta=(p-c)·E(d)-\{(p-c)·E[\max(d-x,0)]+(c-s)·E[\max(x-d,0)]\} θ=(pc)E(d){(pc)E[max(dx,0)]+(cs)E[max(xd,0)]}
    定义 b = p − c , h = c − s , α = b ⋅ E [ max ⁡ ( d − x , 0 ) ] + h ⋅ E [ max ⁡ ( x − d , 0 ) ] b=p-c,h=c-s,\alpha=b·E[\max(d-x,0)]+h·E[\max(x-d,0)] b=pc,h=cs,α=bE[max(dx,0)]+hE[max(xd,0)],则最大化 θ \theta θ等价于最小化 α \alpha α

事实上, α \alpha α中的两个表达式也可以分别理解为:因购买量过少导致的脱销损失和因购买量过多导致的滞销损失。此外,从上式中还可以看出,由于 α ≥ 0 \alpha≥0 α0,所以考虑不确定后,期望收益肯定不高于不考虑不确定时的收益值。

为了求得最小化的 α \alpha α,将其表达式求导并令其等于0
b ⋅ E ∂ max ⁡ ( d − x , 0 ) ∂ x + h ⋅ E ∂ max ⁡ ( x − d , 0 ) ∂ x = 0 b·E\frac{\partial \max(d-x,0)}{\partial x}+h·E\frac{\partial \max(x-d,0)}{\partial x}=0 bExmax(dx,0)+hExmax(xd,0)=0
需要注意的是,一维求导一般用 d x dx dx就可以,但是本文已经使用 d d d表示需求量,为了区分,此处使用了 ∂ x \partial x x的形式。

先看第一项。 x ≥ d x ≥ d xd时, max ⁡ ( d − x , 0 ) = 0 \max(d-x,0)=0 max(dx,0)=0,对 x x x求导后是0;当 x < d x < d x<d时, max ⁡ ( d − x , 0 ) = d − x \max(d-x,0)=d-x max(dx,0)=dx,对 x x x求导后是-1。设 x x x的分布概率为 P ( x ) P(x) P(x),第一项可以表示为
b ⋅ E ∂ max ⁡ ( d − x , 0 ) ∂ x = b ∫ x min ⁡ d P ( x ) ⋅ ( − 1 ) d x = − b P r ( x < d ) = − b [ 1 − P r ( d ≤ x ) ] b·E\frac{\partial \max(d-x,0)}{\partial x}=b\int _{x_{\min}}^d P(x)·(-1)dx=-bPr(x < d)=-b[1-Pr(d≤x)] bExmax(dx,0)=bxmindP(x)(1)dx=bPr(x<d)=b[1Pr(dx)]
式中, P r ( d ≤ x ) Pr(d ≤ x) Pr(dx)为累积分布函数。

同理,可以求得第二项为的结果为
h ⋅ E ∂ max ⁡ ( x − d , 0 ) ∂ x = h P r ( d ≤ x ) h·E\frac{\partial \max(x-d,0)}{\partial x}=hPr(d≤x) hExmax(xd,0)=hPr(dx)
将上述两式带回梯度值等于0的等式约束中,可以得到
P r ( d ≤ x ) = b b + h = p − c p − s Pr(d≤x)=\frac{b}{b+h}=\frac{p-c}{p-s} Pr(dx)=b+hb=pspc

这里还有个小的点需要注意,我们要计算的是 P r ( d ≤ x ) Pr(d≤x) Pr(dx),而不是 P r ( x ≤ d ) Pr(x≤d) Pr(xd)。虽然 x x x是决策变量,但是随机变量是 d d d,后续还需要根据 d d d的累积分布函数值反求 x x x

根据之前的定义, b = 1 , h = 3 b=1,h=3 b=1,h=3,此时最优解满足
P r ( d ≤ x ) = b b + h = 0.75 Pr(d≤x)=\frac{b}{b+h}=0.75 Pr(dx)=b+hb=0.75

调用如下代码,可以反算出 x = 113.49 x=113.49 x=113.49

IN [40]: import scipy
IN [41]: scipy.stats.norm.ppf(0.75, loc=100, scale=20)
Out[41]: 113.48979500392163

3.2 样本均值近似

用最优化的方法推导最优解的解析表达式,虽然优雅,但是对数学的要求比较高,而且如果问题复杂度提升了,能否推导出来都是一个问题。

既然如此,数值的方法就也值得一试。其中,最常见的方法,就是样本均值近似。在该方法中,通过抽样的方式把随机变量转变为一组离散参数,这样就可以把不确定优化问题转化为确定优化问题。

以下为使用样本均值近似实现不确定优化的具体代码。首先使用正态分布随机产生100000个 d d d值,然后设置决策变量范围为80~120,依次计算不同决策变量值下的总收益,并将最优解保留下来。

import numpy as npif __name__ == '__main__':# 报童模型参数c = 5s = 4p = 8# 需求分布参数mu = 100sigma = 20d = np.random.normal(mu, sigma, 100000)# 最优解best_f = 0best_x = 0# 遍历所有决策变量x:范围80~120for cur_x in range(80, 120):cur_f = 0# 需求参数for cur_d_index in range(len(d)):cur_d = d[cur_d_index]# 计算当前决策变量和当前需求值时的值cur_f += p * min(cur_x, cur_d) + s * max(cur_x - cur_d, 0) - c * cur_x# 更新最优解if cur_f > best_f:best_f = cur_fbest_x = cur_xprint('best_x: {}, best_f: {}.'.format(best_x, best_f / len(d)))

运行上述代码后,可以得到最佳订购量是113,该值和解析推导的结果是吻合的。

best_x: 113, best_f: 274.4170922340697.

3.3 两阶段规划

相比直接求解原模型,两阶段规划是更常见的求解随机规划问题的方法。该方法在建模时,会把原问题划分为两个阶段,通常第一阶段不包含随机变量,第二阶段包含随机变量。

在报童问题中,第一阶段是:在观测到实际需求 d d d之前,就需要确定订货量 x x x,目标函数表达式为
− c x + E [ Q ( x , d ) ] -cx+E[Q(x,d)] cx+E[Q(x,d)]
此处, E [ Q ( x , d ) ] E[Q(x,d)] E[Q(x,d)]是第二阶段的收益,目前未知,暂时用一个表达式代替。

到了第二阶段,需求量变为已知,此时 x x x也已经确定, E [ Q ( x , d ) ] E[Q(x,d)] E[Q(x,d)]的表达式就明确了
E [ Q ( x , d ) ] = p ⋅ E [ min ⁡ ( x , d ) ] + s ⋅ E [ max ⁡ ( x − d , 0 ) ] E[Q(x,d)]=p·E[\min(x,d)]+s·E[\max(x-d,0)] E[Q(x,d)]=pE[min(x,d)]+sE[max(xd,0)]

把上式带入上上式后,我们发现,和直接建模的目标函数表达式是一模一样的,看起来好像没啥区别。这主要是因为本文所用实例的问题维度比较低,如果问题复杂度变高,两阶段规划模型和原模型就会不一样。后续文章肯定还会再讨论该方案,此处暂时就不再深入了。

3.4 结果分析

前面三节给出了求解期望值模型的三种算法方案,本节针对优化结果再做一些简单分析。

如果不考虑随机性,最优订购量是100,收益是300;考虑随机性后,最优订购量是113,预期收益是274。

预期收益降低,在“解析推导”章节中已经说明了原因,此处不再赘述;本节着重理解为什么考虑随机性后最优订购量增会高于100。

事实上,当 x < d x < d x<d时,脱销损失的系数值 h = 3 h=3 h=3,而 x > d x > d x>d时,滞销损失的系数值 b = 1 b=1 b=1。由于目标函数是最小化脱销损失+滞销损失,所以最优解会高于需求量均值 d = 100 d=100 d=100,可以理解为:宁愿滞销、不能脱销,即宁愿多赔,不能少赚。

如果调整模型参数为 p = 6 , s = 3 p=6,s=3 p=6,s=3,此时滞销损失系数值高于脱销损失系数值,最优订购量小于100,变成91,即宁愿少赚,不能多赔。

4 在线求教

关于文章主题的内容,到这里已经结束了。本节主要是针对我在学习不确定优化过程中,遇到的一些困扰,进行在线求教,有愿意帮忙的大佬可以直接后台联系我。

(1) 需要帮忙勘误。国内关于不确定优化的经典教材或视频教程偏少,我自己也是边学边总结,很担心文章中的一些认知和理解有问题,会误导大家,所以迫切需要这个方向的大佬在我发文前帮忙做一下免费勘误。

(2) 需要RSOME指导。之前有个RSOME的讲座,主要讲的是如何利用RSOME求解鲁棒优化和分布鲁棒优化问题,当时主讲人的意思是RSOME也能用于求解随机规划问题。我目前还没用过RSOME,但很想实践一下并将其优化结果和代码添加至文章中,所以需要有擅长RSOME的大佬帮忙指导一下内容或方向。

在此感谢!

5 相关阅读

报童问题:https://www.jianshu.com/p/dfac740faa34

报童模型两阶段表示:https://blog.csdn.net/robert_chen1988/article/details/79350624

报童问题详细推导及利用Python的SAA方法求解:https://blog.csdn.net/zzzssszzzzsz/article/details/119875340

报童模型——如何做一次性采购的供给决策?:https://www.jianshu.com/p/6c7858159898

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/784076.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

道可云元宇宙每日资讯|工信部:加快推动大模型等AI赋能制造业发展

道可云元宇宙每日简报&#xff08;2024年3月27日&#xff09;讯&#xff0c;今日元宇宙新鲜事有&#xff1a; 江苏无锡设立5000万元算力券资金 近日&#xff0c;无锡市算力赋能人工智能产业发展暨算力应用政策发布会召开&#xff0c;《关于加快推进算力发展和应用的实施意见》…

Vue3+Vite Nginx部署 跨域

打包项目 webstorm打开项目之后&#xff0c;在Terminal执行打包命令 pnpm run build:prod 复制到Nginx 打包完成之后,生成的包在根目录dist&#xff0c;把dist目录拷贝到Nginx放网站目录下&#xff1a;\nginx-1.25.2\html\divided &#xff0c;dist改名了divided 修改配置…

基于Java+SpringBoot+vue仓库管理系统设计与实现

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

归并排序---分治法

1、算法的概念 归并排序&#xff1a;是创建在归并操作上的一种有效的排序算法。算法是采用分治法的一个非常典型的应用&#xff0c;且各层分治递归可以同时进行。归并排序的思路简单&#xff0c;速度仅次于快速排序&#xff0c;为稳定排序算法&#xff0c;一般用于对总体无序&…

2-Jquery层次选择器

一、选择题 1. 要选择ID为parent的元素下的所有直接子元素<div>&#xff0c;应使用哪个选择器&#xff1f; A. $("#parent > div") B. $("#parent div") C. $("#parent .div") D. $("#parent div") 答案&#xff1a; A 2…

鸿蒙OS开发实战:【网络管理HTTP数据请求】

一、场景介绍 应用通过HTTP发起一个数据请求&#xff0c;支持常见的GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT方法。 二、 接口说明 HTTP数据请求功能主要由http模块提供。 使用该功能需要申请ohos.permission.INTERNET权限。 涉及的接口如下表&#xff0c;…

Nest安装及使用~

前提条件 请确保您的操作系统上安装了 Node.js&#xff08;版本 > 16&#xff09; &#x1f4da;要查看指南&#xff0c;请访问 https://docs.nestjs.com/ &#x1f4da;要查看中文 指南&#xff0c; 请访问 https://docs.nestjs.cn/ $ node -v v16.18.1 $ npm -v 7.x.x安…

基于YOLOV8+Pyqt5光伏太阳能电池板目标检测系统

1、YOLOV8算法 YOLOv8 是当前效果较好的目标检测 算法&#xff0c;它的核心网络来源于 DarkNet-53&#xff0c;该网络初次在 YOLOv3[11] 中被引入&#xff0c;并深受 ResNet[12] 的影响。DarkNet-53 使用了残差机制&#xff0c;并连续添加了卷积模块来加强其功能性。 这 53 层…

搜索算法练习——图像填充问题

图像填充问题&#xff1a;给定一个二维网格和一个起始像素点&#xff0c;将与起始像素点相邻且颜色相同的像素点填充成目标颜色。 我们分别使用深度优先搜索&#xff08;DFS&#xff09;和广度优先搜索&#xff08;BFS&#xff09;来解决图像填充问题&#xff0c;即将与起始像…

微服务之分布式事务概念

微服务之分布式事务概念 CAP定理和Base理论 CAP定理 CAP定理在1998年被加州大学的计算机科学家 Eric Brewer 提出&#xff0c;分布式系统有三个指标&#xff1a; 一致性&#xff08;Consistency&#xff09;可用性&#xff08;Availability&#xff09;分区容错性&#xff…

线上系统时间慢八个小时的排查之路

最近有一个新项目上线&#xff0c;在上线时&#xff0c;突然发现时间与正常时间对不上&#xff0c;少了八个小时&#xff1b;但我丝毫不慌&#xff0c;这不就是个时区的问题吗&#xff0c;简单&#xff0c;但是这一次它给我深深的上了一课&#xff0c;一起来看整个排查过程吧。…

交替子数组计数 - 力扣题解

⭐简单说两句⭐ ✨ 正在努力的小新~ &#x1f496; 超级爱分享&#xff0c;分享各种有趣干货&#xff01; &#x1f469;‍&#x1f4bb; 提供&#xff1a;模拟面试 | 简历诊断 | 独家简历模板 &#x1f308; 感谢关注&#xff0c;关注了你就是我的超级粉丝啦&#xff01; &…

HarmonyOS实战开发-如何实现一个简单的健康生活应用(下)

获取成就 本节将介绍成就页面。 功能概述 成就页面展示用户可以获取的所有勋章&#xff0c;当用户满足一定的条件时&#xff0c;将点亮本页面对应的勋章&#xff0c;没有得到的成就勋章处于熄灭状态。共有六种勋章&#xff0c;当用户连续完成任务打卡3天、7天、30天、50天、…

MySQL中如何进行多表查询

目录 一、子查询 1.什么是子查询 2.注意事项 二、联结查询 1.什么是联结 2.内部联结&#xff08;等值联结&#xff09; ①WHERE语句 ②ON语句 3.自联结 4.自然联结 5.外部联结 三、组合查询 1.什么是组合查询 2.UNION规则 *本节涉及概念来源于图灵程序设计丛书&a…

GUN C/C++ (GCC/CLANG) 对于 __int128_t (128位有符号大整数的扩展支持平台限制)

鉴于我们对于GCC&#xff0c;在多个CPU目标平台上适用 __int128&#xff08;GCC扩展&#xff09;兼容的情况&#xff0c;目前 __int128 仅限在编译64位可执行程序平台被支持。 本文将列出目标CPU平台的支援情况&#xff1a; X86 不支持&#xff08;i386、i686&#…

笔记: 数据结构与算法--时间复杂度二分查找数组

算法复杂度 不依赖于环境因素事前分析法 计算最坏情况的时间复杂度每一条语句的执行时间都按照t来计算 时间复杂度 大O表示法 n 数据量 ; f(n) 实际的执行条数当存在一个n0 , 使得 n > n0,并且 c * g(n) 恒> f(n) : 渐进上界(算法最坏的情况)那么f(n)的时间复杂度 …

【前端面试3+1】07vue2和vue3的区别、vue3响应原理及为什么使用proxy、vue的生命周期中在什么时期给接口发请求、【找出数组最大公约数】

一、vue2和vue3的区别 1.性能优化&#xff1a; Vue 3在性能方面有很大的提升&#xff0c;主要是通过虚拟DOM的优化和响应式系统的改进实现的。 虚拟 DOM 重构&#xff1a;Vue 3 中对虚拟 DOM 进行了重构&#xff0c;使得更新算法更加高效&#xff0c;减少了更新时的开销&#x…

14 - grace数据处理 - 泄露误差改正 - 空域滤波法(Mascon法)

@[TOC](grace数据处理 - 泄露误差改正 - 空域滤波法(Mascon法)) 空域法的基本思想是假设地面某区域的质量变化是由一系列位置已知、质量未知的质量块(小范围区域)引起的,那么将GRACE反演的结果归算到n个质量块上的过程就是泄露信号恢复的过程。个人理解是这样的:假定已知研…

gtsam::Pose3的compose()函数作用

#include <gtsam/geometry/Pose3.h> #include <iostream> int main(int argc, char** argv) {// B 的旋转量为绕 x 轴旋转 180 度gtsam::Pose3 B gtsam::Pose3(gtsam::Rot3(0, 1, 0, 0), gtsam::Point3(1, 2, 0));// A 的旋转量为绕 z 轴旋转 180 度gtsam::Pose3 A…

Linux零基础入门之华为欧拉系统安装

一、名词解释 Linux&#xff1f; Linux是一个开源的免费的操作系统&#xff0c;功能与windows一样。具有处理器管理&#xff0c;存储管理&#xff0c;设备管理&#xff0c;文件管理&#xff0c;作业管理等功能。 可以俗称为Linux操作系统&#xff0c;组织或个人&#xff0c;…