
算法进阶
小白的学习笔记
这个作者很懒,什么都没留下…
展开
-
N皇后问题
一、问题描述: 在n×n格的棋盘上放置彼此不受攻击的n个皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n后问题等价于再n×n的棋盘上放置n个皇后,任何2个皇后不妨在同一行或同一列或同一斜线上。输入: 给定棋盘的大小n (n ≤ 13) 输出: 输出有多少种放置方法。二、解题思路: 要解决N皇后问题,其实就是要解决好怎转载 2015-07-10 20:17:05 · 3769 阅读 · 0 评论 -
拓扑排序示例
拓扑排序示例 在图论中,一个有向无环图的所有顶点可以排列成一个现行序列,当这个序列满足以下条件时,称该序列为一个满足图的拓扑次序(topological order)的序列。1) 图中每个顶点在序列中只出现一次;2) 对于图中任意一条有向边(u,v),在该序列中顶点u一定在顶点v之前。这样的序列也被称为拓扑序列,对有向图的所有顶点排序,获得拓扑序列的过程就是有向图的拓扑排序原创 2016-02-05 19:36:38 · 1337 阅读 · 0 评论 -
基因算法解决01背包问题
背包问题简述:有m个物体,每个物体价值为v[i],重量为w[i],有一个背包,最多能盛重量为W的物体, 求背包能盛的最大的价值。基因算法:编码:编码长度为物体的个数,1表示放进包,0表示不放进包适应度:包里物品的价值和交叉:两个随机,采用多点交叉,交叉点的个数是随机的,交叉的位置是随机的编译:同样两个随机交叉概率:0.8变异概率:0.15个体类(一个原创 2015-12-18 19:26:48 · 1805 阅读 · 0 评论 -
回溯法 0 1背包问题
用回溯法解决0 1背包问题#include <stdio.h>#include <stdlib.h>/* 用回溯法解决01背包问题,维护的变量有: curState[]: 当前状态中物品是否被选中,若i选中,则curState[i]=1,否则为0. optState[]: 从搜索开始到目前状态中的最优状态。 curWeight: 当前的总重量 curVal原创 2015-06-25 18:00:42 · 737 阅读 · 0 评论 -
汉诺塔问题
详细问题描述可以参考维基百科:https://en.wikipedia.org/wiki/Tower_of_Hanoi汉诺塔问题:有三根杆子A,B,C。A杆上有N个(N>1)穿孔圆盘,盘的尺寸由下到上依次变小。要求按下列规则将所有圆盘移至C杆:每次只能移动一个圆盘;大盘不能叠在小盘上面。递归思路:move(A, C,n) 可以分解为一下几个子问题:1、原创 2015-12-17 16:25:52 · 1586 阅读 · 0 评论 -
遗传算法学习心得
最近在看遗传算法,查了很多资料,所以做了如下一些总结,也希望对后面研究的人有些帮助.因为初学GA,文中自己的见解,不一定全对,感兴趣的可以一起探讨.I 简介基本概念遗传算法(Genetic Algorithms, GA)是一类借鉴生物界自然选择和自然遗传机制的随机化搜索算法。它模拟自然选择和自然遗传过程中发生的繁殖、交叉和基因突变现象,在每次迭代中都保留一组候选解,并按某种指标从解转载 2015-10-31 17:07:22 · 2057 阅读 · 0 评论 -
exact algorithm 精确算法
原文: The phrase exact algorithm is used when talking about an algorithm that always finds the optimal solution to an optimization problem. (As opposed to heuristics that may sometimes produce worse sol原创 2015-09-12 11:47:02 · 5202 阅读 · 0 评论 -
装箱问题概述
装箱问题也叫背包问题,简单来说,就是把小货物往大箱子里装,要如何才能装得多。个人常见的经历就是“装冰箱”,很有趣的现象就是常常感觉冰箱再也装不下了,但是经过一翻折腾之后又神奇的装下了。从企业运作角度来看就是尽量让每个容器(仓库、车辆、集装箱、船等)装的尽量多,可以节约企业的费用。通常,装载率85%左右,使用装箱优化方法后,可以达到90~95%左右。海尔做过一个海运装箱的项目,节约了大量运费。日本的汽转载 2015-06-25 22:40:15 · 3325 阅读 · 0 评论 -
装箱问题近似算法概述
问题描述:一维经典装箱问题可描述如下:S=(S1,S2,..Sn),其中0< Si ≤ 1, 称之为第i个物体的体积(或重量),1≤i≤n,现有n个容积(或载重量)为1 的箱子,要求如何设法将S1,S2,..Sn放入尽可能少的箱中。 装箱问题是NP问题,即在多项式时间内无法精确求解,一般采用近似算法,即启发式算法,这样可以迅速得到满意解,而不一定是最优解. 常见的算法:NF(Next Fit)近转载 2015-07-05 19:52:39 · 15883 阅读 · 3 评论 -
KMP算法详解
个人觉得这篇文章是网上的介绍有关KMP算法更让人容易理解的文章了,确实说得很“详细”,耐心地把它看完肯定会有 所收获的~~,另外有关模式函数值next[i]确实有很多版本啊,在另外一些面向对象的算法描述书中也有失效函数 f(j)的说法,其实是一个意思,即next[j]=f(j-1)+1,不过还是next[j]这种表示法好理解啊:转载 2016-02-06 14:46:46 · 563 阅读 · 0 评论