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

📄 10.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="11.htm">下一篇</a>]
<hr><p align="left"><small>发信人: coy (我爱美好哦), 信区: Algorithm <br>

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

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

  <br>

//frange_ran.c <br>

  <br>

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

void seed() <br>

{ <br>

  int stime; <br>

  long ltime; <br>

  ltime = time(NULL); <br>

  stime = (unsigned int) ltime; <br>

  srand(stime); <br>

} <br>

float frange_ran(llim,ulim) <br>

float ulim,llim; <br>

{ <br>

  float num,num1; <br>

  int diff; <br>

  if(llim == ulim) <br>

        return(llim); <br>

    diff = (int)ulim - (int)llim; <br>



    if( diff == 0) <br>

          num = (int)llim; <br>

    else <br>

          num = llim + (rand() % diff); <br>

  if(ulim - llim < 0.0001) <br>

    return((flip() == TAIL) ? llim : ulim); <br>

  do{ <br>

      num1 = num + (float) rand()/100000000000; <br>

    }while((num1<llim)||(num1>ulim)); <br>

  return(num1); <br>

} <br>

FLAG initialize_x2(final,rc,x1,x2,x1_vari,X,a1_b) <br>

MATRIX final; <br>

VECTOR X,a1_b; <br>

IVECTOR x1,x2; <br>

INDEX rc; <br>

int x1_vari; <br>

{ <br>

  int i,j, <br>

      x2_vari=rc.c-2, <br>

      try=0; <br>

  FLAG _LOW, <br>

  FLAG _LOW, <br>

       _HIGH; <br>

  VECTOR temp; <br>

  MATRIX trymat; <br>

  float llim,ulim,sum; <br>

  FLAG _CHECK; <br>

  sum = 0.0; <br>

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

  trymat = matrix(1,rc.r-x2_vari,0,x2_vari); <br>

  do <br>

    { <br>

      if(try < TRIES) <br>

 ++try; <br>

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

 temp[i] = frange_ran(final[i][1],final[i][rc.c]); <br>

      if(x2_vari != rc.r) <br>

 { <br>

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

     { <br>

       sum = 0.0; <br>

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

  sum  =  sum + temp[i] * final[j][i+1]; <br>

       _LOW = (sum >= final[j][1]) ? TRUE : FALSE; <br>



       _HIGH = (sum <= final[j][rc.c]) ? TRUE : FALSE; <br>

  <br>

       if((!_LOW)||(!_HIGH)) <br>

  break; <br>

      } <br>

 } <br>

      else <br>

 _LOW = _HIGH = TRUE; <br>

    }while((try<TRIES) && ((!_LOW)||(!_HIGH))); <br>

  if(try >= TRIES) <br>

    { <br>

      printf("Please input initial values\n",x1_vari+x2_vari); <br>

      for(i=1; i<=x1_vari+x2_vari; i++) <br>

 { <br>

   printf("\nX%d\t",i); <br>

   scanf("%f",&X[i]); <br>

 } <br>

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

 { <br>

   sum = 0.0; <br>

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

     sum  =  sum + X[x2[i]] * final[j][i+1]; <br>



  <br>

   _LOW = (sum >= final[j][1]) ? TRUE : FALSE; <br>

   _HIGH = (sum <= final[j][rc.c]) ? TRUE : FALSE; <br>

  <br>

   if((!_LOW)||(!_HIGH)) <br>

     { <br>

       printf("The input values do not satisfy the constraints\n%d\n",j); <br>

       exit(1); <br>

     } <br>

 } <br>

    } <br>

  else <br>

    if(x1_vari != 0) <br>

      { <br>

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

   X[x2[i]] = temp[i]; <br>

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

   { <br>

     X[x1[j]] = a1_b[j]; <br>

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

       X[x1[j]] = X[x1[j]] + temp[i] * final[j+x2_vari][i+1]; <br>

   } <br>



      } <br>

    else <br>

      { <br>

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

   X[i] = temp[i]; <br>

      } <br>

  <br>

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

  free_matrix(trymat,1,rc.r-x2_vari,0,x2_vari); <br>

} <br>

  <br>

-- <br>

                            \○/ <br>

                              ┃ <br>

                             /\ <br>

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

  <br>

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

[阅读精华区资料]  结束Q, ← │ 上一项资料 U,↑│ 下一项资料 <Enter>,<Space>,↓ <br>

  <br>

</small><hr>
<p align="center">[<a href="index.htm">回到开始</a>][<a href="index.htm">上一层</a>][<a href="11.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 + -