Kashub's Code Barn - "ss"

podświetlone jako c (dodał(a) ss @ 2020-12-06 12:24:22)

Twoja wyszukiwarka
Podświetl ten kod w:
Ostatnio dodane:
Losowe wpisy:
/*
n - zadana liczba zmiennych
m - zadana liczba genów użyta do zakodowania jednej zmiennej
lp - zadana liczność populacji, z założenia parzysta
xmin[lp] - zadana jednowymiarowa tablica minimalnych wartości zmiennych projektowania
xmax[lp] - zadana jednowymiarowa tablica maksymalnych wartości zmiennych projektowania
f(x) - zadana funkcja przystosowania
x[n] - jednowymiarowa tablica zmiennych projektowania
fp[lp] - jednowymiarowa tablica funkcji przystosowania osobników populacji
tchr[lp][n*m] - dwuwymiarowa tablica chromosomów osobników rodzicielskich
tchp[lp][n*m] - dwuwymiarowa tablica chromosomów osobników potomnych
 
*/
 
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>
 
 
/*parametry algorytmu widoczne w kazdej funkcji programu, wartosci testowe*/
#define n 2
#define m 6
#define lp 2
 
 
/*zmienne globalne widoczne w kazdej funkcji programu, wartosci testowe*/
float xmin[n]={-2,3};
float xmax[n]={4.3,9.3};
 
 
float f(float x[n])
{
	int i;
	float s=0;
 
	for(i=0;i<n;i++) 
	s=s+x[i]*(sin(x[i])*sin(x[i]));
	return s;
}
 
void drukuj_populacje(int tchr[lp][n*m])
{
	int i,j;
	for(i=0;i<lp;i++){
		for(j=0;j<n*m;j++){
			printf("%1d",tchr[i][j]);
		}
		printf("\n");
	}
	printf("\n");
}
 
void inicjalizacja_pierwszej_populacji(int tchr[lp][n*m])
{
	int i,j;
	for(i=0;i<lp;i++){
		for(j=0;j<n*m;j++){
			tchr[i][j]=rand()%2;
		}
	}
}
 
void ocena_osobnikow_populacji(int tchr[lp][n*m], float fp[lp])
{
	int k,i,j,ng=0,nfp=0,l;
	float x[n],nx[n],p2,wdi;
 
	for(j=0;j<lp;j++){
		for(i=0;i<n;i++){
			p2=1;
			wdi=0;
			for(k=0;k<m;k++){
				ng=i*m+k;
				wdi=wdi+tchr[j][ng]*p2;
				p2=p2*2;
			}
			x[i]=xmin[i]+(xmax[i]-xmin[i])*wdi/(p2-1);
		}
		fp[j]=f(x);
		if(fp[j]>nfp)
		{
			nfp=fp[j];
			for(i=0;i<n;i++)
			{
				nx[i]=x[i];
			}
		}
		for(l=0;l<n*m;l++){
		printf("%d", tchr[j][l]);
		if(l==m-1)
		printf("  ");
		}
		printf("\n");
		for(i=0;i<n;i++)
		{
			printf("x[%d] = %f \n",i,x[i]);
		}
		printf("\n");
 
	}
	printf("nfp = %d ", nfp);
} 
 
 
int main()
{
	int tchr[lp][n*m];
	float fp[lp];
	srand(time(NULL));
 
	inicjalizacja_pierwszej_populacji(tchr);
	drukuj_populacje(tchr);
	ocena_osobnikow_populacji(tchr,fp);
	return 0;
}
| Wózki dla dzieci | | Opony letnie | | Opony motocyklowe | | Sklep z artykułami RTV/AGD | | Dyskretny sexshop internetowy | | karma dla psa - sklep | | Załóż za darmo bloga | | Wklejacz kodów | | Opisy na Facebooka | | Pionowe opisy |