Monday, May 04, 2009

some notes

I was "trapped" in somewhere which is a gift from Lord Jesus.Im just here,to hacking.make a preparation for cultural mission that for glorify Him.Im going no where for next 6 months.stay here...be here...forget what i know at first.what's the purpose of my life?I have to answer it,thats why im here.Im searching the Tao(logos) from any fields what i can understand.math,computing,philosophy...oohh yeah~reformed theology is the best one.Thank to Von neumann,Alonzo Church,Alan Turning,Soren Kierkegarrd,Blaise Pascal,John Calvin,St Augestine,author of Hebrews(in new testament)......The Trinity God--Holy FATHER HOly SON HOly SpIrit.

People has necessary needs that not love,not money,not fame,even not the faith,but give me truth.

Happy hacking!my brothers!

首先谈谈哲学观对于我们认知事物的影响,认知科学的基础就是找出异同关系,道在最早时处于混沌状态,道要可道的第一步就是化分领域的界限,比如科学(sicence),哲学(philosophy),etc.而第二步则是探讨非科学(non-sicence),非哲学(non-philosophy),etc的这种"非我"的形态.从本质上,也是一种信息的传递,而在这一方法中又有四个必须面对的问题:
1,主体.进行认知过程的人.
2,客体.被进行认知过程的人进行认知的事物(包含上帝,自己,人和物质).
3,环境.进行认知的人必须被限定的范围内.
4,媒介.通过人的五官等媒介进行信息传递.

系统,即广义的硬件和广义的软件的复合;在认知系统的过程中就会有更加直接的方法可
以参考:
以计算主义在面对DNA配对关系问题为例,
1,观察.对DNA配对的本身进行观察.
2,实验.用物理的仪器对DNA进行实验.
3,推理.通过观察和实验建立有效的计算模型,他们假设了一个前提,即如果人类有一台计算
能力为2的78次方的"终极量子计算机",那这个问题是可解决的,反之既然.
4,计算.由于这个问题的计算量是3的500次方,因此放弃计算.

之后谈到了数学中的分类,大类主要分为:集合论,组合数学,数理逻辑,图论,代数结构.集合
论主要是研究确定行止的对象.而数理逻辑中又分为了几个主要的分支:
1,证明论;
2,公理集合论;
3,递归论;
4,模型论

之后谈到了数学的一些方法,比如分析,拓扑和概率.当然变分变法变是最有趣的一个思想试验,
我们无法观测到这个世界的本质一样,即蚂蚁以二维的方式无法观测到生活在三维空间的人类,而人类也无法理解更高层的世界.这个我想需要更多的了解了数学史可以有更加深入的思考.

之后谈到了中国先秦哲学<易经>对于现代数学的类比,道是无形的,道看似无为,却又无所不为.但站在人类有限理性的角度去认知道的本身是一件很难的事情,所以我们只能认识到那有限的"道,可道"(logy),却无法看清楚"非,常,道"(logos),在这种境况下古代的先哲们也有自己的方法去了解这个世界,即异同和对比的方法,简单的来讲,也就是先认知到混沌中的边界:阴和阳.

之后以此为基础去推导出这个宇宙的规律如下:
阳是physical,阴是metaphysical.
阳:阳,古字(正),可知.
阴:阳,古字(常),常态.
阳:阴,古字(奇),不可测度,cant measurable.
阴:阴,古字(浑),不可知.

阴和阳再与以上的结果对比,最后就产生了八卦:
乾,古字(天),集合A,辖域.
坤,古字(地),集合B隶属于集合A.
天地乃时空的描述.<老子>上讲"人法地,地法天,天法道,道法自然",也就是说站在人最低级的
位置,只需要地就可以作为人的尺度,而人透过对天地的认识建立了时空观,在希伯来旧约圣经
里谈到"地"时也指的是低级的价值和刻度,如"不要思念地上的事","人终归于尘土"即非永恒性的事物,而在犹太人的文化中探寻永恒性是重要的.

兑,古字(泽)
艮,古字(山)
道如流水行云,山和水的特性就想如此,和拓扑有类比的关系,外表变化无偿,而内部固定不变,
我们可以看到水是有形的,而它的形又不断的变化,但是它的本质是不会发生变化的,这种变化
就尤如阳和阴的转换,阳是主动的,而阴则是被动的.

震,古字(雷)
巽,古字(风)
雷和风代表这能量,前者的能量存在方式是离散的,至少以人的尺度来认知是这样,而风的能量
则是连续性的,此二者代表了能量的传递方式.

离,古字(日)
坎,古字(月)
日和月表示了信息的本身,日即太阳的周期从人的基本观察是每日一次,而月亮是每月一次,这
或许是命名的原因.在信息论当中,信息的改变频率越高,熵则越大,即信息量越大.新约圣经希伯来书讲到:"神既在古时借着众先知,多次多方的晓谕列祖,就在这末世,借着他儿子晓谕我们,又早已立他为承受万有的,也曾借着他创造诸世界.Hebrew 1:1--2".这里的"多方"英文是"various ways",而"多次"则是"many times",主动性的是"神",被动者是"列祖"对应"我们",媒介则是"众先知"对应"他儿子"(指耶酥基督),时间的刻度是"古时"对应"末世".various ways有点类似C++里的GP,更类似于lambda calculus,一个lambda的左结合可以接收任何的信息(广义上的lambda).

How does a mathematician describing the relationship?
1,words.eg,man and woman:a couple
pro:描述确切,用于写作.
con:不直观
2,graph theory.
pro:直观,用于授课.
con:元素较多后描述比较复杂
3,matrix.
pro:在计算机中表达方便,也易于在计算机中进行计算,用于写程序.
con:不直观,元素较多后描述复杂.

集合论中的关系,泛序关系
reflexive relation(自反关系):x R x,一个元素与自己的关系.
只要存在的元素就肯定有自反关系,对自我存在的一种关系的描述是
很重要的,比如人类就具备这种关系,经过了数千年的存在主义(Existentialism)哲学探讨至今基本分为2种:
1,主体性的观察的存在,即只要你能够明白(understand),认知(know)和相信(faith)的就是存在,不能明白,认知和相信的就是对主动认知的主体(人类)的不存在.

2,客观性的存在,即实在存在(existing theory),客观真理是存在的,客观真理是不由主动观察的主体(人类)的意志而变化,比如宇宙中最基本微粒的碰撞所形成的今天这个物质世界的事件在人类能够观察以前就已经存在.

不过以上2者到最终都必须面对一个极其困难但又是至关重要的问题,即存在的意义是什么?或者说存在的意义是谁赋于的?

symmetric relation(对称关系):x R y => y R x
比如兄弟关系,x是y的兄弟,而y肯定也是x的兄弟.

asymmetric relation(非对称关系):x R y
<和>都是属于这种关系,即x<> x=y
1>=1,1<=1,比如MD5的加密也是属于反对称关系,MD5先把原有的明文转化成密文,也生成一个效验sum,原文和密文其本质都是一样,但密文不能通过明文来进行比较,只能通过效验sum来比对. identity relation(恒等关系): 对角线上的所有的点. transitive relation(传递性关系):(x R y,y R z) => z R x
1<2<3,1<3> #t

(define func (lambda (n) (* n n)))
(eqv? x (lambda (n) (* n n))) => #f

(eqv? "hello" "hello") => #t

等价聚类的结果:商集
商化:U/R
积化:从不相交的集合组成新的set.
eg,{N} {1,2,3,4...}/7
1*7+3=10
2*7+3=17
3*7+3=24
=> {10,17,24...}/同余同关系R

分类对策:cond
eg:
(define pnz (lambda (x)
(cond
((> x 0) "positive")
((<> "is 0"

良序集合:有头元素的全序集合是良序集合(well-ordered set)

泛序关系:广泛的次序
eg:
'(5 (4 . (3 . ()))
(2 . (1 . ())))
=>(5 (4 3) (2 1))

we have done some type-transform test in computer.one of important is
that string->list then list-> if we want to convert string into vector.

逻辑Logic
关于历史上出现过的logic探讨:
1,古代中国的墨子对名和实的探讨,公孙龙对白马是马的一个名字的探讨.韩非子的"自相矛盾"的典故.

2,古代印度的因名学派对"宗,喻,名"的探讨.

3,古代希腊的亚里士多德(Aristotle)的逻辑学中的三段论进行了阐述,即大前提+小前提=结论.逻辑学遵守3个规律:
1,同一律,专注在同一个事情,不能偷换概念.
2,矛盾律,不能自相矛盾.
3,排中律,不能似是而非.eg,即不是男的也不是女的.

斯多葛学派的创始人是Zeno,他们最大的贡献是提出了命题和演绎逻辑.

逻辑学探讨的3个方面:
1,基础逻辑,探讨人的思维的规律.
2,原逻辑,探讨逻辑本身.
3,应用逻辑,比如电子上的数字逻辑.

逻辑的分类大体上分为:形式逻辑和辩证逻辑
形式逻辑又大体分为:演绎逻辑(Aristotle,Zeno)和归纳逻辑(Francis Bacon)
演绎逻辑大体分为:传统演绎逻辑和数理逻辑(用集合论来看待关系的演化)

逻辑的方法
1,概念
很多概念组成了2,判断
很多判断组成了3,推理

推理在遵守3律的情况下有3中形式:
1,演绎,即大前提+小前提=结果
2,归纳推理,一组同质的对象的观察.eg,如果观察100只大象都有鼻子,判断大象是有鼻子的.
3,类比推理,观察2类对象的性质.

The first paradox in math
逻辑的规则,在毕达哥拉斯看来万物的本源就是数,即所有的数可以用2个正数比
对(有理数).

此悖论是Hippasus(希伯斯)提出.

一个正方形,边为1,对角线为square root of 2(根号2),但是1~2+1~2!=~/2
eg,
反证法:
假设square root of 2 is rational number.
~/2 = p/q (p,q属于z)
z=p^2/q^2
p^2=2q^2
p^2是偶数
p*p是偶数
p是偶数
p=2r (r属于z)
p^2=4r^2

4r^2=2q^2=>2r^2=q^2
q也是偶数
q=2m (m属于z)
p=2r

p/q=2r/2m (可以归约)
所以~/2不是有理数

谈到了dedekind cut,即一条数轴上有无数多个数,用x把2边的书切分开,x可能是有理数,也可能不是.
1,x*x<2>2
可以逐步逼近的方式来求平方根.eg:
(define q3 (lambda (n x)
(cond
((= (* x x) n) x)
((> (* x x) n) (- x 0.001))
((< (* x x) n) (q3 n (+ x 0.001)))))) (q3 2 1.0)=>1.141
(q3 3 1.4)=>1.732
(q3 3 1.5)=>1.732
(q3 4 1.0)=>2

数理逻辑和可计算性理论有很大的关系.
lambda-calculus,作者是Alonzo Church
从数学的角度看:
A,y=x^2+2x+1
B,y=(x+1)^2
A=B

从存在性的角度看以上正确,但从构造性的角度看则不然,如下:
A,y=x*x+2*x+1
B,y=(x+1)*(x+1)

eg:
A,(+ (* x x)
(* 2 x)
1)

B,(* (x+1) (x+1))

所以轮到lambda出场了:
lambda-exp ::= {constant}
|{varibale}
|{lambda-exp1} {lambda-exp2}
|lambda {variable} . {lambda-exp}

两个lambda-exp有2种方式求值:
1,normal ordered:"fully expand and then reduce"
evaluate the lambda-exp1 at first

2,application ordered:"evaluate the arguments and then apply"
evaluate the parameter at first.

eg,a procedure which from sicp can provide a test for make sure whether the
interpreter is normal ordered or application ordered.
(define (p) (p))

(define (test x y)
(if
(= x 0) 0
y))

(test 0 (p))
=>if dead loop,it's application ordered.
app is (lambda (0 (p)))
=>0,it's normal ordered.

if we have a procedure which living in a Interpreter,it would be
maintained by sybolic table like below:
(define square (lambda (x) (* x x)))
---------------------------
|square|lambda(x) (* x x) |
|--------------------------
| |

what is algorithm?Aha,algorithm!
在有限的步骤内完成问题的求解.
real problem->philosophy thinking->math model->computing model->coding
glossary:indefinitely small=im
im>0,|x-A|
无穷小 2 无穷大

套区间,有自然数的特性.
induction:
1+2+3+...+n= n(n+1)/2

1,if n=1, 1= 1(1+1)/2
2,if n=k, 1+2+3+..+k= k(k+1)/2
3,n=k+1, 1+2+3+..k+(k+1),
k(k+1)/2+2(k+1)/2= k(k+1)+2(k+1)/2
=(k+1)(k+2)/2=> n(n+1)/2

组合:C(n r),r<=0,n中选择r个元素. 排列:P(n r),r<=0 P(n r) C(n r) * r! C(n r) = n!/(n-r)! 1,2,3...r........n ------------------>
|__r___| |_(n-r)__|

eg:
(define tail-fac (lambda (x)
(let loop ((n x) (acc 1))
(if
(= n 0) 1
(if
(= n 1) acc
(loop (- n 1) (* n acc)))))))

(define fac (lambda (n)
(if
(= n 0) 1
(* n (fac (- n 1))))))

(define fib (lambda (n)
(cond
((= n 0) 0)
((= n 1) 1)
(else
(+ (fib (- n 1)) (fib (- n 2)))))))

(define tail-fib (lambda (x)
(let fib ((n x) (acc1 0) (acc2 1))
(if
(= n 0) 0
(if
(= n 1) acc2
(fib (- n 1) acc2 (+ acc1 acc2)))))))

the recognize process:material->sybolic system->new recognition
自然数,是人类认知最直接的数,19世纪的德国数学家Leopold Kronecker曾经讲"God made the integers; all else is the work of man" (Bell 1986,p. 477).上帝创造了自然数,其他数都是人造的.自然数在圣经中也有严肃而有趣的联系,圣经中描述的三位一体(trinity)的上帝,三个位格分别是圣父,圣子和圣灵,在犹太人的先知赞美上帝时呼喊"圣哉!圣哉!圣哉!"也是3次,耶酥基督对于自我的存在性的实在和意义的宣称"我是道路,真理与生命".也是3,圣经中关于3的描述还不止于此,但关于在描述方向时就不是3而是4,4个方向:东,南,西,北;同时也有四季:春,夏,秋,冬.而表示绝对创造者本身的3和作为被造相对者的人类产生关系时,即3+4=7,一个礼拜有7天,罗马帝国曾经尝试把一个礼拜搞成5天,结果把人们搞的都不想做事情(和前新教伦理有关系),斯大林也尝试把一个礼拜搞成10天,结果弄的不少苏联人得了累的要死.7天是最适合人类的,圣经中7的描述也有很多,包括对教会,节日(7年释放一次奴隶).同时7在希伯来文化中也代表一个完整的过程.自然数7到今天也影响着我们,一个礼拜仍然是7天,Intel的员工都盼望着7年一次的长假,etc.我们对自然数的确是有先验式的敏感,所以很多方法论也由此而生,eg:尝试把数学上的描述都能够简化到用自然数系.

the basic Primitive recursion function:
1,Constant function:The 0-ary constant function 0 is primitive
recursive.(if n =1)

2,Successor function:The 1-ary successor function S, which returns the
successor of its argument (see Peano postulates), is primitive
recursive. That is, S(k) = k + 1.

3,Projection function:For every n≥1 and each i with 1≤i≤n, the
n-ary projection function Pin, which returns its i-th argument, is
primitive recursive.

General Function:
1,前继,n!(fac)
2,后续,(n-1)!(fac (- n 1))
3,测零,(= n 0)
4,不动点算子,1

eg:
(define a (lambda (n)
(if (= n 0) 1
(* n (fac (- 1))))))

Church-Turning thesis
1,Church's thesis: "Every effectively calculable function (effectively
decidable predicate) is general[1] recursive" (Kleene 1952:300)
可计算函数都可以用一般递归函数构造.

2,Turing's thesis: "Turing's thesis that every function which would
naturally be regarded as computable is computable under his
definition, i.e. by one of his machines, is equivalent to Church's
thesis by Theorem XXX." (Kleene 1952:376)
一切递归函数可以用一般递归函数(1..4)来构造

reduce-law:
alpha:λx.exp-->λy.exp [y/x]
beta: <λ-exp1><λ-exp2>--> <λx.exp1> [/x]
eta:(λx.exp)y--> λ-exp

bound variable:
((lambda (n) (* n n)) 6)=>36
(let ((n 6)) (* n n))=>36

block structure里只能通过arguments作为外部能见的接口.

regular-exp cant be reduced.

Church-Rosser TH I
is x--(reduce)->y,so x->z->y.存在性

Church-Rosser TH II
x--->y.构造性

Ackerman function
{n+1 if m=0
A(m,n)={A(m-1,1) if m>0 and n=0
{A(m-1,A(m,n-1)) if m>0 and n>0

(define ackermann (lambda (m n)
(cond
((= m 0) (+ n 1))
((and (> m 0) (= n 0)) (ackermann (- m 1) 1))
((and (> m 0) (> n 0)) (ackermann (- m 1)
(ackermann m (- n 1)))))))

ackermann(1,5)

(a 0 (a 1 4))
(a 0 (a 0 (a 1 3)))
(a 0 (a 0 (a 0 (a 1 2))))
(a 0 (a 0 (a 0 (a 0 (a 1 1)))))
(a 0 (a 0 (a 0 (a 0 (a 0 (a 1 0))))))
(a 0 (a 0 (a 0 (a 0 (a 0 (a 0 1))))))
(a 0 (a 0 (a 0 (a 0 (a 0 2)))))
(a 0 (a 0 (a 0 (a 0 3))))
(a 0 (a 0 (a 0 4)))
(a 0 (a 0 5))
(a 0 6)
7

scheme中lambda表达式的形参表有3种接收参数的`方式:
1,定长,eg:
(define square (lambda (n) (* n n)))
(square 5)=>25

2,全定长,eg:
(define foo (lambda x x))
(foo 1 2 3)=>(1 2 3)

3,半定长,eg:
(define f (lambda (x . y) (* x x)))
(f 10 20 30)=>100

(define f (lambda (x y . z)
(begin
(display (+ x y))
(newline)
(car z))))
(f 20 30 10 20 30)=>50
10
此方式在C语言中的printf函数是很好的体现.

tail-recursive version of n!
(define tail-fac (lambda (x)
(let fib((n x) (result 1))
(if (= n 0) result
(fib (- n 1) (* result n))))))

odd? or even?
(letrec ((odd? (lambda (n)
(if (= n 0) #f
(even? (- n 1)))))
(even? (lambda (n)
(if (= n 0) #t
(odd? (- n 1))))))
(odd? 98))
=>#f

count n...1 or count n...1
(define Nto1 (lambda (n)
(let count((x n))
(if (= x 0) x
(begin
(display x)
(newline)
(count (- x 1)))))))

(define 1toN (lambda (n)
(let count((x 1))
(if (<= n x) x
(begin (display x)
(newline)
(count (+ x 1)))))))

;Exercise 1.3. Define a procedure that takes three numbers as arguments and ;returns the sum of the squares of the two larger numbers.

(define square (lambda (x) (* x x)))

(define sum-of-square (lambda (a b)
(+ (square a) (square b))))

(define sum-2-square (lambda (x y z)
(cond
[(and (<= x y) (<= x z)) (sum-of-square y z)]
[(and (<= y x) (<= y z)) (sum-of-square x z)]
[(and (<= z x) (<= z y)) (sum-of-square x y)] )))

(define sum-2-square2 (lambda (x y z)
(cond
((and (>= x z) (>= y z)) (sum-of-square x y))
((and (>= x y) (>= z y)) (sum-of-square x z))
((and (>= y x) (>= z x)) (sum-of-square y z)))))

;Exercise 1.12. The following pattern of numbers is called Pascal's triangle.
; 1
; 1 1
; 1 2 1
; 1 3 3 1
; 1 4 6 4 1
;The numbers at the edge of the triangle are all 1, and each number inside the triangle is the sum of
;the two numbers above it.35 Write a procedure that computes elements of Pascal's triangle by means
;of a recursive process.

(define pascal (lambda (x y)
(cond
((= x y) 1)
((= x 1) 1)
((= x 2) 1)
((= y 1) 1)
(else
(+ (pascal (- x 1) y) (pascal (- x 1) (- y 1)))))))

;Exercise 1.30. The sum procedure above generates a linear recursion. The procedure can be
;rewritten so that the sum is performed iteratively. Show how to do this by filling in the missing
;expressions in the following definition:
;(define (sum term a next b)
; (define (iter a result)
; (if
;
; (iter )))
; (iter ))

(define (inc n) (+ n 1))
(define (idents x) x)
(define (sum-int a b)
(sum idents a inc b))

(define (sum2 term a next b)
(let iter((a a) (result 0))
(if (> a b)
result
(iter (next a) (+ result (term a))))))

(define (inc n) (+ n 1))
(define (idents x) x)
(define (fac n)
(product2 idents 1 inc n))
;recursive
(define product (lambda (term a next b)
(if (> a b)
1
(* (term a) (product term (next a) next b)))))
;iterative
(define product2 (lambda (term a next b)
(let loop((a a) (result 1))
(if (> a b)
result
(loop (next a) (* result (term a)))))))

No comments: