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

📄 matrixpso.h

📁 用于逻辑电路设计的PSO算法代码,代码简单明了
💻 H
字号:
/********************************************************/
/*					CINVESTAV - IPN						*/
/*			Departamento de Ingener韆 El閏trica			*/
/*					Secci髇 Computaci髇					*/
/*														*/	
/*				   Computacion Evolutiva				*/
/*														*/
/*					Erika Hernandez Luna				*/
/*			 eluna@computacion.cs.cinvestav.mx			*/
/*					  2 / agosto / 2003					*/
/*														*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/* Archivo: circuitos.h									*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/* Descripci髇: Archivo de encabezado de la biblioteca	*/
/* matrixpso.c.											*/
/********************************************************/

#include <malloc.h>

#ifndef MATRIXPSO
#define MATRIXPSO

/*Define el tipo de datos de la matriz*/
#define matrix unsigned*	

/*Reserva memoria para almacenar las variables decodificadas de cada una de las celdas de la matriz*/
#define memValCelda (unsigned)malloc(sizeof(unsigned)*numReng*numCols)	

/*Tama駉 maximo de la expresion booleana y su tipo de dato*/
#define sizeExpBooleana	4000			
typedef char cadBooleana[sizeExpBooleana];

unsigned numReng;		/*Numero de renglones de la matriz*/
unsigned numCols;		/*Numero de columnas de la matriz*/
unsigned *entrada1;		/*Valores decodificado de las entradas 1 de las compuertas para obtener la aptitud de la matriz (temporal)*/
unsigned *entrada2;		/*Valores decodificado de las entradas 2 de las compuertas para obtener la aptitud de la matriz (temporal)*/
unsigned *tipoG;		/*Valores decodificado del tipo de compuerta para obtener la aptitud de la matriz (temporal)*/
unsigned **inTT;		/*Almacena entrada y salida de cada etapa de evaluacion de la matriz de compuertas (temporal)*/
unsigned *cuentaG;		/*Almacena la cuenta de las compuertas de una matriz (temporal)*/
unsigned *salida;		/*Almacena la salida de una sola etapa de evaluacion  de la matriz de compuertas (temporal)*/
unsigned tMat;			/*Tama駉 de la matriz usada = numReng*numCols*/


/*Funciones para el manejo de la matriz*/
void reservaMemoriaMatriz(void);				/*Reserva memoria para las variables globales de la decodificacion*/
void liberaMemoriaMatriz(void);					/*Libera memoria para las variables globales de la decodificacion*/
void decodifica(matrix);						/*Convierte los valores de cada una de las celdas de la matriz en las entradas1, entradas2 y tipo de compuerta*/
void evalua(matrix,unsigned*);					/*Evalua a la matriz y obtiene el n鷐ero de violaciones al circuito pedido asi como el n鷐ero de WIRE's*/
unsigned cuentaCompuertas(void);				/*Cuenta el n鷐ero de compuertas totales involucradas en las soluciones*/
void cCompuerta(unsigned,int,unsigned*);		/*Cuenta el numero de compuertas involucradas en una solucion*/
void expresion(matrix,cadBooleana,unsigned);	/*Obtiene la expresi髇 booleana que representa la matriz*/
void cadenaBooleana(unsigned,int,cadBooleana);	/*Procedimiento recursivo que va pegando a la cadena los caracteres que definir醤 la exp booleana*/
void imprimeMatriz(matrix M);					/*Imprime los datos de la matriz de compuertas*/

#endif

⌨️ 快捷键说明

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