计算机科学中常用的数学公式(...)

计算机科学中涉及到的数学公式一般都很简单,难度远远低于纯数学。
但重要性,或许往往被忽视。

图灵机(Turing Machine)

图灵机 M = (Q,Σ,Γ,δ,q0,qaccept,qreject) ,其中的Q,Σ,Γ 为有限集合:
1、Q 是状态集合:对应程序自身的数据概念(数据建模、结构定义、对象定义…)
2、Σ 是输入字母表,其中不包含特殊的空白符:对应输入数据。
3、Γ 是带字母表,其中 Q∈Γ且Σ∈Γ:对应Q+Σ。
4、δ:Q×Γ→Q×Γ×{L,R}是转移函数,其中L,R 表示读写头是向左移还是向右移:对应程序中的api。
5、q0∈Q是起始状态:Q中的概念,类似开机上电状态,忽略。
6、qaccept是接受状态:Q中的概念,类似程序执行完毕,忽略。
7、qreject是拒绝状态,且qreject≠qaccept:Q中的概念,类似程序退出并返回错误码,忽略。

c语言形式:
int api(program_data, in_data,out_data); //进一步简化 int api(in_data,out_data);
δ转移函数api,eg:linux源码中的所有api
Q状态集合
program_data,eg:linux源码中的static struct …;
Γ带字母表Q+Σ,Σ 是输入数据in_data,eg:linux驱动注册op code和op api供用户使用。
qaccept、qreject==int返回值+out_data
δ(q)= (q’,L|R),其中{L,R}对应c语言顺序执行和非顺序执行(跳转)。

有限状态,状态有限,等价于问题可计算。并不是无解的问题。
可识别,对应的是c语言的基础类型定义和语法定义,编码人员、编译器、硬件之间达成共识。intel cpu指令集也是op code+op data构成。

信息熵(information entropy)

信息熵
信息理论的鼻祖之一Claude E. Shannon把信息(熵)定义为离散随机事件的出现概率。

加速比(Speedup Ratio)

加速比定义:S= Ts/Tp
Ts:串行执行时间
Tp:并行执行时间
Amdahl’s Law:
speedup=1/(1-P) (1)
speedup=1/(P/N+S) (2)
P = parallel fraction
N = number of processors
S = serial fraction.

speedup=1/(1-P)=1/(P/N+S) ==> S=1-P=P/N+S > P/N0
==> 以上公式(1)实际上是在假定公式(2)中N趋于无穷大。实际达不到公式(1)的理想状态。所以:建议采用公式(2)的计算方式。

效率efficiency=speedup / number of processors(or threads)
并行度Parallelism=总工作量/最长序列的工作量
计算密度Compute Density=执行的计算操作总数/数据传输量

渐近复杂度

大O符号表示算法的渐近复杂度,例如
O(n) 表示线性复杂度,
O(log n) 表示对数复杂度。

贝叶斯定理(Bayes’ theorem)

描述两个条件概率之间的关系,比如 P(A|B) 和 P(B|A)。
按照乘法法则,可以导出:P(A∩B) = P(A)*P(B|A)=P(B)*P(A|B)。
如上公式也可变形为: P(A|B)=P(B|A)*P(A)/P(B)。
贝叶斯公式又被称为贝叶斯定理、贝叶斯规则是概率统计中的应用所观察到的现象对有关概率分布的主观判断(即先验概率)进行修正的标准方法。
例如用于滤波,提高数据的稳定性(鲁棒性)。
计算机科学中常用的数学公式(...)_第1张图片
计算机科学中常用的数学公式(...)_第2张图片

马尔可夫链

马尔可夫链模型通常用来建模排队理论和统计学中的建模,还可作为信号模型用于熵编码技术,如算术编码(著名的LZMA数据压缩算法就使用了马尔可夫链与类似于算术编码的区间编码)。

伯努利分布(Bernoulli Distribution)

https://blog.csdn.net/weixin_44027021/article/details/127891943

标准差(standard deviation)

衡量时间的波动。标准差可以衡量一组数据的离散程度,即数据点相对于平均值的分散程度。标准差越大,表示数据的波动越大。
计算机科学中常用的数学公式(...)_第3张图片

f(芯片制程尺寸)==芯片最大速度

芯片制程越小,相同指令集成度更高,电子传输路径更短,单位算力功耗更低,运行频率更高。
本质上是芯片材料的物理固定极限属性问题。
类似晶振,常见的38.4MHz就是某种稳定材质的稳定振动频率,并不是想要什么基础频率就有什么。
延时、带宽,都与芯片制程尺寸存在某种固定不可变的客观物理关系。

Programs = algorithms + data

其实,这个公式并不是简单地描述程序的组成。
更重要的含义,在于强调图灵机的本质是op+data,op与data强相关,算法op变更意味着data也需要适应性地变更,反之亦然。
Programs = algorithms + data + (hardware)
对于复杂系统来讲,硬件hardware是程序中第三个强相关的元素。
然而,或许还有推论:
Programs = algorithms + data + (hardware)+(translater)+…
没有银弹,也没有完美的编译器,不同编译优化算法设计,意味着有一个最擅长的方向。
chatgpt、ai、agi都不会是完美的,真实宇宙的复杂性,数学层面的不完备性,注定了人类始终有一定的用武之地。

待续

你可能感兴趣的:(算法,图灵机)