卒論

#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