아래를 논리식으로 바꾸는 함수 char* phenotype(int genotype[3*8]) 만들기
0 0 1 0 0 1 0 0
0 1 0 0 1 0 0 0
1 0 1 1 1 1 1 1
출력 예)
0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 1 1 1 1 1 1 (p1 v ~p3) ^ (~p v ...) ^ (p1 v ...
char * phenotype(int genotype[TERMNO][ATTNO *2]);
char * phenotype(int genotype[TERMNO][ATTNO *2])
{
int i, j;/* 루프 제어 변수 */
for (i =0; i < TERMNO -1; i ++) // TERMNO –1 범위 까지 반복
{
printf("(");
if (genotype[i][0] ==1)
printf("p1 v ");
if (genotype[i][1] ==1)
printf("~p1 v ");
if (genotype[i][2] ==1)
printf("p2 v ");
if (genotype[i][3] ==1)
printf("~p2 v ");
if (genotype[i][4] ==1)
printf("p3 v ");
if (genotype[i][5] ==1)
printf("~p3 v ");
if (genotype[i][6] ==1)
printf("p4");
if (genotype[i][7] ==1)
printf(" v ~p4");
printf(") ^ ");
}
for (i = TERMNO -1; i < TERMNO; i ++) // TERMNO –1부터 다음 까지 반복
{
printf("(");
if (genotype[i][0] ==1)
printf("p1 v ");
if (genotype[i][1] ==1)
printf("~p1 v ");
if (genotype[i][2] ==1)
printf("p2 v ");
if (genotype[i][3] ==1)
printf("~p2 v ");
if (genotype[i][4] ==1)
printf("p3 v ");
if (genotype[i][5] ==1)
printf("~p3 v ");
if (genotype[i][6] ==1)
printf("p4");
if (genotype[i][7] ==1)
printf(" v ~p4");
printf(")");
}
printf("\n");
}
int main(int argc,char *argv[])
{
int no ; /* 학습 데이터 세트의 개수 */
int i ; /* 반복의 제어문자 */
int dataset[DATANO][ATTNO +1]={0} ;
/* 학습 데이터 세트의 속성과 카테고리를 저장 */
int formula[TERMNO][ATTNO *2]={0} ;
/* 획득대상이 되는 논리식 */
double score =0 ;/* 논리식의 평가값 */
/* 난수의 초기화 */
srand(SEED) ;
/* 학습 데이터 읽어들이기 */
no=readdata(dataset) ;
/* 논리식의 생성과 검사 */
for(i =0;i <REPNO;++i){
genformula(formula) ;/* 논리식 생성 */
score=evalformula(formula,dataset,no) ;/* 논리식 평가 */
/* 논리식 출력 */
if(score >THVAL){
printf("\n스코어: %lf\n",score) ;
purformula(formula) ;
phenotype(formula);
}
}
return 0 ;
}
반복문을 써서 논리식을 출력합니다,
'대학교 > 2.AI_인공지능' 카테고리의 다른 글
AI7.시계열학습 (0) | 2017.06.03 |
---|---|
AI.6 n-gram (0) | 2017.04.21 |
AI5. 유전알고리즘 (0) | 2017.04.21 |
Ai 4.생성시스템 (0) | 2017.04.21 |
AI3.프레임 (0) | 2017.04.21 |