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

📄 methods.c

📁 A Dissipative Particle Swarm Optimization
💻 C
字号:
#include "headfile.h"
#include "global.h"
#include "mem_loc.h"
#include "myfun.h"
#include "methods.h"

float meanTotalValues(FMATRIX values, int row, int col) {
	float meanValue = 0;
	int i, j;

	j=0;
    for (i=0; i<row; i++) {
	    for (j=0; j<col; j++) {
			meanValue += (fabs(values[i][j]));
		}
    }
	
    return meanValue/((float)(row*col));
}

FVECTOR meanValues(FMATRIX values, int row, int col) {
	FVECTOR meanValues;
	int i, j;
	FVectorAllocate(&meanValues, row);
    for (i=0; i<row; i++) {
	    for (j=0; j<col; j++) {
			meanValues[i] +=  log(fabs(values[i][j]));
		}
		meanValues[i] = meanValues[i]/col;
    }
    return meanValues;
}

float squareSum(FVECTOR v1, int len) {
	float totalSum = 0;
	int i;
	for (i=0; i<len; i++) {
	  totalSum += pow(v1[i],2.0);
	}
	return sqrt(totalSum);
}

float totalDiversity(FMATRIX individuals, int row, int col) {
	FVECTOR meanVal;
	FVECTOR devValues;
	int i, j;
    float diversities = 0;
	FVectorAllocate(&devValues, row);
 	meanVal = meanValues(individuals, row, col);
   for (i=0; i<col; i++) {
		for (j=0; j<row; j++) {
			devValues[j] = individuals[j][i]-meanVal[j];
		}
		diversities += squareSum(devValues, row);
    }
    diversities = diversities/col;
    return diversities;
}

float totalMeans(FMATRIX individuals, int row, int col) {
	int i;
    float diversities = 0;
    for (i=0; i<col; i++) {
		diversities += squareSum(individuals[i], row);
    }
    diversities = diversities/col;
    return diversities;
}

void printMatrix(FMATRIX values, int row, int col) {
	int i, j;
	for (i=0; i<col; i++) {
		for (j=0; j<row; j++) {
			printf("%f\t", values[j][i]);
		}
		printf("\n");
	}
	printf("\n");
}

void outputMatrix(FILE* file, FMATRIX values, int row, int col) {
	int i, j;
	for (i=0; i<col; i++) {
		for (j=0; j<row; j++) {
			fprintf(file, "%f\t", values[j][i]);
		}
		fprintf(file, "\n");
	}
	fprintf(file, "\n");
}
void printVECTOR(FVECTOR values, int col) {
	int j;
	for (j=0; j<col; j++) {
		printf("%f\t", values[j]);
	}
	printf("\n");
}

void outputVECTOR(FILE* file, FVECTOR values, int col) {
	int j;
	for (j=0; j<col; j++) {
		fprintf(file, "%f\t", values[j]);
	}
	fprintf(file, "\n");
}

⌨️ 快捷键说明

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