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

📄 load_ga_server_config.c

📁 一个不错的GA-NN的神经网络模型的示范代码。适合入门学习
💻 C
字号:
/*  load_ga_server_config.c *//* 	Copyright 2004-2007 Oswaldo Morizaki *//* 	This file is part of ga-nn-ag.    ga-nn-ag is free software; you can redistribute it and/or modify    it under the terms of the GNU General Public License as published by    the Free Software Foundation; either version 2 of the License, or    (at your option) any later version.    ga-nn-ag is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    GNU General Public License for more details.    You should have received a copy of the GNU General Public License    along with ga-nn-ag; if not, write to the Free Software    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*/#include "my_header.h"#include "aux_prot.h"int load_ga_server_config(struct ga_server_config *conf, const char * filename){	int k;	int counter;	char char_temp[BUFFSIZE];	FILE * file_pointer;	if ((file_pointer=fopen(filename,"r")) == NULL)	{		return(-1);	}		counter=0;	while(!feof(file_pointer))	{		fgets(char_buffer,BUFFSIZE,file_pointer);		if (!strncmp(char_buffer,"host",4))		{			counter += 1;		}	}		if (counter)	{		if (!(conf->hosts = (char **)malloc(counter*sizeof(char *)) ))		{			syslog(LOG_CRIT,"Error malloc conf->hosts");			return(-1);		}		for (k = 0; k< counter; k++)		{			if (!(conf->hosts[k] = (char *)malloc(BUFFSIZE*sizeof(char)) ))			{				syslog(LOG_CRIT,"Error malloc conf->hosts[%d]",k);				return(-1);			}		}	}		conf->num_hosts = counter;		syslog(LOG_INFO,"num_hosts = %d",conf->num_hosts);		rewind(file_pointer);	for (k = 0; k< counter; k++)	{		sprintf(char_temp,"host%d\n",k);		while(!feof(file_pointer))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			if (!(strcmp(char_buffer,char_temp)))			{				fgets(char_buffer,BUFFSIZE,file_pointer);					clean_char_buffer(char_buffer);							strcpy(conf->hosts[k],char_buffer);				syslog(LOG_INFO,"host%d = %s",k,conf->hosts[k]);				break;			}		}	}		rewind(file_pointer);	counter=0;	while(!feof(file_pointer))	{		fgets(char_buffer,BUFFSIZE,file_pointer);		if (!strncmp(char_buffer,"niche",5))		{			counter += 1;		}	}	if (counter)	{			if (!(conf->niches = (char **)malloc(counter*sizeof(char *)) ))		{			syslog(LOG_CRIT,"Error malloc conf->niches");			return(-1);		}		for (k = 0; k< counter; k++)		{			if (!(conf->niches[k] = (char *)malloc(BUFFSIZE*sizeof(char)) ))			{				syslog(LOG_CRIT,"Error malloc conf->niches[%d]",k);				return(-1);			}		}	}		conf->num_niche = counter;		syslog(LOG_INFO,"num_niche = %d",conf->num_niche);		rewind(file_pointer);	for (k = 0; k< counter; k++)	{		sprintf(char_temp,"niche%d\n",k);		while(!feof(file_pointer))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			if (!(strcmp(char_buffer,char_temp)))			{				fgets(char_buffer,BUFFSIZE,file_pointer);					clean_char_buffer(char_buffer);							strcpy(conf->niches[k],char_buffer);				syslog(LOG_INFO,"niche%d = %s",k,conf->niches[k]);				break;			}		}	}		rewind(file_pointer);	while(!feof(file_pointer))	{		fgets(char_buffer,BUFFSIZE,file_pointer);		if (!strcmp(char_buffer,"ip\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			clean_char_buffer(char_buffer);			strcpy(conf->ip,char_buffer);			syslog(LOG_INFO,"ip = %s",conf->ip);		}		else if (!strcmp(char_buffer,"master\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			conf->master = atoi(char_buffer);			syslog(LOG_INFO,"master = %d",conf->master);		}		else if (!strcmp(char_buffer,"init_preffix\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			clean_char_buffer(char_buffer);			strcpy(conf->init_preffix,char_buffer);			syslog(LOG_INFO,"init_preffix = %s",conf->init_preffix);		}		else if (!strcmp(char_buffer,"result_preffix\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			clean_char_buffer(char_buffer);			strcpy(conf->result_preffix,char_buffer);			syslog(LOG_INFO,"result_preffix = %s",conf->result_preffix);		}		else if (!strcmp(char_buffer,"time_wait\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			conf->time_wait=atoi(char_buffer);			syslog(LOG_INFO,"time_wait = %d",conf->time_wait);		}		else if (!strcmp(char_buffer,"max_local\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			conf->max_local=atoi(char_buffer);			syslog(LOG_INFO,"max_local = %d",conf->max_local);		}		else if (!strcmp(char_buffer,"local_server_port\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			conf->local_server_port=(unsigned int)atoi(char_buffer);			syslog(LOG_INFO,"local_server_port = %d",conf->local_server_port);		}		else if (!strcmp(char_buffer,"remote_server_port\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			conf->remote_server_port=(unsigned int)atoi(char_buffer);			syslog(LOG_INFO,"remote_server_port = %d",conf->remote_server_port);		}		else if (!strcmp(char_buffer,"poblation\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			conf->poblation=atoi(char_buffer);			syslog(LOG_INFO,"poblation = %d",conf->poblation);		}		else if (!strcmp(char_buffer,"generations\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			conf->generations=atoi(char_buffer);			syslog(LOG_INFO,"generations = %d",conf->generations);		}		else if (!strcmp(char_buffer,"max_neuron_mut\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			conf->max_neuron_mut=atoi(char_buffer);			syslog(LOG_INFO,"max_neuron_mut = %d",conf->max_neuron_mut);		}		else if (!strcmp(char_buffer,"max_num_layer\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			conf->max_num_layer=atoi(char_buffer);			syslog(LOG_INFO,"max_num_layer = %d",conf->max_num_layer);		}				else if (!strcmp(char_buffer,"max_num_neuron\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			conf->max_num_neuron=atoi(char_buffer);			syslog(LOG_INFO,"max_num_neuron = %d",conf->max_num_neuron);		}		else if (!strcmp(char_buffer,"agregation\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			conf->agr=atoi(char_buffer);			syslog(LOG_INFO,"agregation = %d",conf->agr);		}		else if (!strcmp(char_buffer,"lifespan\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			conf->lifespan=atof(char_buffer);			syslog(LOG_INFO,"lifespan = %f",conf->lifespan);		}		else if (!strcmp(char_buffer,"mut_new_prob\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			conf->mut_new_prob=atof(char_buffer);			syslog(LOG_INFO,"mut_new_prob = %f",conf->mut_new_prob);		}		else if (!strcmp(char_buffer,"inm_prob\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			conf->inm_prob=atof(char_buffer);			syslog(LOG_INFO,"inm_prob = %f",conf->inm_prob);		}		else if (!strcmp(char_buffer,"mut_neuron_prob\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			conf->mut_neuron_prob=atof(char_buffer);			syslog(LOG_INFO,"mut_neuron_prob = %f",conf->mut_neuron_prob);		}		else if (!strcmp(char_buffer,"mut_net_prob\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			conf->mut_net_prob=atof(char_buffer);			syslog(LOG_INFO,"mut_net_prob = %f",conf->mut_net_prob);		}		else if (!strcmp(char_buffer,"base\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			conf->base=atof(char_buffer);			syslog(LOG_INFO,"base = %f",conf->base);		}		else if (!strcmp(char_buffer,"boost\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			conf->boost=atof(char_buffer);			syslog(LOG_INFO,"boost = %f",conf->boost);		}		else if (!strcmp(char_buffer,"level\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			conf->level=atof(char_buffer);			syslog(LOG_INFO,"level = %f",conf->level);		}		else if (!strcmp(char_buffer,"prob_alpha\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			conf->prob_alpha=atof(char_buffer);			syslog(LOG_INFO,"prob_alpha = %f",conf->prob_alpha);		}				else if (!strcmp(char_buffer,"prob_conv_rate\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			conf->prob_conv_rate=atof(char_buffer);			syslog(LOG_INFO,"prob_conv_rate = %f",conf->prob_conv_rate);		}				else if (!strcmp(char_buffer,"prob_bias_corr\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			conf->prob_bias_corr=atof(char_buffer);			syslog(LOG_INFO,"prob_bias_corr = %f",conf->prob_bias_corr);		}				else if (!strcmp(char_buffer,"prob_delta_type\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			conf->prob_delta_type=atof(char_buffer);			syslog(LOG_INFO,"prob_delta_type = %f",conf->prob_delta_type);		}				else if (!strcmp(char_buffer,"prob_momentum\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			conf->prob_momentum=atof(char_buffer);			syslog(LOG_INFO,"prob_momentum = %f",conf->prob_momentum);		}				else if (!strcmp(char_buffer,"prob_num_con\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			conf->prob_num_con=atof(char_buffer);			syslog(LOG_INFO,"prob_num_con = %f",conf->prob_num_con);		}				else if (!strcmp(char_buffer,"prob_bias\n"))		{			fgets(char_buffer,BUFFSIZE,file_pointer);			conf->prob_bias=atof(char_buffer);			syslog(LOG_INFO,"prob_bias = %f",conf->prob_bias);		}			}	fclose(file_pointer);	return(1);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -