Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile
Lenovo ha lanciato il ThinkTab X11 rimettendo piede nel segmento dei tablet Android con il marchio Think dopo oltre un decennio di assenza. Il risultato è un dispositivo che prende una direzione precisa: massima dotazione funzionale, costruzione resistente, autonomia fuori dagli schemi
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot
AMD Advancing AI è l'appuntamento annuale con il quale l'azienda americana mostra quelle che sono le proprie novità dal versante datacenter. Tra piattaforma Helios, GPU Instinct MI455X e processori EPYC di sesta generazione tutto quello che serve per processare l'IA sempre più complessa ed esigente
Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader
Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader
BOOX Go 6 Gen II porta per la prima volta il supporto allo stilo su un e-reader da 6 pollici, affiancando 3 GB di RAM al collaudato Snapdragon 665 e un design rivisto con scocca posteriore a costolature. Su carta la proposta è interessante, ma Android 11 fuori supporto, l'assenza di un alloggiamento per il pennino e un'autonomia ridotta rispetto agli e-reader tradizionali sono i compromessi da accettare
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 30-03-2006, 10:10   #1
giack83
Senior Member
 
Iscritto dal: Nov 2004
Messaggi: 862
Algoritmo per problema TST in C??

Salve a tutti,

devo implementare il problema del commesso viaggiatore in C; in poche parole date 1000 cordinate di citta, devo trovare il cammini (percorso) piu breve per passarle tutte.
Han detto di utilizzare l'algoritmo 2 OPT.
Cercando in google non ho trovato informazioni su esso, ci sarebbe qualcuno che perpiacere mi potrebbe dire come funziona, o dare il pseucodice? almeno da averne una idea su come implementarlo.

Grazie mille.
giack83 è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2006, 15:11   #2
pbg4
Member
 
Iscritto dal: Jul 2005
Messaggi: 131
Io userei uno SPath usando un approccio Dijkstra.
Ti metto il codice, vedi se puoi prendere spunto per fare quello che ti serve. Ciao


#include <stdio.h>

#include <stdlib.h>

#define TRUE 1

#define FALSE 0



typedef int bool;



/* grafo non etichettato */



#include "grafo.h" /* implementazione mediante liste di adiacenza */

typedef int itemType; /* code di interi */

#include "queue.h"





define N 25 /* N: numero dei nodi del grafo */



int dist[N]; /* array delle distanze */

int ST[N]; /* albero dei cammini */





void ShortestPaths(TipoGrafo g, int NumNodi, int nodo_iniz, void visita(int))

{

int i, j;

queue nodi_da_visitare;

bool visitati[NumNodi];





/* inizializzazione */

for (i = 0; i < NumNodi; i++) {visitati[i] = 0; dist[i]=0; ST[i]=i;}





nodi_da_visitare=initQueue(NumNodi*NumNodi);

enqueue(nodi_da_visitare, nodo_iniz);



/* cicla finche' ci sono nodi da visitare */

while (!emptyQueue(nodi_da_visitare)) {

/* prendi il prossimo nodo i da visitare */

i=dequeue(nodi_da_visitare);



/* analizza il nodo i e lo pone tra i nodi visti */

if (!visitati[i]) {



struct edge *ptr; /* implementazione esplicita */



visita(i);

visitati[i] = 1;



/* aggiunge i successori non visitati del nodo i ai nodi da visitare */

ptr=g[i];

while (ptr!=NULL){

if (!visitati[ptr->v]){

enqueue(nodi_da_visitare, ptr->v);

ST[ptr->v]=i;

dist[ptr->v]=dist[i]+1;

}

ptr=ptr->next;

} /* end-while */

} /* end-if */

} /* end-while */

} /* VisitaInAmpiezza-ST */







void StampaPath(int s, int t) {

if (s==t) printf("%d ", s);

else if (ST[t]==t) printf("Nessun cammino tra %d e %d", s,t);

else {

StampaPath(s,ST[t]);

printf("%d ", t);

}

}







/******* grafi etichettati *************/









typedef char *TipoEticNodo;

typedef unsigned float TipoEticArco;





struct arcoEtic {

int v;

TipoEticArco etic;

struct arcoEtic *next;

};





struct nodoEtic {

TipoEticNodo etic;

struct arcoEtic *next;

};



typedef struct nodoEtic *TipoGrafoEtic;







#include "pqueue.h" /* itemType gia' definito come int */



/* def. funzione di confronto */

int DistCmp(int i, int j){

/* distanze minori dalla sorgente hanno priorit‡ maggiore */

return (dist[i]<dist[j])? 1: ((dist[i]==dist[j])? 0: -1);

}







void RipristinaUp(pqueue pq, int v, int cmp(itemType, itemType)){

/* v e' il vertice. E' aumentata la priorita' */



int temp, k;

k=pq->top[pq->cnt-1];

while (pq->top[k]!=v) k--;

fixUp(pq, k, cmp);

}




void Dijkstra_like(TipoGrafoEtic g, int NumNodi, int nodo_iniz) {

/* shortest paths: approccio Dijkstra */



int i, j;

pqueue pq; /* coda di priorit‡ sugli interi */

bool visitati[NumNodi];



/* inizializzazione */

for (i = 0; i < NumNodi; i++){

visitati[i] = FALSE;

ST[i]=i;

dist[i]=0;

}

pq = initPQ(NumNodi*NumNodi); /* impl. heap */





insertPQ(pq, nodo_iniz, DistCmp);

while (!emptyPQ(pq)) {

i=delMax(pq, DistCmp); /* il vertice i e' quello di priorita' max */



if (!visitati[i]) {

struct arcoEtic *ptr=g[i].next;

visitati[i]=TRUE;



while (ptr!=NULL){

if (!visitati[ptr->v] && dist[ptr->v]==0){ /* adiacente non in pq */

ST[ptr->v]=i;

dist[ptr->v]=dist[i]+ptr->etic;

insertPQ(pq,ptr->v,DistCmp);

} else if (!visitati[ptr->v] && dist[ptr->v]>dist[i]+ptr->etic){

ST[ptr->v]=i;

dist[ptr->v]= dist[i]+ptr->etic;

RipristinaUp(pq,ptr->v, DistCmp);

}

ptr=ptr->next;

} /* end-while */

} /* end-if */

} /* end-while */

}
__________________
PowerBook G4 1,5, 60Gb Hd, 1,2 Gb DDR, mouse wireless by Apple, iPod nano black 4GB, laurea in informatica
GeForce Fx 5200 64mb
pbg4 è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2006, 20:03   #3
-Ivan-
Senior Member
 
L'Avatar di -Ivan-
 
Iscritto dal: Mar 2003
Città: Rimini
Messaggi: 1846
Quote:
Originariamente inviato da giack83
Salve a tutti,

devo implementare il problema del commesso viaggiatore in C; in poche parole date 1000 cordinate di citta, devo trovare il cammini (percorso) piu breve per passarle tutte.
Han detto di utilizzare l'algoritmo 2 OPT.
Cercando in google non ho trovato informazioni su esso, ci sarebbe qualcuno che perpiacere mi potrebbe dire come funziona, o dare il pseucodice? almeno da averne una idea su come implementarlo.

Grazie mille.
Non farai mica scienze dell'informazione a cesena?
Anche io devo farlo e sono messo un po' male per ora però ci sto lavorando su.
-Ivan- è offline   Rispondi citando il messaggio o parte di esso
Old 02-04-2006, 14:17   #4
pbg4
Member
 
Iscritto dal: Jul 2005
Messaggi: 131
No, sono laureato in informatica! In bocca al lupo per l'esame...
pbg4
__________________
PowerBook G4 1,5, 60Gb Hd, 1,2 Gb DDR, mouse wireless by Apple, iPod nano black 4GB, laurea in informatica
GeForce Fx 5200 64mb
pbg4 è offline   Rispondi citando il messaggio o parte di esso
Old 04-04-2006, 14:15   #5
giack83
Senior Member
 
Iscritto dal: Nov 2004
Messaggi: 862
Grazie per le risposte, si faccio scienze dell'informazione....

cmq devo per forza utilizzare l'algoritmo 2-OPT, qualcosa su esso avete?
anche un pseudocodice va bene, almeno da avere uno spunto.....
giack83 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile Il tablet rugged leggero e sottile: Lenovo Think...
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot AMD Advancing AI 2026: l'hardware AMD per le ela...
Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader Tascabile e con Android: BOOX Go 6 Gen II &egrav...
Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro Recensione Lenovo Idea Tab Plus: il tablet da 12...
Oltre il contante e le crypto: tutto sull'Euro Digitale e la nuova sovranità monetaria europea Oltre il contante e le crypto: tutto sull'Euro D...
SpaceX ha lanciato il razzo spaziale Sta...
Anthropic lancia Claude Opus 5: eclissa ...
Batterie a terra per Varta, bancarotta v...
Elon Musk: l'intelligenza artificiale su...
Ryzen 7 9800HX3D: il miglior processore ...
Google porta Gemini Live sui vecchissimi...
Corsair Platform:4 in offerta: la scriva...
Il creatore di Disagea sull'addio dei gi...
Fastweb + Vodafone entra nello SmartCity...
AI Act europeo: dal 2 agosto partono i n...
Da 1,3 a 10 miliardi in due mesi: chi è ...
Schede video RTX: NVIDIA comunica nuovi ...
GTA 6, i 60 fps stabili potrebbero esser...
Questa Smart TV QLED da 40 pollici con H...
Ring in sconto fino al 57%: videocitofon...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 02:07.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v