|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: May 2005
Messaggi: 34
|
problemi di undefined reference
ciao a tutti,
vi pongo un problema che spero sia di facile soluzione, (sto programmanda in c++ da 1 settimana) , sto cercando di implementare una libreria per risolvere il TSP su grafo tramite Ant Colony Optimization in c++, praticamente le formiche si muovono sul grafo e trovano la soluzione migliore aggiungendo "feromone" sui lati del percorso migliore (seguiranno VRP,vehicle routing problem, multiplo con capacità e time window e il PDP,pickup and delivery problem, è per la tesi!) il problema è questo: header classe formica: Codice:
class AntTSP {
public:
long int *tour;
char *visited;
long int tour_length;
long int n; //numero di passi nel tour
(nel tsp corrisponde al num città)
//puntatori alle variabili del problema AcoTSP utilizzate
static double **total;
static double q_0;
.....
.....vari metodi..
implementazione Codice:
#include "AntTSP.h"
AntTSP::AntTSP()
{
}
void AntTSP::init(long int num)
{
n = num;
tour = new long int[n+1];
visited = new char [n];
}
AntTSP::~AntTSP()
{
delete [] tour;
delete [] visited;
}
..metodi..
Codice:
void AcoTSP::initialize(const char *tsp_file_name)
{
set_default_parameters();
TSP::initialize( tsp_file_name, nn); //viene inizializzato col metodo di TSP
//alloca la colonia
ant = new AntTSP[n_ants];
for (int i = 0 ; i < n_ants ; i++ )
{
ant[i].init(n);
}
//passo i parametri del problema alla colonia
AntTSP::total; //matrice del feromone
AntTSP::q_0=q_0;
...
il distruttore di AcoTSP fa il delete di ant. Ora alla fine di tutta questa descrizione il problema è che in fase di link di un programma di prova che chiama i metodi di AcoTSP c'è un "link error undefined reference to Ant::total, Ant::q_0 ecc.." cioè di tutti i membri statici, ripetuti varie volte. Nei metodi di AcoTSP vengono chiamati metodi che lavorano sulle formiche che a loro volta utilizzano in lettura i membri statici della loro classe. Qualcuno mi può aiutare? Vi ringrazio in anticipo. ciaoo Ultima modifica di ziph : 22-10-2006 alle 05:00. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:52.



















