#author("2018-11-20T16:23:27+09:00","","")
[[卒論]]
#author("2018-11-20T16:26:39+09:00","","")

 #include <stdio.h>
 #include <stdlib.h>             /* rand() */
 #include <time.h>               /* srand() */
 #include "mpi.h"

 #define NODE      50            /* 都市の数 */
 #define MAX_DIST  30            /* 都市間の距離の最大値 */
 #define GENOM     200           /* 遺伝子数 */
 #define LIMIT     100000        /* 計算回数 */
 #define EVOLUTION 1             /* 突然変異発生確率[%] */

 #define MIG_INTERVAL 1000       /* 移住間隔[世代] */
 #define MIG_RATE     15         /* 移住率[%] */

 #define DEBUG1    0             /* 関数確認用 */
 #define DEBUG2    0             /* 経路が正しいかどうか確認 */
 #define WRITEFILE 1             /* ファイルへの書き込み用の出力 */

 typedef struct {
   double dist[NODE];            /* town[now].dist[go] */
   int    flag;                  /* 訪問確認用旗 */
 }  TOWN;
 TOWN town[NODE];

 typedef struct {
   double distance;              /* 距離 */
   int    route[NODE+1];         /* 経路 */
   int    flag;                  /* 旗 */
 }  RESULT;
 RESULT result[GENOM];


 int    champ = 0;
 double fast = NODE * MAX_DIST;

 void func(void);                /* 母集団生成 */
 void makelist(void);            /* 都市間の距離リスト作成 */
 void tournament(int rank);      /* 淘汰 */
 void calc_dist(RESULT *res);    /* 距離計算 */
 void cross(void);               /* 交叉 */
 void variation(int np);         /* 突然変異 */
 void migrate(int rank, int np,
              MPI_Status *status);       /* 移住 */


/* main **************************************************************/


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS