5-1凸多边形最优三角剖分问题
//3d5 凸多边形最优三角剖分
#include "stdafx.h"#include
constint N = 7;//凸多边形边数+1
int weight[][N] = {{0,2,2,3,1,4},{2,0,1,5,2,3},{2,1,0,2,1,4},{3,5,2,0,6,2},{1,2,1,6,0,1},{4,3,4,2,1,0}};//凸多边形的权
intMinWeightTriangulation(intn,int **t,int **s);
void Traceback(inti,intj,int **s);//构造最优解
int Weight(inta,intb,int c);//权函数
int main(){
int **s = new int *[N];
int **t = new int *[N];
for(inti=0;i s[i] = new int[N]; t[i] = new int[N]; } cout<<"此多边形的最优三角剖分值为:"< cout<<"最优三角剖分结构为:"< Traceback(1,5,s); //s[i][j]记录了Vi-1和Vj构成三角形的第3个顶点的位置 return 0; } intMinWeightTriangulation(intn,int **t,int **s) { for(inti=1; i<=n; i++) { t[i][i] = 0; } for(int r=2; r<=n; r++) //r为当前计算的链长(子问题规模) { for(inti=1; i<=n-r+1; i++)//n-r+1为最后一个r链的前边界 { int j = i+r-1;//计算前边界为r,链长为r的链的后边界 t[i][j] = t[i+1][j] + Weight(i-1,i,j);//将链ij划分为A(i) * ( A[i+1:j] )这里实际上就是k=i s[i][j] = i; for(int k=i+1; k //将链ij划分为( A[i:k] )* (A[k+1:j]) int u = t[i][k] + t[k+1][j] + Weight(i-1,k,j); if(u t[i][j] = u; s[i][j] = k; } } } } return t[1][N-2]; } voidTraceback(inti,intj,int **s){ if(i==j) return; Traceback(i,s[i][j],s); Traceback(s[i][j]+1,j,s); cout<<"三角剖分顶点:V"< int Weight(inta,intb,int c){ return weight[a][b] + weight[b][c] + weight[a][c]; }5-4 数字三角形最短路径 5-2 游艇租赁问题 #include using namespace std; #define N 210 int cost[N][N]; int m[N]; int main() { intn,i,j; while(cin>>n) { for(i=1;i for(j=i+1;j<=n;j++) cin>>cost[i][j]; m[1]=0; int min; for(i=2;i<=n;i++) { min=cost[1][i]; for(j=1;j<=i-1;j++) { if(cost[j][i]!=0 && m[j]+cost[j][i] min=m[j]+cost[j][i]; } m[i]=min; } cout< } return 0; } 5-6 合唱队形问题 #include https://www.doczj.com/doc/d1797643.html,ing namespace std; 2. 3.//用于保存子问题最优解的备忘录 4.typedef struct 5.{ 6.int maxlen; //当前子问题最优解 7.int prev; //构造该子问题所用到的下一级子问题序号(用于跟踪输出最优队列) 8.}Memo; 9. 10.//用于递归输出Memo B中的解 11.void Display(int* A, Memo* M, int i) 12.{ 13.if (M[i].prev == -1) 14. { 15. cout< 16.return; 17. } 18. Display(A, M, M[i].prev); 19. cout< 20.} 21. 22.//算法主要部分 23.void GetBestQuence(int* A, int n) 24.{ 25.//定义备忘录并作必要的初始化 26. Memo *B = new Memo[n]; //B[i]代表从A[0]到A[i]满足升序剔除部分 元素后能得到的最多元素个数 27. Memo *C = new Memo[n]; //C[i]代表从A[i]到A[n-1]满足降序剔除部 分元素后能得到的最多元素个数 28. B[0].maxlen = 1; //由于B[i]由前向后构造初始化最前面的子问题 (元素本 身就是一个满足升序降序的序列) 29. C[n-1].maxlen = 1; //同样C[i]由后向前构造 30.for (int i=0; i 31.//用于在跟踪路径时终止递归或迭代(因为我们并不知道最终 队列从哪里开始) 32. { 33. B[i].prev = -1; 34. C[i].prev = -1; 35. } 36. 37.for (i=1; i 38. { 39.int max=1; 40.for (int j=i-1; j>=0; j--) //查看前面的子问题找出满足条 件的最优解并且记录 41. { 42.if (A[j]max) 43. { 44. max = B[j].maxlen+1; //跟踪当前最优解 45. B[i].prev = j; //跟踪构造路径 46. } 47. } 48. B[i].maxlen = max; //构造最优解 49. } 50. 51.for (i=n-1; i>0; i--) 52. { 53.int max=1; 54.for (int j=i; j 解时可以直接用B[i]+C[i]-1 55.//否则我们得到的最优解始终为B[n-1]+C[n-1] 56. { 57.if (A[j]max) //比当前长度更长记录并构 造 58. { 59. max = C[j].maxlen+1; 60. C[i].prev = j; 61. } 62. } 63. C[i].maxlen = max; 64. } 65. 66.//遍历i 得到最大的B[i]+C[i]-1(-1是因为我们在B[i]和C[i]中均加上了A[i]这个 数因此需要减去重复的) 67.int maxQuence = 0; //记录当前最优解 68.int MostTall; //记录i 用于跟踪构造路径 69.for (i=0; i 70. { 71.if (B[i].maxlen+C[i].maxlen-1 > maxQuence) 72. { 73. maxQuence = B[i].maxlen+C[i].maxlen-1; 74. MostTall = i; 75. } 76. } 77. 78. cout<<"最大合唱队形长度: "< 79. 80.//B由前向后构造因此prev指向前面的元素需要递归输出 81. Display( A, B, MostTall); 82.//C的prev指向后面元素直接迭代输出 83.while (C[MostTall].prev != -1) 84. { 85. MostTall = C[MostTall].prev; 86. cout< 87. } 88. cout< 89. 90.delete []B; 91.delete []C; 92.} 93.int main() 94.{ 95.//测试 96.int *A; 97.int n; 98. cout<<"请输入合唱队员个数: "< 99. cin>>n; 100. 101. A = new int[n]; 102. cout<<"输入队员身高 :"< 103.for (int i=0; i 104. { 105. cin>>A[i]; 106. } 107. GetBestQuence(A, n); 108.delete []A; 109.return 0; 110.} 5-7买票问题 状态转移方程是f[i] := min(f[i - 1] + t[i], f[i - 2] + r[i - 1]); {i = 2 ~ n} 初值f[0] := 0; f[1] := t[1]; const maxn = 1000; vari, j, n : longint; f, t, r : array[0..maxn] of longint; function min(a, b : longint) : longint; begin if a < b then exit(a); exit(b); end; begin readln(n); for i := 1 to n do read(t[i]); for i := 1 to n - 1 do read(r[i]); f[0] := 0; f[1] := t[1]; for i := 2 to n do f[i] := min(f[i - 1] + t[i], f[i - 2] + r[i - 1]); writeln(f[n]); end. 伪代码 BuyTicks(T, R) 1n ← length[T] 2f[0] ← 0 3f[1] ← T[1] 4for i ← 2to n do 5f[i] ← f[i-2]+R[i-1] 6if f[i] > f[i-1]+T[i] then 7f[i] ← f[i-1]+T[i] 8return f 5-8最大子段和问题 #include #include intmax_sum(intn,int *a,int *besti,int *bestj){ int *b = (int *)malloc(n * sizeof(int)); int sum = 0;int i = -1;int temp = 0; for (i=0;i<=n-1;i++) { if (temp > 0) temp += a[i]; else temp = a[i]; b[i] = temp; } sum = b[0]; for (i=1;i<=n-1;i++) { if (sum < b[i]) { sum = b[i]; *bestj = i; } } for (i = *bestj;i>= 0;i--) { if (b[i] == a[i]) { *besti = i; break; } } free(b); return sum; } int main(void) { int a[] = {-2,1,-4,13,-5,-2,-10,20,100}; int length = sizeof(a)/sizeof(int); int sum = -1; intbesti = -1; intbestj = -1; sum = max_sum(length,a,&besti,&bestj); printf("besti = %d,bestj = %d,max_sum=%d\n",besti,bestj,sum); return 0; } 5-9 装箱问题 发现就是0-1背包问题每个物品的体积就是花费同时也是价值,也就是说这题可以转化为在总体积为w下,可以得到最大的价值最后用总体积减去最大的价值就是剩下最少的空间状态转移方程d[j] = max(d[j], d[j - a[i]] + a[i]); 第二行为一个整数,表示有n个物品; 接下来n行,每行一个整数表示这n个物品的各自体积。输出格式一个整数,表示箱子剩余空间。 #include using namespace std; intn; intd[20005]; inta[35]; intmain(){ intw; scanf("%d%d", &w, &n); inti, j; for(i = 0; i< n; i++){ scanf("%d", &a[i]); } memset(d, 0, sizeof(d)); for(i = 0; i< n; i++){ for(j = w; j >= a[i]; j--) d[j] = max(d[j], d[j - a[i]] + a[i]); } printf("%d\n", w - d[w]); return0; } 6-10 表格乘法 #include "stdio.h"#definenum 50 void chengji_1(int (*a)[num][3],intn,char b[]); int _tmain( ){ int a[num][num][3]; char b[num]; inti,j,k,n; char c; printf("intput the num of array:"); scanf("%d",&n); getchar(); for(i=0;i for(j=0;j for(k=0;k<3;k++) a[i][j][k]=0; i=0; while((c=getchar())!='/n') { b[i]=c;i++; } chengji_1(a,n,b); printf("reslut is:%d",a[0][n-1][0]); getchar(); } void chengji_1(int (*a)[num][3],intn,char b[]){ inti,j,k,t; for(i=0;i *(*(*(a+i)+i)+(b[i]-'a'))=1; for(k=1;k for(i=0;i { j=i+k; for(t=i;t { *(*(*(a+i)+j)+0)+=((*(*(*(a+i)+t)+0))*(*(*(*(a+t+1)+j)+2))+(*(*(*(a+i)+t)+1))*(*(*(*(a+t+1)+j )+2))+(*(*(*(a+i)+t)+2))*(*(*(*(a+t+1)+j)+0))); *(*(*(a+i)+j)+1)+=((*(*(*(a+i)+t)+0))*(*(*(*(a+t+1)+j)+0))+(*(*(*(a+i)+t)+0))*(*(*(*(a+t+1)+j )+1))+(*(*(*(a+i)+t)+1))*(*(*(*(a+t+1)+j)+1))); *(*(*(a+i)+j)+2)+=((*(*(*(a+i)+t)+1))*(*(*(*(a+t+1)+j)+0))+(*(*(*(a+i)+t)+2))*(*(*(*(a+t+1)+j )+1))+(*(*(*(a+i)+t)+2))*(*(*(*(a+t+1)+j)+2))); } } } 11 最长滑雪道问题 #include using namespace std; int data[102][102],longetr[102][102]; intm,n; intcal(inti,int j){ int max = 0; if (longetr[i][j] > 0) //如果该点已经计算过直接返回路径长度,保存已有的计算结果这是动态规划优越之处 returnlongetr[i][j]; if(j-1 >= 0 && data[i][j] > data[i][j-1] && max max = cal(i,j-1);//向左走 if(j+1 < n && data[i][j] > data[i][j+1] && max max = cal(i,j+1);//向右走 if(i-1 >= 0 && data[i][j] > data[i-1][j] && max max = cal(i-1,j);//向上走 if(i+1 < m && data[i][j] > data[i+1][j] && max max = cal(i+1,j);//向下走 return longetr[i][j] = max + 1;//最长路径就是相邻四个节点最长路径加1所得四条路径中最长那条 } int main(){ inti,j; cin>>m>>n; intmaxway = 0; for ( i=0;i for( j=0;j cin>>data[i][j]; longetr[i][j] = 0; } for ( i=0;i for( j=0;j longetr[i][j] = cal(i,j); } for ( i=0;i for( j=0;j if(maxway maxway = longetr[i][j]; } cout< return 0; } 方法2 #include #include #include #include #include using namespace std; struct dot//创建一个结构体存储每个点的信息 { int x; int y; int h; }; dot line[20000]; //将每个点存入该结构体数组 int height[120][120]; //用于存储input int len[120][120]; //dp数组,存储每个点的最优解 int cmp( const void *a ,const void *b) //快速排序的参考函数{ if((*(dot *)a).h>(*(dot *)b).h) return 1; else return -1; } int main () { int m,n; cin>>m>>n; int i,j; int flag=-1; int max=0; for(i=1;i<=m;i++) { for(j=1;j<=n;j++) { flag++; scanf("%d",&height[i][j]); line[flag].x=i; line[flag].y=j; line[flag].h=height[i][j]; } } //这个双层循环用来完成数据收集的工作 qsort(line,m*n,sizeof(line[0]),cmp); //对结构体的h参数进行排序 for(i=0;i { if(height[line[i].x][line[i].y] { len[line[i].x][line[i].y+1]=len[line[i].x][line[i].y]+1; } if(height[line[i].x][line[i].y] { len[line[i].x+1][line[i].y]=len[line[i].x][line[i].y]+1; } if(height[line[i].x][line[i].y] { len[line[i].x][line[i].y-1]=len[line[i].x][line[i].y]+1; } if (height[line[i].x][line[i].y] { len[line[i].x-1][line[i].y]=len[line[i].x][line[i].y]+1; } } //动态规划过程 for(i=1;i<=m;i++) { for(j=1;j<=n;j++) { if(len[i][j]>max) max=len[i][j]; } } //遍历len数组,求出最大值 cout< return 0; 最大矩形和 b[j]=max{b[j-1]+a[j],a[j]}, 1 #include 2 using namespace std; 3 4 int ** a; 5 int **sum; 6 intmax_array(int *a,int n) 7 { 8 int *c = new int [n]; 9 inti =0; 10 c[0] = a[0]; 11 for(i=1;i 12 { 13 if(c[i-1]<0) 14 c[i] = a[i]; 15 else 16 c[i] = c[i-1]+a[i]; 17 } 18 intmax_sum = -65536; 19 for(i=0;i 20 if(c[i]>max_sum) 21 max_sum = c[i]; 22 delete []c; 23 return max_sum; 24 25 } 26 intmax_matrix(int n) 27 { 28 inti =0; 29 int j = 0; 30 intmax_sum = -65535; 31 int * b = new int [n]; 32 33 for(i=0;i 34 { 35 for(j=0;j 36 b[j]= 0; 37 for(j=i;j 2的情况,一次类推,在小间隔的基础上一次累加,避免重复计算 38 { 39 for(int k =0;k<=n;k++) 40 b[k] += a[j][k]; 41 int sum = max_array(b,n); 42 if(sum >max_sum) 43 max_sum = sum; 44 } 45 } 46 delete []b; 47 return max_sum; 48 } 49 intmain() 50 { 51 int n; 52 cin>> n; 53 54 a = new int *[n]; 55 sum = new int *[n]; 56 inti =0; 57 int j =0; 58 for(i=0;i 59 { 60 sum[i] = new int[n]; 61 a[i] = new int[n]; 62 for(j=0;j 63 { 64 cin>>a[i][j]; 65 sum[i][j] =0 ;//sum[r][k]表示起始和结尾横坐标分别为r,k时的最大子矩阵 66 //sum[r][k] = max{sum (a[i][j]):r<=i<=k}:0<=k<=n-1 67 } 68 } 69 /* 70 intb[10]={31,-41,59,26,-53,58,97,-93,-23,84}; 71 cout< 72 */ 73 cout< 74 } 第三章作业及答案 一、单项选择题 1. 标志着以慈禧太后为首的清政府彻底放弃抵抗外国侵略者的事件是() A .《南京条约》的签订 B .《天津条约》的签订 C .《北京条约》的签订 D .《辛丑条约》的签订 2 .清末“预备立宪”的根本目的在于() A .仿效欧美政体 B .发展资本主义 C .延续反动统治 D .缓和阶级矛盾 3.1903年6月,()在上海《苏报》发表《驳康有为论革命书》,批驳康有为所谓“中国之可立宪,不可革命”的谬论 A.陈天华 B.邹容 C.章炳麟 D.梁启超 4.1903年邹容写的()是中国近代史上第一部宣传革命和资产阶级共和国思想的着作 A.《猛回头》 B.《警世钟》 C.《革命军》 D.《驳康有为论革命书》 5.中国近代第一个资产阶级革命的全国性政党是( ) A.强学会 B.兴中会 C.同盟会 D.国民党 6. 孙中山民权主义思想的主张是( ) A.驱除鞑虏 B.恢复中华 C.创立民国 D.平均地权 7.1905年11月,孙中山在《民报》发刊词中将中国同盟会的政治纲领概括为() A.创立民国、平均地权 B.驱除鞑虏、恢复中华、创立合众政府 C.民族主义、民权主义、民生主义 D.联俄、联共、扶助农工 8.武昌起义前同盟会领导的影响最大的武装起义是( ) A.浙皖起义 B.萍浏醴起义 C.镇南关起义 D.黄花岗起义 9.中国历史上第一部具有资产阶级共和国宪法性质的法典是() A.《钦定宪法大纲》 B.《中华民国临时约法》 C.《中华民国约法》 D.《试训政纲领》 10.南京临时政府中占领导和主体地位的派别是() A .资产阶级维新派 B .资产阶级保皇派 C .资产阶级立宪派 D .资产阶级革命派 11. 辛亥革命取得的最大成就是() A.推翻了封建帝制 B.促进了资本主义的发展 C.使人民获得了一些民主自由权利 D.打击了帝国主义的殖民势力 12.清帝被迫退位,在中国延续两千多年的封建帝制终于覆灭的时间是()。 A、1911年10月10日 B、1912年1月1日 C、1912年2月12日 D、1912年4月1日 13.中国第一次比较完全意义上的资产阶级民主革命是指()。 A、辛亥革命 B、国民革命 C、北伐战争 D、抗日战争 14.1915年,()在云南率先举起反袁护国的旗帜,发动护国战争 A.黄兴 B.段祺瑞 C.蔡锷 D.孙中山 15.资产阶级革命派开展护国运动的主要原因是 ( ) A.袁世凯指使刺杀宋教仁 B.袁世凯强迫国会选举他为正式大总统 C.袁世凯解散国会 D.袁世凯复辟帝制 16.袁世凯为复辟帝制不惜出卖主权,与日本签订了卖国的() A.中日共同防敌军事协定 B.承认外蒙自治 生物优化设计答案 Revised by BETTY on December 25,2020 生物优化设计答案 第一节人类的食物快乐预习感知 一蛋白质糖类脂肪维生素无机盐糖类脂肪蛋白质 二1.最主要薯类2.储备肉类植物油3.生长发育瘦肉奶豆类三﹪~70﹪2.钙、磷血红蛋白3.水溶性脂溶性轻松尝试应用1~6DDAABA7(1)A、B(2)C(3)含碘的无机盐(4)糖类、脂肪和蛋白质 能力提升1~14BBDDADCCCCCACB15(1)ADC(2)贫血(3)B16(1)富病主要是由缺乏维生素B1引起的。富病中还有一种称为“神经炎”的疾病。食物疗法是应尽可能多吃一些穷人吃的东西,如新鲜蔬菜、糙米等。(2)穷病主要是由缺乏维生素A引起的,“雀目”指的是夜盲症,食物疗法是应尽可能多吃一些富人吃的东西,如猪肝、鱼肉、胡萝卜和玉米等。 17(1)马铃薯肝(2)糖(3)维生素C18(1)④?使用同一滴管吸取吲哚酚试剂(2)多(3)先加等量的水果汁,再向其中滴吲哚酚试剂(使操作更加简便)(4)猕猴桃 第二节食物的消化和营养物质的吸收快乐预习感知一1.咽胃小肠磨碎搅拌运输2.唾液腺胃腺肝脏消化液消化酶3.唾液淀粉酶胃液胃液肝脏胆汁二1.较大蛋白质脂肪2.唾液淀粉酶麦芽糖三1.可吸收消化2.口腔胃小肠四、口腔食管小肠葡萄糖氨基酸甘 油脂肪酸无机盐维生素例题B轻松尝试应用1~5CBBCA6(1)2、3、5、8、9、10(2)2口腔9大肠5胃8小肠(3)5胃氨基酸2口腔8小肠(4)4肝脏胆汁11胆囊肠腔脂肪(5)8小肠三9大肠(6)1唾液腺4肝脏6胰腺胃腺肠腺(7)唾液腺6胰腺肠腺(8)阑尾能力提升1~11BCBCBDADDBD12(1)变蓝变蓝不变蓝变蓝(2)在0℃和80℃时,唾液不能使淀粉分解。(3)在37℃时,唾液能使淀粉分解。(4)设置4号试管的目的是与1,2,3号试管内的现象对照,以证明淀粉的分解是唾液的作用。13(1)葡萄糖(2)氨基酸(3)小肠(4)水无机盐维生素14(1)2(2)牙齿的咀嚼及舌的搅拌对淀粉消化作用(3)淀粉已被消化(4)唾液和牙齿的咀嚼及舌的搅拌和淀粉的消化都有关系 第三节合理膳食快乐预习感知一日三餐按时进餐不偏食不挑食不暴饮暴食二、谷类蔬菜水果薯类豆类瘦肉清淡少盐例题C轻松尝试应用1~7ACDDDDD8、(1)奶类、豆类动物性食物(2)无机盐维生素脂肪水(3)E糖类(4)D维生素C9、(1)糖类小肠(2)这两类食物中含有较为丰富的蛋白质,蛋白质是生长发育必不可少的营养物质(3)Ⅱ级维生素C能力提升1~ 8ADAACCBA9、(1)佝偻病(2)饮食结构不合理,食物中钙含量不足184(3)缺乏维生素D,影响钙的吸收(4)为正值生长发育时期的青少年提供蛋白质和钙10、(1)二(2)三、四胃(3)糖两能量(4)一日三餐,按时进餐,在每日摄入的总能 中南大学网络教育课程考试复习题及参考答案 算法分析与设计 一、名词解释: 1.算法 2.程序 3.递归函数 4.子问题的重叠性质 5.队列式分支限界法 6.多机调度问题 7.最小生成树 二、简答题: 1.备忘录方法和动态规划算法相比有何异同?简述之。 2.简述回溯法解题的主要步骤。 3.简述动态规划算法求解的基本要素。 4.简述回溯法的基本思想。 5.简要分析在递归算法中消除递归调用,将递归算法转化为非递归算法的方法。 6.简要分析分支限界法与回溯法的异同。 7.简述算法复杂性的概念,算法复杂性度量主要指哪两个方面? 8.贪心算法求解的问题主要具有哪些性质?简述之。 9.分治法的基本思想是什么?合并排序的基本思想是什么?请分别简述之。 10.简述分析贪心算法与动态规划算法的异同。 三、算法编写及算法应用分析题: 1.已知有3个物品:(w1,w2,w3)=(12,10,6),(p1,p2,p3)=(15,13,10),背包的容积M=20,根据0-1背包动态规划的递推式求出最优解。 2.按要求完成以下关于排序和查找的问题。 ①对数组A={15,29,135,18,32,1,27,25,5},用快速排序方法将其排成递减序。 ②请描述递减数组进行二分搜索的基本思想,并给出非递归算法。 ③给出上述算法的递归算法。 ④使用上述算法对①所得到的结果搜索如下元素,并给出搜索过程:18,31,135。 3.已知1() *() i i k k ij r r A a +=,k =1,2,3,4,5,6,r 1=5,r 2=10,r 3=3,r 4=12,r 5=5,r 6=50,r 7=6,求矩阵链积A 1×A 2×A 3×A 4×A 5×A 6的最佳求积顺序(要求给出计算步骤)。 4.根据分枝限界算法基本过程,求解0-1背包问题。 已知n=3,M=20,(w1,w2,w3)=(12,10,6),(p1,p2,p3)=(15,13,10)。 5.试用贪心算法求解汽车加油问题:已知一辆汽车加满油后可行驶n 公里,而旅途中有若干个加油站。试设计一个有效算法,指出应在哪些加油站停靠加油,使加油次数最少,请写出该算法。 6.试用动态规划算法实现下列问题:设A 和B 是两个字符串。我们要用最少的字符操作,将字符串A 转换为字符串B ,这里所说的字符操作包括: ①删除一个字符。 ②插入一个字符。 ③将一个字符改为另一个字符。 请写出该算法。 7.对于下图使用Dijkstra 算法求由顶点a 到顶点h 的最短路径。 算法设计与分析考试题 及答案 Company number:【WTUT-WT88Y-W8BBGB-BWYTT-19998】 一、填空题(20分) 1.一个算法就是一个有穷规则的集合,其中之规则规定了解决某一特殊类型问题的一系列运算,此外,算法还应具有以下五个重要特性:确定性 有穷性 可行性 0个或多个输入 一个或多个输出 2.算法的复杂性有时间复杂性 空间复杂性之分,衡量一个算法好坏的标准是 时间复杂度高低 3.某一问题可用动态规划算法求解的显着特征是 该问题具有最优子结构性质 4.若序列X={B,C,A,D,B,C,D},Y={A,C,B,A,B,D,C,D},请给出序列X 和Y 的一个最长公共子序列{BABCD}或{CABCD}或{CADCD } 5.用回溯法解问题时,应明确定义问题的解空间,问题的解空间至少应包含一个(最优)解 6.动态规划算法的基本思想是将待求解问题分解成若干_子问题 ,先求解_子问题 ,然后从这些子问题 的解得到原问题的解。 7.以深度优先方式系统搜索问题解的算法称为回溯法 背包问题的回溯算法所需的计算时间为o(n*2n ) ,用动态规划算法所需的计算时间为o(min{nc,2n }) 9.动态规划算法的两个基本要素是最优子结构 _和重叠子问题 10.二分搜索算法是利用动态规划法实现的算法。 二、综合题(50分) 1.写出设计动态规划算法的主要步骤。 ①问题具有最优子结构性质;②构造最优值的递归关系表达式; ③最优值的算法描述;④构造最优解; 2. 流水作业调度问题的johnson 算法的思想。 ①令N 1={i|a i =b i };②将N 1中作业按a i 的非减序排序得到N 1’,将N 2中作业按b i 的非增序排序得到N 2’;③N 1’中作业接N 2’中作业就构成了满足Johnson 法则的最优调度。 3. 若n=4,在机器M1和M2上加工作业i 所需的时间分别为a i 和b i ,且 (a 1,a 2,a 3,a 4)=(4,5,12,10),(b 1,b 2,b 3,b 4)=(8,2,15,9)求4个作业的最优调度方案,并计算最优值。 步骤为:N1={1,3},N2={2,4}; N 1’={1,3}, N 2’={4,2}; 最优值为:38 4. 使用回溯法解0/1背包问题:n=3,C=9,V={6,10,3},W={3,4,4},其解空间有长度为3的0-1向量组成,要求用一棵完全二叉树表示其解空间(从根出发,左1右0),并画出其解空间树,计算其最优值及最优解。 解空间为{(0,0,0),(0,1,0),(0,0,1),(1,0,0),(0,1,1),(1,0,1), (1,1,0),(1,1,1)}。 解空间树为: 该问题的最优值为:16 最优解为:(1,1,0) 5. 设S={X 1,X 2,···,X n }是严格递增的有序集,利用二叉树的结点来存储S 中的元素,在表示S 的二叉搜索树中搜索一个元素X ,返回的结果有两种情形,(1)在二叉搜索树的内结点中找到X=X i ,其概率为b i 。(2)在二叉搜索树的叶结点中确定X ∈(X i ,X i+1),其概率为a i 。在表示S 的二叉搜索树T 中,设存储元素X i 的结点深度为C i ;叶结点(X i ,X i+1)的结点深度为d i ,则二叉搜索树T 的平均路长p 为多少假设二叉搜索树T[i][j]={X i ,X i+1,···,X j }最优值为m[i][j],W[i][j]= a i-1+b i +···+b j +a j ,则m[i][j](1<=i<=j<=n)递归关系表达式为什么 .二叉树T 的平均路长P=∑=+n i 1 Ci)(1*bi +∑=n j 0 dj *aj 1、怎样理解鸦片战争是中国近代史的起点? 鸦片战争是中国近代史的开端,原因有四: 第一,战争后中国的社会性质发生了根本性变化,由一个落后封闭但独立自主的封建国家沦为一个半殖民地半封建社会。 第二,中国的发展方向发生变化,战前中国是一个没落的封建大国,封建制度已经腐朽,在缓慢地向资本主义社会发展;而鸦片战争后中国的民族资本主义不可能获得正常发展,中国也就不可能发展为成熟的资本主义社会,而最终选择了社会主义道路。 第三,社会主要矛盾发生变化,战前中国的主要矛盾是农民阶级与封建地主阶级的矛盾,而战后主要矛盾则包括农民阶级和地主阶级的矛盾及中华民族与外国殖民侵略者的矛盾,也就是社会主要矛盾复杂化。 第四,是革命任务发生变化,原先的革命任务是反对本国封建势力,战后则增加了反对外国殖民侵略的任务,革命的性质也由传统的农民战争转为旧民族主义革命。 2、怎样认识近代中国的主要矛盾、社会性质及其基本特征? (1)近代中国的主要矛盾 帝国主义和中华民族的矛盾;封建主义和人民大众的矛盾是近代中国的主要矛盾。 (2)社会性质:半殖民地半封建的性质。 中国社会的半殖民地半封建社会,是近代以来中国在外国资本主义势力的入侵及其与中国封建主义势力相结合的条件下,逐步形成的一种从属于资本主义世界体系的畸形的社会形态。(3)基本特征 第一,资本——帝国主义侵略势力日益成为支配中国的决定性力量。 第二,中国的封建势力日益衰败并同外国侵略势力相勾结,成为资本——帝国主义压迫、奴役中国人民的社会基础和统治支柱。 第三,中国的自然经济基础虽然遭到破坏,但是封建剥削制度的根基——封建地主的土地所有制成为中国走向近代化和民主化的严重障碍。 第四,中国新兴的民族资本主义经济虽然已经产生,但是发展很缓慢,力量很软弱,且大部分与外国资本——帝国主义和本国封建主义都有或多或少的联系。 第五,由于近代中国处于资本——帝国主义列强的争夺和间接统治之下,近代中国各地区经济、政治和文化的发展是极不平衡的,中国长期处于不统一状态。 第六,在资本——帝国主义和封建主义的双重压迫下,中国的广大人民特别是农民日益贫困化以致大批破产,过着饥寒交迫和毫无政治权力的生活。 3、如何理解近代中国的两大历史任务及其相互关系? (1)近代中国的两大历史任务: 第一,争取民族独立,人民解放;第二,实现国家富强,人民富裕。 (2)近代中国的两大历史任务的相互关系: 争取民族独立,人民解放和实现国家富强,人民富裕这两个历史任务,是互相区别又互相紧密联系的。 第一,由于腐朽的社会制度束缚着生产力的发展,阻碍着经济技术的进步,必须首先改变这种制度,争取民族独立和人民解放,才能为实现国家富强和人民富裕创造前提,开辟道路。第二,实现国家富强和人民富裕是民族独立,人民解放的最终目的和必然要求。 第一章 1、资本-帝国主义侵略给中国带来了什么? 机械优化设计习题及参考答案 1-1、简述优化设计问题数学模型的表达形式。 答:优化问题的数学模型就是实际优化设计问题的数学抽象。在明确设计变量、约束条件、目标函数之后,优化设计问题就可以表示成一般数学形式。求设计变量向量[]12 T n x x x x =使 ()min f x → 且满足约束条件 ()0 (1,2,)k h x k l == ()0(1,2,)j g x j m ≤= 2-1、何谓函数的梯度?梯度对优化设计有何意义? 答:二元函数f(x 1,x 2)在x 0点处的方向导数的表达式可以改写成下面的形式:?? ??????????????=??+??=??2cos 1cos 212cos 21cos 1θθθθxo x f x f xo x f xo x f xo d f 令xo T x f x f x f x f x f ?? ????????=????=?21]21[)0(, 则称它为函数f(x 1,x 2)在x 0点处的梯度。 (1)梯度方向就是函数值变化最快方向,梯度模就是函数变化率的最大值。 (2)梯度与切线方向d 垂直,从而推得梯度方向为等值面的法线方向。梯度)0(x f ?方向为函数变化率最大方向,也就就是最速上升方向。负梯度-)0(x f ?方向为函数变化率最小方向,即最速下降方向。 2-2、求二元函数f(x 1,x 2)=2x 12+x 22-2x 1+x 2在T x ]0,0[0=处函数变化率最 大的方向与数值。 解:由于函数变化率最大的方向就就是梯度的方向,这里用单位向量p 表 示,函数变化率最大与数值时梯度的模)0(x f ?。求f(x1,x2)在x0点处的梯度方向与数值,计算如下: ()??????-=??????+-=???? ??????????=?120122214210x x x x f x f x f 2221)0(?? ? ????+??? ????=?x f x f x f =5 ????? ???????-=??????-=??=5152512)0()0(x f x f p 2-3、试求目标函数()2221212143,x x x x x x f +-=在点X 0=[1,0]T 处的最速下降 方向,并求沿着该方向移动一个单位长度后新点的目标函数值。 解:求目标函数的偏导数 212 21124,46x x x f x x x f +-=??-=?? 则函数在X 0=[1,0]T 处的最速下降方向就是 ??????-=??????-+-=????????????????-=-?=====462446)(0121210 121021 21x x x x x x x x x f x f X f P 这个方向上的单位向量就是: 13]2,3[4 )6(]4,6[T 22T -=+--==P P e 新点就是 ????? ???????-=+=132133101e X X 新点的目标函数值 第一章习题(1-1,1-2,1-3,1-6) 1-1 求下列函数的渐进表达式 3n2+10n = O(n2) n2/10+2n = O(2n) 21+1/n = O(1) logn3 = O(logn) 10log3n = O(n) 知识点: 如果存在正的常数C和自然数N0,使得: 当N>=N0时有f(N)<=Cg(N),则称f(N)当N充分大时上有界,且g(N)是它的一个上界,记为f(N)=O(g(N)). 这时,可以说f(N)的阶不高于g(N)的阶。 1-2 论O(1)和O(2)的区别 O(1)和O(2)差别仅在于其中的常数因子,根据渐进上界记号O的定义可知,O(1)=O(2)。 1-3 从低到高排列以下表达式(按渐进阶排列以下表达式) 结果:2 logn n2/320n 4n23n n! 分析: 当n>=1时,有logn< n2/3 当n>=7时,有3n< n! 补充: 当n>=4时,有logn> n1/3 1-6 对于下列各组函数f(n)和g(n),确定f(n)=O(g(n))或f(n)=Ω(g(n))或f(n)=Θ(g(n))。 知识点: f(n)的阶不高于g(n)的阶:f(n)=O(g(n));f(n)的阶不低于g(n)的阶:f(n)=Ω(g(n));f(n)与g(n)同阶:f(n)=Θ(g(n)) (1)f(n)= logn2。g(n)= logn+5 f(n)与g(n)同阶,故f(n)=Θ(g(n)) (2) f(n)= logn2。g(n)= n1/2 当n>=8时,f(n)<=g(n),故f(n)=O(g(n)) 分析:此类题目不易直接看出阶的高低,可用几个数字代入观察结果。 如依次用n=1,21,22,23,26,28,210 (3) f(n)= n 。g(n)= log2n f(n)=Ω(g(n)) (4) f(n)= nlogn+n。g(n)= logn f(n)=Ω(g(n)) (5) f(n)= 10 。g(n)= log10 f(n)=Θ(g(n)) (6) f(n)= log2n。g(n)= logn f(n)=Ω(g(n)) (7) f(n)= 2n。g(n)= 100 n2 f(n)=Ω(g(n)) (8) f(n)= 2n。g(n)= 3n f(n)=O(g(n)) 1.一个算法就是一个有穷规则的集合,其中之规则规定了解决某一特殊类型问题的一系列运算,此外,算法还应具有以下五个重要特性:_________,________,________,__________,__________。 2.算法的复杂性有_____________和___________之分,衡量一个算法 好坏的标准是______________________。 3.某一问题可用动态规划算法求解的显著特征是 ____________________________________。 4.若序列X={B,C,A,D,B,C,D},Y={A,C,B,A,B,D,C,D},请给出序列X 和Y的一个最长公共子序列_____________________________。 5.用回溯法解问题时,应明确定义问题的解空间,问题的解空间至少应包含___________。 6.动态规划算法的基本思想是将待求解问题分解成若干____________,先求解___________,然后从这些____________的解得到原问题的解。 7.以深度优先方式系统搜索问题解的算法称为_____________。 8.0-1背包问题的回溯算法所需的计算时间为_____________,用动态规划算法所需的计算时间为____________。 9.动态规划算法的两个基本要素是___________和___________。 10.二分搜索算法是利用_______________实现的算法。 二、综合题(50分) 1.写出设计动态规划算法的主要步骤。 2.流水作业调度问题的johnson算法的思想。 1.怎样认识近代中国的主要矛盾、社会性质及其基本特征? (1)近代中国的主要矛盾 帝国主义和中华民族的矛盾;封建主义和人民大众的矛盾是近代中国的主要矛盾。中国近代社会的两对主要矛盾是互相交织在一起的,而帝国主义和中华民族的矛盾,是最主要的矛盾。 (2)社会性质:半殖民地半封建的性质。 中国社会的半殖民地半封建社会,是近代以来中国在外国资本主义势力的入侵及其与中国封建主义势力相结合的条件下,逐步形成的一种从属于资本主义世界体系的畸形的社会形态。 鸦片战争前的中国社会是封建社会。鸦片战争以后,随着外国资本-帝国主义的入侵,中国社会性质发生了根本性变化:独立的中国逐步变成半殖民地的中国;封建的中国逐步变成半封建的中国。 (3)基本特征 第一,资本--帝国主义侵略势力不但逐步操纵了中国的财政和经济命脉,而且逐步控制了中国的政治,日益成为支配中国的决定性力量。 第二,中国的封建势力日益衰败并同外国侵略势力相勾结,成为资本--帝国主义压迫、奴役中国人民的社会基础和统治支柱。 第三,中国的自然经济基础虽然遭到破坏,但是封建剥削制度的根基--封建地主的土地所有制依然在广大地区内保持着,成为中国走向近代化和民主化的严重障碍。 第四,中国新兴的民族资本主义经济虽然已经产生,并在政治、文化生活中起了一定作用,但是在帝国主义封建主义的压迫下,他的发展很缓慢,力量很软弱,而且大部分与外国资本--帝国主义和本国封建主义都有或多或少的联系。 第五,由于近代中国处于资本--帝国主义列强的争夺和间接统治之下,近代中国各地区经济、政治和文化的发展是极不平衡的,中国长期处于不统一状态。 第六,在资本--帝国主义和封建主义的双重压迫下,中国的广大人民特别是农民日益贫困化以致大批破产,过着饥寒交迫和毫无政治权力的生活。 中国半殖民地半封建社会及其特征,是随着帝国主义侵略的扩大,帝国主义与中国封建势力结合的加深而逐渐形成的。 2.如何理解近代中国的两大历史任务及其相互关系? (1)近代中国的两大历史任务: 第一,争取民族独立,人民解放;第二,实现国家富强,人民富裕。 (2)近代中国的两大历史任务的相互关系: 争取民族独立,人民解放和实现国家富强,人民富裕这两个历史任务,是互相区别又互相紧 第六章习题解答 1. 已知约束优化问题: 2)(0)()1()2()(min 21222112 221≤-+=≤-=?-+-=x x x g x x x g t s x x x f 试从第k 次的迭代点[]T k x 21)(-= 出发,沿由(-1 1)区间的随机数0.562和-0.254 所确定的方向进行搜索,完成一次迭代,获取一个新的迭代点)1(+k x 。并作图画出目标函数的等值线、可行域和本次迭代的搜索路线。 [解] 1)确定本次迭代的随机方向: []T T R S 0.412 0.9110.2540.5620.254 0.2540.5620.5622222-=??? ??? ??++= 2) 用公式:R k k S x x α+=+)()1( 计算新的迭代点。步长α取为搜索到约束边 界上的最大步长。到第二个约束边界上的步长可取为2,则: 176 .1)412.0(22822.0911.021221 2111 =-?+=+==?+-=+=++R k k R k k S x x S x x αα ? ? ? ???=+176.1822.01 k X 即: 该约束优化问题的目标函数的等值线、可行域和本次迭代的搜索路线如下图所示。 2. 已知约束优化问题: )(0)(0 25)(12 4)(min 2312222112 21≤-=≤-=≤-+=?--=x x g x x g x x x g t s x x x f 试以[][][]T T T x x x 33 ,14,120 30 20 1===为复合形的初始顶点,用复合形法进 行两次迭代计算。 [解] 1)计算初始复合形顶点的目标函数值,并判断各顶点是否为可行点: [][][]9 35 120101-=?==?=-=?=030302023314f x f x f x 经判断,各顶点均为可行点,其中,为最坏点。为最好点,0 203x x 2)计算去掉最坏点 02x 后的复合形的中心点: ?? ????+??????=???? ????????+??????==∑≠=3325.2211 32 10 3312i i i c x L x 3)计算反射点1 R x (取反射系数3.1=α) 20.69 3.30.551422.51.322.5)(110 2001-=????? ?=???? ????????-??????+??????=-+=R R c c R f x x x x x 值为可行点,其目标函数经判断α 4)去掉最坏点1 R 0301x x x x 和,,由02构成新的复合形,在新的复合形中 为最坏点为最好点,011R x x ,进行新的一轮迭代。 5)计算新的复合形中,去掉最坏点后的中心点得: ?? ????=???? ????????+??????= 3.151.775 3.30.5533211 c x 6)计算新一轮迭代的反射点得: ,完成第二次迭代。 值为可行点,其目标函数经判断413.14 5.9451.4825123.151.7751.33.151.775)(1 2011 12-=??????=???? ????????-????? ?+??????=-+=R R c c R f x x x x x α Chapter11:Amortized Analysis 11.1When the number of trees after the insertions is more than the number before. 11.2Although each insertion takes roughly log N ,and each DeleteMin takes2log N actual time,our accounting system is charging these particular operations as2for the insertion and3log N ?2for the DeleteMin. The total time is still the same;this is an accounting gimmick.If the number of insertions and DeleteMins are roughly equivalent,then it really is just a gimmick and not very meaningful;the bound has more signi?cance if,for instance,there are N insertions and O (N / log N )DeleteMins (in which case,the total time is linear). 11.3Insert the sequence N ,N +1,N ?1,N +2,N ?2,N +3,...,1,2N into an initially empty skew heap.The right path has N nodes,so any operation could take?(N )time. 11.5We implement DecreaseKey(X,H)as follows:If lowering the value of X creates a heap order violation,then cut X from its parent,which creates a new skew heap H 1with the new value of X as a root,and also makes the old skew heap H smaller.This operation might also increase the potential of H ,but only by at most log N .We now merge H and H 1.The total amortized time of the Merge is O (log N ),so the total time of the DecreaseKey operation is O (log N ). 11.8For the zig ?zig case,the actual cost is2,and the potential change is R f ( X )+ R f ( P )+ R f ( G )? R i ( X )? R i ( P )? R i ( G ).This gives an amortized time bound of AT zig ?zig =2+ R f ( X )+ R f ( P )+ R f ( G )? R i ( X )? R i ( P )? R i ( G ) Since R f ( X )= R i ( G ),this reduces to =2+ R f ( P )+ R f ( G )? R i ( X )? R i ( P ) Also,R f ( X )> R f ( P )and R i ( X )< R i ( P ),so AT zig ?zig <2+ R f ( X )+ R f ( G )?2R i ( X ) Since S i ( X )+ S f ( G )< S f ( X ),it follows that R i ( X )+ R f ( G )<2R f ( X )?2. Thus AT zig ?zig <3R f ( X )?3R i ( X ) 11.9(a)Choose W (i )=1/ N for each item.Then for any access of node X ,R f ( X )=0,and R i ( X )≥?log N ,so the amortized access for each item is at most3log N +1,and the net potential drop over the sequence is at most N log N ,giving a bound of O (M log N + M + N log N ),as claimed. (b)Assign a weight of q i /M to items i .Then R f ( X )=0,R i ( X )≥log(q i /M ),so the amortized cost of accessing item i is at most3log(M /q i )+1,and the theorem follows immediately. 11.10(a)To merge two splay trees T 1and T 2,we access each node in the smaller tree and insert it into the larger tree.Each time a node is accessed,it joins a tree that is at least 一.填空题(每空 2 分,共30分) 1.算法的时间复杂性指算法中的执行次数。 2.在忽略常数因子的情况下,O、和三个符号中,提供了算法运行时间的一个上界。 3.设D n表示大小为n的输入集合,t(I)表示输入为I时算法的运算时间, p(I)表示输入 I 出现的概率,则算法的平均情况下时间复杂性A(n)= 。 4.分治算法的时间复杂性常常满足如下形式的递归方程: f (n) d , n n0 f(n) af(n/c) g(n) , n n0 其中,g(n)表示。 5. 分治算法的基本步骤包括。6.回溯算法的基本思想是。 7.动态规划和分治法在分解子问题方面的不同点是。 8.贪心算法中每次做出的贪心选择都是最优选择。 9.PQ 式的分支限界法中,对于活结点表中的结点,其下界函数值越小,优先级 10.选择排序、插入排序和归并排序算法中,算法是分治算法。 11.随机算法的一个基本特征是对于同一组输入,不同的运行可能得到的结果。12. 对于下面的确定性快速排序算法,只要在步骤3 前加入随机 化步骤,就可得到一个随机化快速排序算法,该随机化步骤的功能是。 算法QUICKSORT 输入:n 个元素的数组A[1..n] 。 输出:按非降序排列的数组 A 中的元素 1. quicksort(1, n) end QUICKSORT _ _ 过程 quicksort(A, low, high) _ _ // 对 A[low..high] 中的元素按非降序排序。 _ 号 学 2. if low 习题1 3.设计算法求数组中相差最小的两个元素(称为最接近数)的差。要求分别给出伪代码和C++描述。 //采用分治法 //对数组先进行快速排序 //在依次比较相邻的差 #include qsort(l,1,n); //第一个作为枢轴,从第一个排到第n个 } int main() { int a[11]={0,2,32,43,23,45,36,57,14,27,39}; int value=0;//将最小差的值赋值给value for (int b=1;b<11;b++) cout< using namespace std; int main() { int a[]={1,2,3,6,4,9,0}; int mid_value=0;//将“既不是最大也不是最小的元素”的值赋值给它 for(int i=0;i!=4;++i) { if(a[i+1]>a[i]&&a[i+1] 上篇综述作业及答案 一、单项选择题 1.中国封建社会的基本生产结构是:() A.手工业 B.农业经济 C.工业 D.小农经济 2.19世纪初,大肆向中国走私鸦片的国家是( ) A.美国 B.英国 C.日本 D.俄国 3.中国近代史上的第一个不平等条约是:() A.《望厦条约》B.《南京条约》C.《辛丑条约》 D.《马关条约》 4.《南京条约》中割让的中国领土是:() A.香港岛 B.九龙 C.新界 D.台湾 5.第一次鸦片战争中,美国强迫清政府签订的不平等条约是() A.《黄埔条约》 B.《虎门条约》 C.《望厦条约》 D.《瑷珲条约》 6.中国近代史的起点是:() A. 第一次鸦片战争 B. 第二次鸦片战争 C. 中日甲午战争 D. 八国联军侵华战争 7. 第一次鸦片战争后,中国逐步演变为:() A. 封建主义性质的国家 B. 半殖民地半资本主义性质的国家 C. 资本主义性质的国家 D. 半殖民地半封建性质的国家 8.标志着中国半殖民地半封建社会起点的事件是() A.英国的鸦片走私 B. 林则徐的虎门禁烟 C.1840年第一次鸦片战争 D.第二次鸦片战争 9.鸦片战争后,中国社会最主要的矛盾是:() A.地主阶级和农民阶级的矛盾B.资本—帝国主义和中华民族的矛盾C.封建主义和人民大众的矛盾D.清朝统治和汉族的矛盾 10.鸦片战争前,中国社会经济中占统治地位的是:() A.商品经济B.封建经济C.半殖民地经济D.资本主义经济 11.近代中国的历史表明,要争取争得民族独立和人民解放必须首先进行:() A. 反对帝国主义侵略的斗争 B. 反帝反封建的资产阶级民主革命 C. 反对封建主义压迫的斗争 D. 反对资产阶级的社会主义革命 12.在近代中国,实现国家富强和人民富裕的前提条件是:() A. 反对帝国主义的侵略 B. 争得民族独立和人民解放 C. 推翻封建主义的统治 D. 建立资本主义制度 13.中国工人阶级最早出现于:() A.十九世纪四、五十年代 B.十九世纪六十年代 C.十九世纪六、七十年代 D.十九世纪七十年代 14.近代中国产生的新的被压迫阶级是:() A农民阶级B工人阶级C资产阶级 D民族资产阶级 15.中国的资产阶级出现于:() A.十九世纪四、五十年代 B.十九世纪六十年代 C.十九世纪六、七十年代 D.十九世纪七十年代 单项答案1. D 2.B 3. B 4. A 5. C 6. A 7.D 8. C 9. B 10. B 11.B 12. B 13. A 14. B 15. C 第一章习题答案 1-1 某厂每日(8h 制)产量不低于1800件。计划聘请两种不同的检验员,一级检验员的标准为:速度为25件/h ,正确率为98%,计时工资为4元/h ;二级检验员标准为:速度为15件/h ,正确率为95%,计时工资3元/h 。检验员每错检一件,工厂损失2元。现有可供聘请检验人数为:一级8人和二级10人。为使总检验费用最省,该厂应聘请一级、二级检验员各多少人? 解:(1)确定设计变量; 根据该优化问题给定的条件与要求,取设计变量为X = ?? ????=? ??? ??二级检验员一级检验员 21x x ; (2)建立数学模型的目标函数; 取检验费用为目标函数,即: f (X ) = 8*4*x 1+ 8*3*x 2 + 2(8*25*0.02x 1 +8*15*0.05x 2 ) =40x 1+ 36x 2 (3)本问题的最优化设计数学模型: min f (X ) = 40x 1+ 36x 2 X ∈R 3· s.t. g 1(X ) =1800-8*25x 1+8*15x 2≤0 g 2(X ) =x 1 -8≤0 g 3(X ) =x 2-10≤0 g 4(X ) = -x 1 ≤0 g 5(X ) = -x 2 ≤0 1-2 已知一拉伸弹簧受拉力F ,剪切弹性模量G ,材料重度r ,许用剪切应力[]τ,许用最大变形量[]λ。欲选择一组设计变量T T n D d x x x ][][2 32 1 ==X 使弹簧重量最轻,同时满足下列限制条件:弹簧圈数3n ≥, 簧丝直径0.5d ≥,弹簧中径21050D ≤≤。试建立该优化问题的数学模型。 注:弹簧的应力与变形计算公式如下 3 22234 881 ,1,(2n s s F D FD D k k c d c d Gd τλπ==+==旋绕比), 解: (1)确定设计变量; 根据该优化问题给定的条件与要求,取设计变量为X = ????? ? ????=??????????n D d x x x 2321; (2)建立数学模型的目标函数; 取弹簧重量为目标函数,即: f (X ) = 322 12 4 x x rx π (3)本问题的最优化设计数学模型:近代史纲要习题及答案
生物优化设计答案
算法分析与设计复习题及参考答案
算法设计与分析考试题及答案
近代史课后习题答案
《机械优化设计》习题及答案
算法分析与设计方案第章习题答案,,,
算法设计与分析考试题及答案
中国近代史纲要课后习题答案
优化设计 孙靖民 课后答案第6章习题解答
Mark Allen Weiss 数据结构与算法分析 课后习题答案11
(完整版)算法设计与分析期末考试卷及答案a
算法分析与设计重点课后习题答案
近代史纲要 上篇综述 习题及答案
机械优化设计课后习题答案