⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3.htm

📁 遗传算法的详细描述文档,文档中附带一定的代码解释
💻 HTM
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>CTerm非常精华下载</title>
</head>
<body bgcolor="#FFFFFF">
<table border="0" width="100%" cellspacing="0" cellpadding="0" height="577">
<tr><td width="32%" rowspan="3" height="123"><img src="DDl_back.jpg" width="300" height="129" alt="DDl_back.jpg"></td><td width="30%" background="DDl_back2.jpg" height="35"><p align="center"><a href="http://202.112.20.132"><font face="黑体"><big><big>白云黄鹤★</big></big></font></a></td></tr>
<tr>
<td width="68%" background="DDl_back2.jpg" height="44"><big><big><font face="黑体"><p align="center">                     遗传算法                                                   </font></big></big></td></tr>
<tr>
<td width="68%" height="44" bgcolor="#000000"><font face="黑体"><big><big><p   align="center"></big></big><a href="http://cterm.163.net"><img src="banner.gif" width="400" height="60" alt="banner.gif"border="0"></a></font></td>
</tr>
<tr><td width="100%" colspan="2" height="100" align="center" valign="top"><br><p align="center">[<a href="index.htm">回到开始</a>][<a href="index.htm">上一层</a>][<a href="4.htm">下一篇</a>]
<hr><p align="left"><small>发信人: coy (我爱美好哦), 信区: Algorithm <br>

标  题: 遗传算法(3) <br>

发信站: 武汉白云黄鹤站 (Wed May 31 21:40:06 2000), 站内信件 <br>

  <br>

//change_order.c <br>

  <br>

  <br>

#include "f:\coy\mywork\lunwen\gaopc\thesis.h" <br>

void get_var_order(tot,cart,var_order) <br>

IVECTOR tot, <br>

        cart; <br>

IMATRIX var_order; <br>

{ <br>

  int i; <br>

  for(i=1; i<=tot[0]; i++) <br>

    { <br>

      var_order[i][1] = i; <br>

      var_order[i][2] = 0; <br>

    } <br>

  for(i=1; i<=tot[1]; i++) <br>

    var_order[cart[i]][2] = 1; <br>

} <br>

void find_x1_x2(tot,var_order,x1,x2) <br>



int tot; <br>

IMATRIX var_order; <br>

  <br>

IVECTOR x1, <br>

        x2; <br>

{ <br>

  int i,j=1,k=1; <br>

  for(i=1; i<=tot; i++) <br>

    { <br>

      if(var_order[i][2] == 1) <br>

 x1[j++] = var_order[i][1]; <br>

      else <br>

 x2[k++] = var_order[i][1]; <br>

    } <br>

} <br>

void find_ac1_ac2(t1,t2,t3,x1,x2,mat,ac1,ac2) <br>

int t1,t2,t3; <br>

IVECTOR x1,x2; <br>

MATRIX  mat, <br>

        ac1,ac2; <br>

{ <br>

  int i,j,k; <br>

  int i,j,k; <br>

  for(i=1; i<=t1; i++) <br>

    for(j=1; j<=t2; j++) <br>

      ac1[j][i] = mat[j][x1[i]]; <br>

  for(i=1; i<=t3; i++) <br>

    for(j=1; j<=t2; j++) <br>

      ac2[j][i] = mat[j][x2[i]]; <br>

} <br>

void find_lu1_lu2(tot,x1,x2,dom,dom1,dom2) <br>

IVECTOR tot,x1,x2; <br>

VECTOR  dom, <br>

        dom1,dom2; <br>

{ <br>

  int i,j,k; <br>

  for(i=1; i<=tot[1]; i++) <br>

      dom1[i] = dom[x1[i]]; <br>

  for(i=1; i<=tot[0]-tot[1]; i++) <br>

      dom2[i] = dom[x2[i]]; <br>

} <br>

void find_limits(tot,domains,llim,ulim) <br>

int tot; <br>

MATRIX domains; <br>

VECTOR llim,ulim; <br>



{ <br>

  int i; <br>

  for(i=1; i<=tot; i++) <br>

    { <br>

      llim[i] = domains[i][1]; <br>

      ulim[i] = domains[i][3]; <br>

    } <br>

} <br>

void find_new_in_eq(a1b,a1a2,ll,ul,rc,newin) <br>

VECTOR a1b, <br>

       ll,ul; <br>

MATRIX a1a2, <br>

       newin; <br>

INDEX rc; <br>

{ <br>

  int i,j; <br>

  for(i=1; i<=rc.r; i++) <br>

    for(j=1; j<=rc.c; j++) <br>

      if(j==1) <br>

 newin[i][j] = ll[i] - a1b[i]; <br>

      else if(j==rc.c) <br>

 newin[i][j] = ul[i] - a1b[i]; <br>



      else <br>

 newin[i][j] = 0 - a1a2[i][j-1]; <br>

} <br>

void find_org_in_eq(a1_b,a1_a2,vec_d,c1,c2,c1row,a1a2,org_ineq) <br>

VECTOR vec_d, <br>

       a1_b; <br>

MATRIX a1_a2, <br>

       org_ineq, <br>

       c1,c2; <br>

int c1row; <br>

INDEX a1a2; <br>

{ <br>

  int i,j; <br>

  VECTOR temp; <br>

  MATRIX mat; <br>

  temp = vector(1,c1row); <br>

  mat = matrix(1,c1row,1,a1a2.c-1); <br>

  mvprod(c1row,a1a2.r,temp,c1,a1_b); <br>

  mmprod(c1row,a1a2.r,a1a2.c-1,mat,c1,a1_a2); <br>

  for(i=1; i<=c1row; i++) <br>

    for(j=1; j<=a1a2.c; j++) <br>

      { <br>

      { <br>

 if (j==a1a2.c) <br>

   org_ineq[i][j] = vec_d[i] - temp[i]; <br>

 else <br>

   org_ineq[i][j] = c2[i][j] - mat[i][j]; <br>

      } <br>

  free_vector(temp,1,c1row); <br>

  free_matrix(mat,1,c1row,1,a1a2.c-1); <br>

} <br>

void initialize(mat,rc) <br>

MATRIX mat; <br>

INDEX rc; <br>

{ <br>

  int i,j; <br>

  <br>

  for(i=1; i<=rc.r; i++) <br>

    for(j=1; j<=rc.c; j++) <br>

      mat[i][j] = 0.0; <br>

} <br>

void find_final_mat1(x2,l2,u2,finmat,row,col) <br>

MATRIX finmat; <br>

VECTOR l2,u2; <br>

IVECTOR x2; <br>

IVECTOR x2; <br>

int row,col; <br>

{ <br>

  int i,j=2; <br>

  for(i=1; i<=row; i++) <br>

    { <br>

      finmat[i][1] = l2[i]; <br>

      finmat[i][col] = u2[i]; <br>

      finmat[i][j++] = 1.0; <br>

    } <br>

} <br>

void find_final_mat2(newin,r,c,finr,finmat) <br>

MATRIX newin,finmat; <br>

int r,c,finr; <br>

{ <br>

  int i,j; <br>

  for(i=1; i<=r; i++) <br>

    { <br>

      for(j=1; j<=c; j++) <br>

 finmat[finr][j] = newin[i][j]; <br>

      finr++; <br>

    } <br>

} <br>

} <br>

void find_final_mat3(orgin,r,c,finr,finmat) <br>

MATRIX orgin,finmat; <br>

int r,c,finr; <br>

{ <br>

  int i,j; <br>

  for(i=1; i<=r; i++) <br>

    { <br>

      finmat[finr][1] = MIN; <br>

      for(j=1; j<=c; j++) <br>

 finmat[finr][j+1] = orgin[i][j]; <br>

      finr++; <br>

    } <br>

} <br>

  <br>

-- <br>

                            \○/ <br>

                              ┃ <br>

                             /\ <br>

                    脖子扭扭,屁股扭扭,大家一起来跳舞 <br>

  <br>

  <br>

  <br>



※ 来源:.武汉白云黄鹤站 bbs.whnet.edu.cn.[FROM: 211.69.196.11] <br>

</small><hr>
<p align="center">[<a href="index.htm">回到开始</a>][<a href="index.htm">上一层</a>][<a href="4.htm">下一篇</a>]
<p align="center"><a href="http://cterm.163.net">欢迎访问Cterm主页</a></p>
</table>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -