当前位置: 首页 > 模式/算法

人工智能:复杂问题求解的结构和策略(目录)

 更多内容敬请期待 ------------------------------------------------------------ 主要内容 第一部 人工智能:起源和范围  1 AI:早期的历史和应用 1.1 从亚当到ENIAC:对智能,知识和人工的看法 1.2 AI应用领域概览 1.3 人工智能摘要 第二部 用于表示和搜索的人工智能 2 谓词演算 2.0 介绍 2. ...

人工智能之博弈一、开篇

在本章和下几章中,我们要探讨一下难度较大的棋类游戏程序,比如国际象棋和西洋跳棋等等。用这些程序来同人或其他程序对弈。然而,有些程序是把计算机精心设计成一个棋盘,人们可以在其上对弈(或者是一种单人玩的棋盘游戏)。这种程序更接近于系统模拟的领域,而不属于人工智能的范畴。我们此处所要介绍的却是让计算机 ...

人工智能算法—朴素贝叶斯分类

    文/腾讯soso 林世飞       以下是个人学习贝叶斯分类器—文本分类的学习笔记,和大家一起学习交流。 准备工作     监督学习型分类器特点 ,能够从一个不确定度状态开始,通过提供 正确和错误的样本 ,不断来确定哪些特征(特征由特征提取函数,从样本中提 ...

矩阵链相乘算法(动态规划)--算法导论示例 - 付之东流 - CSDNBlog

导读: 作为经典的动态规划算法举例,矩阵连乘问题很好地展现了动态规划的特点和实用价值。给定n个矩阵{A1,A2,...,An},其中Ai与Ai+1是可乘的,i=1,2,...n-1。现在要计算这n个矩阵的连乘积。由于矩阵的乘法满足结合律,所以通过加括号可以使得计算矩阵的连乘积有许多不同的计算次序。然而采用不同的加扩号方式,所需要 ...

算法导论第十五章动态规划--工厂装配线c++代码实现

该题目是算法导论上的经典例题,具体解释参考算法导论第15章,代码如下: //动态规划,工厂装配线 #include<iostream> using namespace std; //e1,e2是两条装配生产线的输入耗费x1,x2是输出耗费,a1[i]是第一条生产线的第i个站耗时,t1,t2记录了两条生产线转换时耗时 //f1[i]为记录第一条生产线上第i个站生产 ...

算法导论学习笔记(三):堆排序

算法导论学习笔记(三):堆排序 堆排序是一种利用堆的性质进行的排序算法。所以学习堆排序之前先来简单介绍下堆。 堆 堆数据结构是一种数组对象,如图一所示,它可以被视为一颗完全二叉树。      图一 树中的每个结点与数组中存放该结点值的那个元素对应 ...

算法导论第十三章--红黑树C++代码实现

红黑树的性质,各个操作的具体步骤在透彻了解红黑树之一   透彻了解红黑树之二         透彻了解红黑树之三  透彻理解红黑树之四 透彻理解红黑树之五,中已经讲的很详细了,在这里只将代码实现贴出来: BRTreeNode.h #include<iostream> using namespa ...

算法导论小结-散列表

By:             潘云登 Date:          2009-7-18 Email:         intrepyd@gmail.com Homepage: Copyright: 该文章版权由潘云登所有。可在非商业目的 ...

算法导论示例-RandomizedSelect

/** * Introduction to Algorithms, Second Edition * 9.2 RANDOMIZED-SELECT * @author 土豆爸爸 * */ public class RandomizedSelect { /** * 选择数组从p到r之间,第i个最小值。 * @param array 数组 * @param p 起始索引 * @param r 结束索引 * @param i 最小值索引 ...

排序和顺序统计学(算法导论)

排序和顺序统计学(算法导论) 1.堆排序 堆数据结构是一种数组对象,它可以被视为一颗完全二叉树。存放时利用了二叉树,父亲节点序号(i),子节点序号(2*i,2*i+1)的性质 堆的建立,调整,输出实例如下:#include<iostream> #include<vector> #include<alg ...

《算法导论》中红黑树的C语言实现

《算法导论》中红黑树的C语言实现   《算法导论》好是好,只是看伪代码太头痛了,总想要是有个C语言版的《算法导论》就好了。 前几天研究了红黑树,把它翻译成C语言。在VC6.0上编译测试通过。并且写了一个CView类来显示效果。   头文件 rb_tree.h   #ifndef RB_TREE_ ...

算法导论 第10章 10.1 栈和队列

一、概念 1.栈 (1)栈实现了后进先出操作。 在栈的数组实现中,栈顶指针指向栈顶元素,插入时先修改指针再插入,删除时先取栈顶元素再修改指针。 当top[S]=0时,栈中空的。 (2)数组栈的结构: int top;//栈顶指针 int *s];//指向栈数组 (3)在栈上实现的操作 STACK-EMPTY(S)//判断栈是否为空 PUSH(S, x) ...

【算法导论】递归程序设计

声明:本文是转载的,为了这个Data Structure and Algorithm类的规范,所以把类型改成了原创(原谅我的强迫症),来源较多,不详 计算机科学的新学生通常难以理解递归程序设计的概念。递归思想之所以困难,原因在于它非常像是循环推理(circular reasoning)。它也不是一个直观的过程;当我们指挥别人做事 ...

算法导论15章 动态规划 之 钢条切割

算法导论15章 动态规划 之 钢条切割 钢条切割问题,递归方法实现: #include <iostream> #include <vector> #include <algorithm> #include <iterator> using namespace std; int cutRod(int *p, int n) { if (n == 0) return 0; int q = -1; for(int i = 1; ...

【算法导论学习-003】选择排序(SelectionSort)

参考文献:《算法导论》中、英版本 伪代码参考:《算法导论》P29页 课后题public class SelectionSort { /** * @param args */ public static void main(String[] args) { // TODO 自动生成的方法存根 int[] array = { 1, 0, -3 }; SelectionSort(array, 0, array.length); // randomizeInPlace(ar ...

人工智能算法—决策树

人工智能算法—决策树       文/腾讯soso 林世飞       决策树方法最早产生于上世纪60年代,到70年代末。由J Ross Quinlan提出了ID3算法,此算法的目的在于减少树的深度。但是忽略了叶子数目的研究。C4.5算法在ID3算法的基础上进行 ...

北京理工大学人工智能第二次作业

三、知识和推理 第一题:采用逻辑推理的方法解决如下迷宫问题:       解答: 求解该问题需要给迷宫建立坐标系,如下图所示: 1、设置初始状态,函数Position(O,x,y)表示物体O在位置(x,y)处 2、设置状态变化目标 Position(person,6,1)—>Position(person,2,7)∩Position(person,6,7) 3 ...

算法导论CLRS 9.1 最大值和最小值

/*9.1 最大值和最小值 *MINIMUM-MAXIMUM */ #include<cstdlib> #include<iomanip> #include<iostream> #include<vector> using namespace std; struct minmax { double min; double max; }; typedef vector<double>::iterator dvecIte; minmax fminmax(const dvecIte &ite ...

算法导论学习之加权中位数

算法导论学习之加权中位数 加权中位数定义:   加权中位数求解:       代码实现: #include <iostream>#include <time.h> using namespace std; template <typename T>int Partion(T seq[],int p,int r){    T k ...

《算法导论》笔记汇总

《算法导论》笔记汇总 分类:ACM历程,算法学习 | 作者:酷~行天下 | 发表于2011/08/21 18条评论 14,136 views      列表里没有的,或者是纯属理论,不适合写,比如第1~5章; 或者是我也不怎么明白的,比如斐波那契堆中抽取最小结点的平摊代价分析; 还有没看的,比如数论和NP完全性等。 ...