2009-05-01 02:35
(由于粒子滤波算法是同时应用蒙特卡洛和贝叶斯理论的产物,所以今天先介绍这两种方法。本来计划一次都写完的,结果发现:内容又有点多,所以粒子滤波明天再说。)
今天,我们开始讨论和概率模型相关的智能算法。这类算法能解决的问题很多,包括模式识别(分类问题)、预测、决策等等。是非常具有实际应用价值的一类算法。
当然,这类算法体系也非常的庞大,尤其是其中涉及高深的数学原理的方法众多。但是,显然,我们要讨论的问题算法并不属于此类(很大原因是因为我概率挂了)。我们今天讨论的重点将放在:如果一个 |
2009-04-29 00:32
今天我们首先来讨论下著名的遗传算法。如上一篇所述,我们将基于对粒子群算法的认识,进而给出遗传算法的基本形式(如果没有看过前面内容的朋友最好还是先看下,这里就不重复介绍了)。
根据粒子群算法的描述,我们现在的算法已经有了一个种群,并且有了寻找前进方向的办法(看最优个体和群体),而且还有一个冲量来避免陷入局部最小和避免所有粒子高度集中。那么,我们怎么来继续改进我们的算法呢?
让我们来重新考虑一下所有基于对解集空间“试”的搜索算法面临的主要问题:我们的计算能力是有限的,所以我们 |
2009-04-28 11:31
(本片写完后写的的写在前面:本来想在这一回中,把优化问题的算法都介绍完,可是发现写完粒子群内容已经很多了,而且我也写累了,所以遗传算法、以及如何将实际问题抽象为优化问题的内容在下一次再讨论吧
好,闲话少说,直接进入本次正题。)
所谓优化问题,我们需要解决的是这样的一个问题:对于一个模型,我们已经有了对任意解的评价方法(称为评价函数),这个评价方法可以是一个函数表达式,同样也可以是一个环境、设备甚至一个人(即所谓的交互式XX算法,就是用人工评价代替函数评价)。那么,如果我们无法通过 |
2009-04-28 11:30
最近由于做毕业设计的关系,抽出了几天的时间又学习了一些比较热门的智能算法。发现身边不少朋友在学习这些算法的时候遇到了种种困难,所以想到了记录下自己学习时的一些体会和总结。一方面是作为一个笔记,以便以后自己翻看。另一方面,也算是半个教程,希望能够帮到正在各种算法中挣扎的朋友。
今天是第一篇,计划在这篇中对各种算法的应用情况做一个总结(也算是对后面章节要介绍的算法做一个广告吧),预计这个学习笔记系列要介绍的算法包括:人工神经网络、遗传算法、粒子群算法、蚁群算法、粒子滤波器;另外,我也打算 |
2007-02-25 05:17
今天晚上调的一个程序,让我很郁闷~
一个用C++写的一个类似操作系统的东西,可能写的有点复杂,程序有点长
用GCCAVR编译之后没什么问题,然后发现程序在16运行(包括16以下的)的时候不断复位
仔细调试之后(调了我N小时,疯了,主程序都没进呢就挂,只能看着汇编调)
发现居然在16下,数据区居然把堆栈冲了
这种问题编译器不报错!!!!我相当的郁闷!!!!
另外就是关于GCC编译器不支持NEW这个问题,同样很疯,还要自己实现类似的东西或干脆弄成全局的
好好的封装性全挂了~ |
2007-02-23 01:35
之前的几章介绍了一些和编程相关的技巧,从这一章开始,将开始介绍一些控制会用到的算法知识.
再次强调一下,由于篇幅限制,本文只对所有的技能进行一些最基本的介绍.本文中涉及到的知识都是需要一本专门的书籍才能让你能真正开始使用.
我写这些东西的目的只是让大家分享一下我的经验,让新手知道什么东西是对编程有用的,什么东西是到用的时候再学也不晚的,好了,闲话少说,下面开始~
1.数据结构及基本算法
毫无疑问,数据结构是所有程序员的必修课.其中,线形表,链表,队列,堆栈.树,排序,查找更是不可不会的. |
2007-02-21 15:46
4.设计模式 及 重构
设计模式自从被GoF(有中文译作"四人帮",四个非常牛X的人,已经挂了一个了)提出已经过了十多个年头了.设计模式实际上就是一些前人总结下来的经典设计经验,但自从它被正式提出后,其意义已经远不只是记录一些经验这么简单了.设计模式已经成为了设计时一种交流的语言了.
|
2007-02-20 05:41
3 UML(统一建模语言)
前两篇涉及的都是一些立刻可以开始实施的技能,但从这点开始可能就需要一定的学习时间和实际经验了.当然,老傅我在这里向你们保证,如果掌握之后你觉得没用的话~来矿大用板砖拍我
UML是现在程序员交流用的标准语言,也是设计过程中实实在在使用的设计工具.同时也是你进阶的必要条件.
在我的团队里,现在使用的设计流程就是几个人围者一块大白板画一人一根白板笔UML图.搞定以后用数码相机拍下来然后开始编码~
当然,作为单片机程序员,我们没有必要掌握UML所有的内容,下面我 |
2007-02-20 00:22
2 测试
首先说明一点,这个所说的测试虽然是出自软件行业中的测试驱动等概念,但可能有很大的出入.我这里提出的方法只是我在几年实际编程中总结出适合单片机编程所需要的程度.
提到测试大家可能想到的方法就是一气呵成的把代码写完然后开始调试.
但以我实际的经验,这样书写代码会带来2个主要的问题:
1.错误定位复杂,往往一个不知所云的错误会让你对着代码看一下午不名所以然
2.无用代码很多.往往因为一个小错误导致了你大段代码变成了无用代码
想解决这些问题有一个非常实用的办法 |
2007-02-19 07:46
不敢自称作高手,但有些写程序的经验拿出来和大家分享
首先我希望大家明白,控制高手跟程序高手是两个概念
控制高手需要的是算法的功底,而程序高手需要的是设计及编码的功底
在我所在的团队中,这是两个角色,尽管有时是由一个人承担。
先来说说程序设计
如果你想写好程序,光是C/C++语法或汇编语法的熟练掌握那是没有用的,甚至说,语言的熟练和你实际的变成水平不一定有直接的关系
的确,一个语法纯熟的程序员在处理一个简单问题的时候可能会非常快速,但,那仅限于千行以内的小程 |
|
|
法术大师巴林
男, 24岁
江苏 徐州
上次登录: 10天前
加为好友
|