All pastes #2077064 Raw Edit

Miscellany

public text v1 · immutable
#2077064 ·published 2011-06-09 01:56 UTC
rendered paste body
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

/******************************************************************************************

	Por:	Pablo Navarrete C.
	Rol:	2373543-1
	Problema: 	Relaxed	Time Traveling Tournament
	Metodo:		Simulated Annealing

*******************************************************************************************/


int n = 4;
int n2 = n + 1; 					// numero de equipos
int fec = 2 * (n - 1);					// numero de fechas o partidos

int i;
int j;
int a;
int sum;
int igual;
int temp;

//FUNCION QUE CREA LA SOLUCION INICIAL EN MODO RANDOM ------------------------------------
int** crear_solucion(){



int x[n2][n2];						// establece instancia de partidos. valores enter 1 y n
							// primer valor local, segundo visita
int c[n2][n2];						// costos de variable X[i][j]
int y[n2][fec + 1];					// formato respuesta
int z[n2][fec + 1];					// formato respuesta 2

	
	//Iniciar matriz en 0
	for( i = 1 ; i <= n ; i++ ){
		for( j = 1 ; j <= n ; j++ ){
			x[i][j] = 0;
		}
	}

i = 1;
j = 1;

srand ( time(NULL) );

system("clear");
	//Genera Matriz Solucion Inicial esigando fechas en random
	for( i = 1 ; i < n2 ; i++ ){
		for( j = i+1 ; j < n2 ; j++ ){
	
			do{	
				sum = rand() % 2;
				if(sum == 0){ sum = 1;}else{sum = -1;}

				x[i][j] = sum*((rand() % (n-1)) + 1);
				x[j][i] = -1*(x[i][j]);


				igual = 0;
				for( a=1 ; a <= n ; a++ ){	
					if( (abs(x[i][j]) == abs(x[i][a])) && a != j ){
						igual = 1;
					}
					if( (abs(x[i][j]) == abs(x[a][j])) && a != i ){
						igual = 1;
					}
				}
					
			}while(igual != 0);
			
					
		}
	}


//SOLUCION INICIAL FILA vs COLUMNA EN X[i][j] la FECHA
for(i=1;i<n2;i++){
	for(j=1;j<n2;j++){
		if(i!=j){
	//	printf ("\t%d\t|", x[i][j] );
			temp = x[i][j];
			y[i][temp] = j;
			y[i][(-1)*temp] = (-1)*j;
			y[j][temp] = i;
			y[j][(-1)*temp] = (-1)*i;
		}
	}
	
}

//SOLUCION INICIAL POR EQUIPO ESTILO SOLUCION SOLICITADA de -1 -2 ... -n  1  2 ... n
//Y TRASPASO A SOLUCION INICIAL POR EQUIPO ESTILO SOLUCION SOLICITADA de 0  2  3 ... 2(n-1)
a=0;

/*
printf ("\n\n");
printf ("\t\t----TABLA DE PARTIDOS SOLUCION INICIAL----");
printf ("\n\n");
*/

for( i=-1 ; i >= (-1)*(n-1) ; i-- ){
	for(j=1;j<n2;j++){
		z[j][a] = y[j][i];	
	}
	a++;

}
for( i=1 ; i <= (n-1) ; i++ ){
	for(j=1;j<n2;j++){
		z[j][a] = y[j][i];	
	}
	a++;
}
/*
// IMPRIME TABLA DE RESULTADOS INICIAL
for( a=0 ; a < 2*(n-1) ; a++ ){
	for(j=1;j<n2;j++){
		printf ("\t%d\t|", z[j][a] );

	}
}
*/
return z;

}




//FUNCION QUE CALCULA EL COSTO DE LA SOLUCION ACTUAL ------------------------------------
/*
int function calc_costo(){


}
*/

int main(){
system("clear");

int x[n2][fec + 1];

x = crear_solucion();

printf ("Contenido: %d \n", x[0][0]);



/*
printf ("\n\n");
printf ("\t\t----TABLA DE PARTIDOS SOLUCION INICIAL----");
printf ("\n\n");

// IMPRIME TABLA DE RESULTADOS INICIAL
for( a=0 ; a < 2*(n-1) ; a++ ){
	for(j=1;j<n2;j++){
		printf ("\t%d\t|", x[j][a] );

	}
printf ("\n\n");
}
*/




return 0;
}