一、分治法 递归,找最大值最小值,整数相乘,归并排序,快速排序,线性时间选择,最近点对问题 二、动态规划 0-1背包问题 ,矩阵相乘问题,装配线调度问题,最长公共子序列,最优二分检索树,凸多边形最优三角剖分 三、贪心法 背包问题,活动选择问题,哈夫曼编码,最小生成树算法(Kruskal 和 Prim ...
分类:
编程语言 时间:
2019-08-12 23:38:19
阅读次数:
123
动态规划问题的步骤 1、描述最优解的结构 2、递归定义最优解的值 3、自底向上计算最优解的值 4、由计算的结果构造最优解 一般要在第3步记录一些附加信息, 自底向上逐步计算还有另外一种方法,可以带备忘录自顶而下计算。 15.1 装配线调度 15.2 矩阵链乘法 15.3 动态规划原理 最优化问题应该 ...
分类:
编程语言 时间:
2018-08-17 11:18:59
阅读次数:
172
《算法导论》读书笔记之第15章 动态规划—装配线调度 前言:动态规划的概念 动态规划(dynamic programming)是通过组合子问题的解而解决整个问题的。分治算法是指将问题划分为一些独立的子问题,递归的求解各个问题,然后合并子问题的解而得到原问题的解。例如归并排序,快速排序都是采用分治算法 ...
分类:
编程语言 时间:
2018-02-25 14:27:15
阅读次数:
264
一、问题描述 某个汽车工厂共有两条装配线,每条有 n 个装配站。装配线 i 的第 j个装配站表示为 Si,j ,在该站的装配时间为 ai,j 。一个汽车底盘进入工厂,然后进入装配线 i(i 为 1 或 2),花费时间为 ei 。在通过一条线的第 j 个装配站后,这个底盘来到任一条装配线的第(j+1) ...
分类:
编程语言 时间:
2017-12-17 15:03:43
阅读次数:
122
装配线调度: 1 #include <iostream> 2 #include <cstdio> 3 4 using namespace std; 5 6 int main() 7 { 8 int e1,e2,x1,x2,a1[7],a2[7]; 9 int f[2][7],fe,le,l[2][7 ...
分类:
编程语言 时间:
2016-05-06 00:37:14
阅读次数:
211
问题:某个工厂生产一种产品,有两种装配线选择,每条装配线都有n个装配站。可以单独用,装配线1或2加工生产,也可以使用装配线i的第j个装配站后,进入另一个装配线的第j+1个装配站继续生产。现想找出通过工厂装配线的最快方法。
装配线i的第j个装配站表示为Si,jS_{i,j},在该站的装配时间是ai,ja_{i,j}
如果从 Si,jS_{i,j}装配站生产后,转移到另一个生产线继续生产所耗费的时...
分类:
编程语言 时间:
2015-06-01 22:54:11
阅读次数:
299
#include <unistd.h>
#include <iostream>
//算法导论PDF194页描述的问题
using namespace std;
inline int min(int a,int b)
{
return a>b?b:a;
}
int a1[6]={7,9,3,4,8,4}; //a1装配线的时间
int a2[6]={8...
分类:
编程语言 时间:
2015-04-02 13:33:32
阅读次数:
218
动态规划(dynamic programming)是通过组合子问题的解而解决整个问题的。分治算法是指将问题划分为一些独立的子问题,递归地求解各子问题,然后合并子问题的解而得到原问题的解。动态规划适用于子问题不是独立的情况,也就是各子问题包含公共的子子问题。在这种情况下,若用分治法则会做许多不必要.....
分类:
编程语言 时间:
2015-02-17 19:52:04
阅读次数:
284
lienhua342014-10-061 问题描述某个汽车工厂共有两条装配线,每条有 n 个装配站。装配线 i 的第 j个装配站表示为 Si,j ,在该站的装配时间为 ai,j 。一个汽车底盘进入工厂,然后进入装配线 i(i 为 1 或 2),花费时间为 ei 。在通过一条线的第 j 个装配站后,这...
分类:
其他好文 时间:
2014-10-06 18:41:10
阅读次数:
158
前言:今天在实现装配线调度程序时候,用到了二维数组,并将其作为函数的参数。在写程序的时候,遇到一些问题,即二维数组做函数的参数应该如何正确表示。我写程序的错误如下程序所示:#include void print(int *a[3]){ printf("%d\n",a[0][0]);}int m...
分类:
编程语言 时间:
2014-07-29 10:39:16
阅读次数:
207