您的位置:首页 > 大数据 > 人工智能

关于“代数结构(algebraic structure)”的一些原创性的理解。

2007-07-17 10:15 435 查看
写这篇文章的目的是加深对于"代数结构(algebraic structure)"这个概念的理解。

我先给出一个比较正式的关于代数结构的论述,然后用我自己的语言来谈论一些我的看法。在en.wikipedia.org这个网站上,对于代数结构的论述如下:“代数结构包含一个或多个集合以及在这些集合之上的一个或多个运算,这些运算满足封闭性,且满足某些公理”。上面这段用双引号括起来的中文所对应的英文如下:"a algebraic structure consists of one or more sets closed under one or more operations,satisfying some axiom."。

根据我自己的理解,代数结构就是一个2元组<S,OP>。此二元组中的第一个元素S为一个集合;其中的第二个元素OP也为一个集合,集合OP中的元素为一些运算符,一般来说这些运算符是二元运算符,这些运算符的运算对象为S中的元素,运算的结果依然是S中的元素。

我们可以定义自己的代数结构,自己定义代数结构意味自己要去做两个方面的事情。首先要给出一个集合,例如我可以给出一个集合S,其所包含的三个元素分别为自然数1,2,3;然后我再给出一个集合OP,这个集合中只包含一个运算符#。我们的工作到此结束了吗?答案是没有。因为虽然我们给出集合OP,并且说明了这个集合只包含一个运算符#,但是我们并没有说明这个运算符#所代表的运算是什么。下面我来定义#所代表的运算,表达式a#b的值是a和b中的较大者,其中a和b是S中的元素。我的定义完成了。OK,当你理解我所下的定义后,你应该具备这种能力:当把#所代表的运算施加到集合S中的任何两个元素之上时,你应该知道运算的结果是什么。

上面就是我自己所定义的一个具体的代数结构,这是我生平第一次定义出自己的代数结构,为了纪念此事,我将这个具体的代数结构起个名字“叶子”。

我们再来重温一下我的叶子。我的叶子是一个二元组<S,OP>,其中的第一个元素为集合S={1,2,3},其中的第二个元素为集合OP={#},运算符#所代表的运算是求两数中较大者的运算。

我可以看出我的叶子的确是一个代数结构,因为使用#对S中的两个元素进行计算的结果依然是S中的元素。换句话说运算符#具有封闭性(closure)这个性质。

我们再来看一下运算符#是否具有结合律(associative law)这个性质,也就是说来看一下(a#b)#c是否等于a#(b#c),如果你去验证一下的话,你应该得出等式(equation)(a#b)#c=a#(b#c)是恒等式(identity)。也就说运算符具有结合律这个性质。

对群论(group theory)有所了解的朋友,应该知道我所定义的叶子不仅仅是一个代数结构了,而升级为半群(semigroup)了,因为其中的运算符#具有封闭性这个性质。

我们再来看一下,S中是否存在单位元素(identity element),我们可以看出1是单位元素,因为x#1=1#x=x,其中x是S中的元素。

我们再来看一下,对于S中的任何一个元素而言是否存在一个元素,使得这两者进行#运算的结果为单位元素,也就是为1。如果你去验证的话,会发现对于S中的某些元素而言,并不存在一个元素使得两者进行运算的结果为1.

到此为止,我们的分析就要结束了,我的叶子(leaf)是一个代数结构,说得再具体些是一个半群(semigroup),但不是一个群。

最后想告诉大家的是,大家可以定义自己的代数结构,然后来看一下,自己所定义的代数结构是一个群(group)呢,还是一个环(ring),还是一个域。等等。

如果您看到我的这篇文章并认为对你来说有价值,或者认为其中的内容有偏差或错误,都请发表您的意见,谢谢,希望我们一起在学习的过程中进步。

叶子落了(07年7月17日10点10分)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: