Exemple #1
0
void freeModel(_md)
{
	size_t predNum, funcNum, axNum, taskNum,
		   factNum, restrNum, typeNum, srcNum, errNum;

	freeServData(modelPtr);

	/* Predicates */
	forVect(predNum, preds_m)
		freeFunc(getPredPtr(predNum));
	
	/* Functions */
	forVect(funcNum, funcs_m)
		freeFunc(getFuncPtr(funcNum));
		
	/* Axioms */
	forVect(axNum, axioms_m)
		freeAxiom(getAxPtr(axNum));

	/* Tasks */
	forVect(taskNum, taskPtrs_m)
		freeTask(getTaskPtr(taskNum));

	/* Temp Facts */
	forVect(factNum, tmpFacts_m)
		freeFact(ptr(Fact, tmpFacts_m) + factNum);

	/* Restrictions */
	forVect(restrNum, restrs_m)
		freeRestriction(getRestrPtr(restrNum));

	/* DataTypes */
	forVect(typeNum, types_m)
		freeDataType(getTypePtr(typeNum));

	/* Sources */
	forVect(srcNum, modelPtr->sources)
		freeSource(ptr(Source, modelPtr->sources) + srcNum);
	
	/* Errors */
	forVect(errNum, modelPtr->errors)
		freeError(ptr(Error, modelPtr->errors) + errNum);

	/* Vectors */
	freeVect(preds_m);
	freeVect(funcs_m);
	freeVect(axioms_m);
	freeVect(taskPtrs_m);
	freeVect(tmpFacts_m)
	freeVect(restrs_m); 
	freeVect(types_m);
	freeVect(modelPtr->errors);
	freeVect(modelPtr->sources);
}
Exemple #2
0
int main(int argc, char **argv)
{
	source * src;
	int i;
	int * M;
	int * resultat;
       
	if(argc < 2)
	{
	    printf("syntaxe : %s benchmarks_Taillard/...\n", argv[0]);
	    return -1;
	}
	src=readsrc(argv[1]);          // table de durée d'opération Tab[][]
	M=TabtoM(src);                 // table de durée d'opération M[]
    //aff_source(src);
	//aff_M(M,src->n,src->m);

	// ILS
	resultat=ILS(M, src->n, src->m);
	printf("ILS la séquence de Jobs est: \n");
	for(i=0;i<src->n;i++)	
		printf("%-4d",resultat[i]);
	printf("\nILS la somme de date de fin est:  %d\n",calculateCbarre(M, src->m, src->n, resultat, src->n));

	// IGA
	resultat=IGA(M, src->n, src->m);
	printf("IGA la séquence de Jobs est: \n");
	for(i=0;i<src->n;i++)	
		printf("%-4d",resultat[i]);	
	printf("\nIGA la somme de date de fin est:  %d\n",calculateCbarre(M, src->m, src->n, resultat, src->n));
	
	free(resultat);
	freeSource(src);
	freeM(M);

	return 1;
}