亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? bam.c

?? 基于智能控制算法神經(jīng)網(wǎng)絡(luò)
?? C
字號(hào):
/******************************************************************************

                      ================================
        Network:      Bidirectional Associative Memory
                      ================================

        Application:  Heteroassociative Memory
                      Association of Names and Phone Numbers

        Author:       Karsten Kutza
        Date:         24.1.96

        Reference:    B. Kosko
                      Bidirectional Associative Memories
                      IEEE Transactions on Systems, Man, and Cybernetics, 18,
                      pp. 49-60, 1988

 ******************************************************************************/




/******************************************************************************
                            D E C L A R A T I O N S
 ******************************************************************************/


#include <stdlib.h>
#include <stdio.h>


typedef int           BOOL;
typedef char          CHAR;
typedef int           INT;

#define FALSE         0
#define TRUE          1
#define NOT           !
#define AND           &&
#define OR            ||

#define LO            -1
#define HI            +1

#define BINARY(x)     ((x)==LO ? FALSE : TRUE)
#define BIPOLAR(x)    ((x)==FALSE ? LO : HI)


typedef struct {                     /* A LAYER OF A NET:                     */
        INT           Units;         /* - number of units in this layer       */
        INT*          Output;        /* - output of ith unit                  */
        INT**         Weight;        /* - connection weights to ith unit      */
} LAYER;

typedef struct {                     /* A NET:                                */
        LAYER*        X;             /* - X layer                             */
        LAYER*        Y;             /* - Y layer                             */
} NET;


/******************************************************************************
        R A N D O M S   D R A W N   F R O M   D I S T R I B U T I O N S
 ******************************************************************************/


void InitializeRandoms()
{
  srand(4711);
}


BOOL RandomEqualBOOL()
{
  return rand() % 2;
}      


/******************************************************************************
               A P P L I C A T I O N - S P E C I F I C   C O D E
 ******************************************************************************/


#define NUM_DATA      3
#define IN_CHARS      5
#define OUT_CHARS     7

#define BITS_PER_CHAR 6
#define FIRST_CHAR    ' '

#define N             (IN_CHARS  * BITS_PER_CHAR)
#define M             (OUT_CHARS * BITS_PER_CHAR)

CHAR                  Names [NUM_DATA][IN_CHARS]  = { "TINA ",
                                                      "ANTJE", 
                                                      "LISA "  };
                                     
CHAR                  Names_[NUM_DATA][IN_CHARS]  = { "TINE ",
                                                      "ANNJE", 
                                                      "RITA "  };

CHAR                  Phones[NUM_DATA][OUT_CHARS] = { "6843726",
                                                      "8034673",
                                                      "7260915"  };

INT                   Input [NUM_DATA][N];
INT                   Input_[NUM_DATA][N];
INT                   Output[NUM_DATA][M];

FILE*                 f;


void InitializeApplication(NET* Net)
{
  INT n,i,j,a,a_;

  for (n=0; n<NUM_DATA; n++) {
    for (i=0; i<IN_CHARS; i++) {
      a  = Names [n][i] - FIRST_CHAR;
      a_ = Names_[n][i] - FIRST_CHAR;
      for (j=0; j<BITS_PER_CHAR; j++) {
        Input [n][i*BITS_PER_CHAR+j] = BIPOLAR(a  % 2);
        Input_[n][i*BITS_PER_CHAR+j] = BIPOLAR(a_ % 2);
        a  /= 2;
        a_ /= 2;
      }
    }
    for (i=0; i<OUT_CHARS; i++) {
      a = Phones[n][i] - FIRST_CHAR;
      for (j=0; j<BITS_PER_CHAR; j++) {
        Output[n][i*BITS_PER_CHAR+j] = BIPOLAR(a % 2);
        a /= 2;
      }
    }
  }
  f = fopen("BAM.txt", "w");
}


void WriteLayer(LAYER* Layer)
{
  INT i,j,a,p;
   
  for (i=0; i<(Layer->Units / BITS_PER_CHAR); i++) {
    a = 0;
    p = 1;
    for (j=0; j<BITS_PER_CHAR; j++) {
      a += BINARY(Layer->Output[i*BITS_PER_CHAR+j]) * p;
      p *= 2;  
    }
    fprintf(f, "%c", a + FIRST_CHAR);
  }
}


void FinalizeApplication(NET* Net)
{
  fclose(f);
}


/******************************************************************************
                          I N I T I A L I Z A T I O N
 ******************************************************************************/


void GenerateNetwork(NET* Net)
{
  INT i;

  Net->X = (LAYER*) malloc(sizeof(LAYER));
  Net->Y = (LAYER*) malloc(sizeof(LAYER));
      
  Net->X->Units  = N;
  Net->X->Output = (INT*)  calloc(N, sizeof(INT));
  Net->X->Weight = (INT**) calloc(N, sizeof(INT*));

  Net->Y->Units  = M;
  Net->Y->Output = (INT*)  calloc(M, sizeof(INT));
  Net->Y->Weight = (INT**) calloc(M, sizeof(INT*));

  for (i=0; i<N; i++) {
    Net->X->Weight[i] = (INT*) calloc(M, sizeof(INT));
  }
  for (i=0; i<M; i++) {
    Net->Y->Weight[i] = (INT*) calloc(N, sizeof(INT));
  }
}


void CalculateWeights(NET* Net)
{
  INT i,j,n;
  INT Weight;

  for (i=0; i<Net->X->Units; i++) {
    for (j=0; j<Net->Y->Units; j++) {
      Weight = 0;
      for (n=0; n<NUM_DATA; n++) {
        Weight += Input[n][i] * Output[n][j];
      }
      Net->X->Weight[i][j] = Weight;
      Net->Y->Weight[j][i] = Weight;
    }
  }
}


void SetInput(LAYER* Layer, INT* Input)
{
  INT i;
   
  for (i=0; i<Layer->Units; i++) {
    Layer->Output[i] = Input[i];
  }
  WriteLayer(Layer);
}


void SetRandom(LAYER* Layer)
{
  INT i;
   
  for (i=0; i<Layer->Units; i++) {
    Layer->Output[i] = BIPOLAR(RandomEqualBOOL());
  }
  WriteLayer(Layer);
}


void GetOutput(LAYER* Layer, INT* Output)
{
  INT i;
   
  for (i=0; i<Layer->Units; i++) {
    Output[i] = Layer->Output[i];
  }
  WriteLayer(Layer);
}


/******************************************************************************
                     P R O P A G A T I N G   S I G N A L S
 ******************************************************************************/


BOOL PropagateLayer(LAYER* From, LAYER* To)
{
  INT  i,j;
  INT  Sum, Out;
  BOOL Stable;

  Stable = TRUE;
  for (i=0; i<To->Units; i++) {
    Sum = 0;
    for (j=0; j<From->Units; j++) {
      Sum += To->Weight[i][j] * From->Output[j];
    }
    if (Sum != 0) {
      if (Sum < 0) Out = LO;
      if (Sum > 0) Out = HI;
      if (Out != To->Output[i]) {
        Stable = FALSE;
        To->Output[i] = Out;
      }
    }
  }
  return Stable;
}


void PropagateNet(LAYER* From, LAYER* To)
{
  BOOL Stable1, Stable2;

  do {
    Stable1 = PropagateLayer(From, To);
    Stable2 = PropagateLayer(To, From);
  } while (NOT (Stable1 AND Stable2));
}


/******************************************************************************
                      S I M U L A T I N G   T H E   N E T
 ******************************************************************************/


void SimulateNet(LAYER* From, LAYER* To, INT* Pattern, INT* Input, INT* Output)
{
  SetInput(From, Pattern); fprintf(f, " -> ");
  SetRandom(To);           fprintf(f, "  |  ");
  PropagateNet(From, To);
  GetOutput(From, Input);  fprintf(f, " -> ");
  GetOutput(To, Output);   fprintf(f, "\n\n");
}


/******************************************************************************
                                    M A I N
 ******************************************************************************/


void main()
{
  NET Net;
  INT n;
  INT I[N], O[M];

  InitializeRandoms();
  GenerateNetwork(&Net);
  InitializeApplication(&Net);
  CalculateWeights(&Net);
   
  for (n=0; n<NUM_DATA; n++) {
    SimulateNet(Net.X, Net.Y, Input[n],  I, O);
  }
  for (n=0; n<NUM_DATA; n++) {
    SimulateNet(Net.Y, Net.X, Output[n], O, I);
  }
  for (n=0; n<NUM_DATA; n++) {
    SimulateNet(Net.X, Net.Y, Input_[n], I, O);
  }
   
  FinalizeApplication(&Net);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产中文一区二区三区| 国产精品一区二区无线| 成人免费高清在线| 精品国产污污免费网站入口 | 奇米四色…亚洲| 欧美日韩午夜在线视频| 亚洲一区国产视频| 色综合色狠狠综合色| 亚洲激情在线播放| 欧洲精品在线观看| 亚洲一区二区在线免费看| 成人av影院在线| 国产精品福利在线播放| www.欧美精品一二区| 最新国产の精品合集bt伙计| 色综合天天综合给合国产| 亚洲欧美日韩国产综合| 欧美在线你懂的| 香蕉成人伊视频在线观看| 欧美性生活一区| 五月婷婷综合激情| 精品精品欲导航| 国产精品影音先锋| 国产精品国产精品国产专区不蜜| 成人毛片视频在线观看| 中文字幕一区二区三区在线观看| 91亚洲午夜精品久久久久久| 一区二区三区日韩欧美精品| 欧美亚洲国产一区在线观看网站 | 欧美自拍偷拍一区| 午夜精品久久久久久久| 日韩一级片在线观看| 精品在线观看视频| 国产精品美女一区二区三区| 在线视频你懂得一区| 丝袜美腿亚洲综合| 久久精品一区二区三区不卡| 99久久久无码国产精品| 日韩综合小视频| 国产午夜精品久久| 欧美视频在线一区| 国产老肥熟一区二区三区| 亚洲女同一区二区| 日韩亚洲欧美成人一区| www.av精品| 免费观看一级特黄欧美大片| 国产欧美日韩不卡免费| 欧美精品日日鲁夜夜添| 顶级嫩模精品视频在线看| 亚洲国产另类av| 国产视频一区在线观看| 一本一道综合狠狠老| 美女性感视频久久| 亚洲激情网站免费观看| 久久精品一区二区三区av | 91香蕉视频mp4| 午夜精品久久久久| 国产日产欧美一区二区视频| 欧美日韩国产成人在线91| 国产91在线看| 日韩av一区二区三区| 国产精品高潮呻吟久久| 欧美成人精品1314www| 99国产精品久久| 精品一区二区三区在线播放视频| 亚洲柠檬福利资源导航| 久久久无码精品亚洲日韩按摩| 欧美日韩三级一区| 91碰在线视频| 国产成人av一区二区三区在线观看| 亚洲精品免费在线| 17c精品麻豆一区二区免费| 日韩视频国产视频| 欧美丰满一区二区免费视频| 色屁屁一区二区| 成人a免费在线看| 国产一区二区视频在线| 午夜久久久久久| 亚洲一区av在线| 亚洲日本青草视频在线怡红院| 久久综合色综合88| 欧美v日韩v国产v| 欧美一卡二卡三卡| 欧美日韩国产影片| 色偷偷久久一区二区三区| 不卡视频在线观看| 成人黄色网址在线观看| 国产成人免费9x9x人网站视频| 精品一区免费av| 日本亚洲三级在线| 亚洲高清免费在线| 偷窥少妇高潮呻吟av久久免费| 一区二区三区日韩精品视频| 国产精品久久福利| 国产精品美女一区二区| 国产日韩三级在线| 中文字幕巨乱亚洲| 中文字幕一区av| 中文字幕一区视频| 一二三区精品视频| 日韩激情在线观看| 奇米影视在线99精品| 视频一区在线视频| 免费在线观看不卡| 久久99精品久久久久婷婷| 国精产品一区一区三区mba视频| 精久久久久久久久久久| 国产传媒一区在线| a亚洲天堂av| 在线精品视频免费观看| 欧美日韩日日夜夜| 欧美岛国在线观看| 久久九九99视频| 一区二区三区在线观看欧美| 亚洲国产精品视频| 亚洲午夜免费福利视频| 久久成人免费网站| 99re这里只有精品首页| 欧美日韩二区三区| 久久免费美女视频| 亚洲精品中文字幕在线观看| 亚洲成人7777| 精品在线免费观看| 色综合色综合色综合色综合色综合 | 亚洲欧美另类久久久精品2019| 亚洲色图另类专区| 天天操天天干天天综合网| 国产一区二区三区四区五区美女| hitomi一区二区三区精品| 欧美午夜视频网站| 久久亚洲一级片| 亚洲精品免费在线播放| 国产综合一区二区| 色婷婷综合激情| 精品国产乱码久久久久久1区2区| 国产精品成人免费在线| 日本一区中文字幕| 国产精品一二三在| 91天堂素人约啪| 精品乱码亚洲一区二区不卡| 国产精品久久久久久久久晋中| 日韩二区三区在线观看| 99精品黄色片免费大全| 日韩久久久精品| 亚洲小少妇裸体bbw| 国产aⅴ精品一区二区三区色成熟| 91精品欧美一区二区三区综合在| 成人免费一区二区三区视频| 国产精品一级片| 久久亚洲综合色| 天天操天天干天天综合网| 欧洲日韩一区二区三区| 欧美—级在线免费片| 久久精品噜噜噜成人88aⅴ| 99精品久久99久久久久| 欧美经典一区二区| 国产在线精品一区二区不卡了| 8x8x8国产精品| 五月天网站亚洲| 欧美性生活大片视频| 一区av在线播放| 91一区在线观看| 国产日韩欧美电影| 国产成人av电影在线| 精品少妇一区二区三区| 久久精品国产亚洲5555| 欧美一区二区三区系列电影| 亚洲国产一区二区在线播放| 在线免费不卡视频| 亚洲欧美另类在线| 成人免费毛片a| 国产91丝袜在线播放0| 欧美一激情一区二区三区| 亚洲欧美视频在线观看视频| 99麻豆久久久国产精品免费| 日韩免费电影网站| 亚洲成av人影院| 久久99国产精品久久| 欧美性猛片xxxx免费看久爱| 国产清纯白嫩初高生在线观看91| 亚洲va国产天堂va久久en| 欧美日韩大陆在线| 一区二区三区日本| 91免费观看在线| 国产亚洲欧洲一区高清在线观看| 免费一级片91| 日韩一区二区三区电影| 欧美国产一区二区| 91麻豆蜜桃一区二区三区| 国产精品国产三级国产普通话蜜臀 | 蜜臀av性久久久久蜜臀aⅴ| 欧美一区二区三区在线| 偷窥少妇高潮呻吟av久久免费| 色噜噜狠狠色综合中国| 日本一区二区在线不卡| 国产·精品毛片| 中文字幕va一区二区三区| 日韩成人dvd| 欧美国产精品v| 成a人片国产精品|