![]() |
Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Algoritmi e strutture dati (http://www.dsy.it/forum/forumdisplay.php?forumid=207)
-- Progetto per appello del 3 settembre (http://www.dsy.it/forum/showthread.php?threadid=40811)
Progetto per appello del 3 settembre
Quando dovrebbe uscire?
__________________
My Blog - My Photo Album
In teoria oggi, visto ke di solito da 2 settimane di tempo...
Originally posted by Guepe
In teoria oggi, visto ke di solito da 2 settimane di tempo...
Originally posted by plafo
credo che il 3 settembre sia la data in cui esce il progetto, poi si hanno due settimane per farlo e consegnarlo
Originally posted by Guepe
guardando gli appelli di settembre degli anni passati faceva uscire il progetto il giorno dell'appello al contrario degli altri appelli durante l'anno in cui anticipava di due settimane!meglio così!
ha messo un'avviso sul suo sito, il progetto verrà pubblicato il 30 agosto e dovrà essere consegnato entro il 20 settembre
ma scusa dove hai letto l'avviso?
Originally posted by gianni.malvasi
ma scusa dove hai letto l'avviso?

regalo abbonamento di 2 anni a playboy a chi mi fa il progetto lol!
__________________
My Blog - My Photo Album
io continuo a non vedere nessun avviso ne sul sito di aguzzoli ne su quello di torelli...
idem
__________________
My Blog - My Photo Album
idem
__________________
My Blog - My Photo Album
Ciao,
l'avviso è presente sul sito del corso della dott.sa Lonati:
http://lonati.dsi.unimi.it/algo/0910/?page=avvisi
solitamente il progetto è preparato da entrambi i docenti di lab.
Originally posted by radyo
Ciao,
l'avviso è presente sul sito del corso della dott.sa Lonati:
http://lonati.dsi.unimi.it/algo/0910/?page=avvisi
solitamente il progetto è preparato da entrambi i docenti di lab.
ma ci sono problemi x aprire il sito del prof.....voi ci riuscite????
Originally posted by gianni.malvasi
ma ci sono problemi x aprire il sito del prof.....voi ci riuscite????
è uscito!!
http://homes.dsi.unimi.it/~aguzzoli/algo.htm
ma dov'è???????????????????????????????
nn c'è sul sito!!!!!!!!!!!!!!!
http://homes.dsi.unimi.it/~aguzzoli...componenti2.pdf
componenti elettroniche 2
ciao, qualcuno mi potrebbe aiutare a capire come calcolare i seguenti valori?
pag. 2 es.1 B(D1)=28+20=48
- come calcola il 28?
-20 perchè calcola solo il perimetro del quadrato 5*4=20?, non considerando la componente c6 perchè sovrapposta?
pag 3 es.2 C(D1)=(....)+(4+2+3+5)=40
-non somma il costo della famiglia di c2 perchè dato che dopo non c'è un'altra componente allora non c'è costo di trasferimento?
C(D2)=(...)+(0+3)=18
-(0+3) lo ricava in questo modo?
delta(c1,c2)=0 perchè F(c1)=F(c2)
delta(c2,c3) = delta(F(c2)) = 3 perchè F(c2)!=F(c3)
poi dato che dopo c3 non c'è un'altra componente allora non c'è costo di trasferimento??
grazie dei chiarimenti!
anch'io non riesco a capire i conti.... allora...
vedendo lo scorso progetto che si parla di aree e a noi di perimetro i conti mi vengono considerando le parti sovrapposte ma sul progetto nuovo no...
cn le aree viene--> 25 + 2 + 12 + 10 = 49
cn il perimetro viene-> 20 + 6 + 14 + 14 = 54
dovrebbe venire-->20 + 28 = 48
qualcuno ci aiuta?????
forse contano solo le componenti sovrapposte, quindi hai 20 di c6 e c5
mentre per le altre 3 forse non considera il segmento 2,3 3,3 (parte della componente c4) perchè non sovrapposta.?
i costi invece?
Per quanto riguarda il perimetro credo di aver capito, dalla figura 1 si evince che F(D) non è connessa e che è quindi formata dalle 2 sottofigure rispettivamente:
(c1,c4,c2) e (c6,c5)
in entrambi i casi le sottofigure hanno dei componenti sovrapposti pertanto nel caso di (c6,c5) notiamo che c6 è più piccolo di c5 ed è "contenuto" all'interno del perimento di c5 che è 5+5+5+5 cioè 20.
Nel caso di (c1,c4,c2) la figura che viene fuori dalla sovrapposizione è molto più irregolare e per calcolare il perimetro bisogna sommare tutti i vari lati che compongono il perimetro nel nostro caso abbiamo:
11 (base) + 1 + 2 + 2 + 4 +1 + 5 +2 = 28
vi convince?
il problema è: come far fare il calcolo al computer che non "vede" la figura???
allora...
per l'esempio1 :
D(D1)= 28 + 20 = 48
il 20 è il perimetro del componente c5 cioè--> 5+5+5+5=20
per il 28 considerate le altre figure ma attenti a contare bn cn le sovrapposizioni. Vedete le figure come un'unica figura--> per la base basta contare dal componente c4 alla fine del componente c2 quindi è 11. ovviamente è 11 + 11 che è la parte di sopra poi...il lato di sx e quello di dx è 3 visto che si sovrappongono ed è il + grande (vedi c1) alla fine...11 + 11 + 3 + 3 = 28
Esempio2:
C(D1)=(c6+c5+c1+c4+c2) + (delta) = 40
facciamo la prima c6...vedo nella tabella colonna F riga c6 ed è 7
adesso nella tabella dell'esempio 2 a 7 corrisponde delta 4...
fate gli altri e torna...l'ultimo nn lo consideriamo xkè nn ci sn + componenti dopo
C(D2)=(c1+c2+c3)+(delta)= 18
allora se vedete nella tabella c1 e c2 appartengono alla stessa famiglia quindi costo 0
mentre c3 ha costo 3 perchè nn essendoci altri componenti si vede la famiglia precedente quindi F = 3 e delta = 3
spero di essere stato chiaro...
Originally posted by iron
Per quanto riguarda il perimetro credo di aver capito, dalla figura 1 si evince che F(D) non è connessa e che è quindi formata dalle 2 sottofigure rispettivamente:
(c1,c4,c2) e (c6,c5)
in entrambi i casi le sottofigure hanno dei componenti sovrapposti pertanto nel caso di (c6,c5) notiamo che c6 è più piccolo di c5 ed è "contenuto" all'interno del perimento di c5 che è 5+5+5+5 cioè 20.
Nel caso di (c1,c4,c2) la figura che viene fuori dalla sovrapposizione è molto più irregolare e per calcolare il perimetro bisogna sommare tutti i vari lati che compongono il perimetro nel nostro caso abbiamo:
11 (base) + 1 + 2 + 2 + 4 +1 + 5 +2 = 28
vi convince?
il problema è, come dice SanJuanWolf89, come si gestisce questa sovrapposizione...... :-/
Un altro problemino: le consegne dell'esempio 1 si ottengono facilmente con le liste... quelle successive non so ancora. Voi che strutture dati pensate di usare?
Qualcuno sa dirmi se l'orale del Prof. Torelli è realmente il 3 settembre o lo fa in concomitanza con quello del progetto?
Grazie in anticipo
Originally posted by fxxstefano
Qualcuno sa dirmi se l'orale del Prof. Torelli è realmente il 3 settembre o lo fa in concomitanza con quello del progetto?
Grazie in anticipo
qualcuno ha iniziato a scrivere qualcosa per il progetto???
se conoscete qualcuno che ha fatto lo scorso è molto simile...
cerchiamo di farlo o meglio di scambiarci alcune idee
io ho pensato ad alberi rb x i vari componenti voi che dite????
Per questo progetto si può usare la base del vecchio componenti?
__________________
My Blog - My Photo Album
ma le funzioni base si...tranne che nel vecchio era l'area e nel nuovo c'è il perimetro...
voi che struttura dati state usando per la lista delle componenti?
Io per ora sono su una semplice lista linkata ma sicuramente dovrò implementare qualcosa di più complesso. Ho qualche idea ma volevo prima vedere cosa stavate facendo voi, prima di buttarmi a capofitto in roba troppo e inutilmente ottimizzata.
Io ho usato gli alberi rb per i componenti...
nn riesco a capire quando si parla di trasferimento...allora l'esempio 2 l'ho capito...ma quando vado a leggere l'output che dobbiamo inserire non capisco + nulla o meglio...
t 1 6
t 2 5
che cosa vogliono dire??
1 e 2 sono la famiglia e 6 e 5???
xkè nell'esempio si vede c1 c2 c3 ecc ma quando sono tt c????
Originally posted by gianni.malvasi
Io ho usato gli alberi rb per i componenti...
nn riesco a capire quando si parla di trasferimento...allora l'esempio 2 l'ho capito...ma quando vado a leggere l'output che dobbiamo inserire non capisco + nulla o meglio...
t 1 6
t 2 5
che cosa vogliono dire??
1 e 2 sono la famiglia e 6 e 5???
xkè nell'esempio si vede c1 c2 c3 ecc ma quando sono tt c????
se faccio i conti vedendo solo i vari componenti senza le varie t mi viene 27 che è il numero che deve uscire in output...quindi a che servono t 1 6 ecc ecc????
scusate ho sbagliato i conti....non mi viene
qlkn è arrivato alla funzione prospetto???
prima di implementare la funzione prospetto...non capisco il costo minimo...nell'esempio 3 come faccio a dire se appartiene o meno al prospetto??? e poi quando dice che il dispositivo c2,2..c7,3..c6,1 non è realizzabile per P in quanto ecc ecc come mai viene così??
eh tu nn devi mica importare un file in cui ci sn tti i dati???..se prima nn s riesce a importare x bene i dati (parentesi escluse e stabilendo che sono la fine di ogni gruppetto) non s puo fare niente...una volta fatto poi s calcola il costominimo...e x altro i valori definiti nel file prospetto devono in qlk modo essere ricollegati a quelli gia inseriti (ad es x qnt riguarda il costo)...e quello e un casino...
si ok hai ragione...ma prima di scriverlo in C voglio capire prima bn gli esempi del prof che nn ho capito...sia il costo minimo che il prospetto dell'esempio 3
scusate vi pongo questa domanda...
nella funzione traferimento non riesco ad associare il valore x alla famiglia di riferimento...ho creato un albero rb per i componenti e quindi vorrei estrarre dall'albero il puntatore alla famiglia ed associargli il valore di x
aiutooooo
Originally posted by gianni.malvasi
scusate vi pongo questa domanda...
nella funzione traferimento non riesco ad associare il valore x alla famiglia di riferimento...ho creato un albero rb per i componenti e quindi vorrei estrarre dall'albero il puntatore alla famiglia ed associargli il valore di x
aiutooooo
sto impazzendo per creare la funzione trasferimento...
sto provando a fare la matrice ma non riesco e sn bloccato...
se qualcuno l'ha già fatta la posterebbe qui...
per la funzione stampa()...ho costruito un albero di ricerca per avere i componenti ordinati per costo in modo che li possa stampare con una semplice visita in ordine simmetrico
Originally posted by gianni.malvasinon capisco dove sia il problema. è un lavoro da 10 minuti se già hai le funzioni dell'albero rb.
sto impazzendo per creare la funzione trasferimento...
sto provando a fare la matrice ma non riesco e sn bloccato...
se qualcuno l'ha già fatta la posterebbe qui...
per la funzione stampa()...ho costruito un albero di ricerca per avere i componenti ordinati per costo in modo che li possa stampare con una semplice visita in ordine simmetrico
il problema che nn sono molto pratico del c e ho delle difficoltà...
ma nemmeno io, ma se sei riuscito a fare l'albero rb, il trasferimento è una cazzata.
fai un albero con chiave un int che è la famiglia e come valore un int che è il costo. bon, finito lì
Qualcuno ha scritto la funzione che calcola il perimetro?
Originally posted by iron
Qualcuno ha scritto la funzione che calcola il perimetro?
Io ho messo i dati in una lista come dici tu, mettendo la posizione più bassa in testa, in modo da avere la lista ordinata per posizione.
come pensi di gestire le sottofigure non connesse?
si può fare giocando un po' con le posizioni iniziali e le lunghezze.
ammettiamo di essere nel blocco A composto da 3 figure che si connettono e/o sovrappongono.
diciamo di avere un int che segna la posizione fin dove sono arrivato a calcolare.
quando questo puntatore va avanti, aggiungo e tolgo le figure "attive", ovvero che hanno il puntatore nell'intervallo [pos,pos+ lung].
Diciamo che siamo alla posizione 10. Se alla posizione 10 non ho figure attive, passo a guardare quella dopo. inizia a 10? si, allora son due figure affiancate e van considerate come un blocco unico. inizia dopo 10? vuol dire che c'è un buco.
qlkn ha implementato la funzione prospetto e ha capito come cacchio si leggono le parentesi cm fine carattere...e una cavolata ma proprio nn m viene..
In che struttura dati metterai il prospetto?
allora io ho implementato un albero rb x la funzione c
e poi x qnt riguarda il prospetto pensavo a una lista ordinata...il problema xo e cm inserire i dati dal file:S
Ciao a tutti!! Per quanto riguarda la funzione b, qualcuno sa se i componenti sovrapposti sono sempre uno in fila all'altro fino ad arrivare ai componenti che formano una figura scollegata, oppure possono anche essere in posizioni casuali? Che io, per adesso, sono riuscito a implementare b solo per calcolare il perimetro di componenti sovrapposti con if else innestati che valutano i tre casi possibili dei componenti... Ma questo funziona solo se i componenti che formano una figura sono uno in fila all'altro![]()
P.S. scusate l'italiano ma sono sul progetto dalle 10 di stamattina e connetto moooooolto poco![]()
Originally posted by Jaio
Ciao a tutti!! Per quanto riguarda la funzione b, qualcuno sa se i componenti sovrapposti sono sempre uno in fila all'altro fino ad arrivare ai componenti che formano una figura scollegata, oppure possono anche essere in posizioni casuali? Che io, per adesso, sono riuscito a implementare b solo per calcolare il perimetro di componenti sovrapposti con if else innestati che valutano i tre casi possibili dei componenti... Ma questo funziona solo se i componenti che formano una figura sono uno in fila all'altro
P.S. scusate l'italiano ma sono sul progetto dalle 10 di stamattina e connetto moooooolto poco![]()
Ok bordo sta diventando veramente una funzione immensa.... Oggi ci stavo pensando su nel farla diventare ricorsiva e mi è venuto in mente che un componente aggiunto dopo può far diventare sovrapposto un componente che prima non lo era mandando a ramengo tutto lo sbattimento che ho fatto...
Annunciazione annunciazione dopo 2 giorni di bestemmie, incazzature, insulti a persone non meglio identificate, una lista ordinata per posizione, 4 cicli while, una procedura ricorsiva con 6 if else innestati e una miriade di controlli che non so manco più cosa fanno la procedura bordo funziona in tutti i casi dello scibile umano!!!!!!!!!
Edit: sto leggendo or ora le specifiche di prospetto... Qualcuno sa dirmi che struttura dati usa?? Io sto pensando a un grafo ordinato e pesato su cui applicare un algoritmo greedy ma credo che sia una strada impraticabile soprattutto per il fatto che non mi pare che esistano algoritmi greedy per grafi ordinati...
Anche io sto cercando di capire come calcolare il costominimo di un prospetto, credo che si debba costruire un grafo con gli opportuni accorgimenti del caso e poi usare dijkstra per calcolare il "cammino" (leggasi costo) minimo.
Il problema del grafo e che poi ti calcolerebbe il raggiungimento a tutti i nodi mentre a noi interessa solo un nodo per gruppo di quelli inseriti... Tra l'altro una volta trovata la struttura dati adatta poi le tre funzioni si fanno da se...
Esatto, ma come puoi vedere nel file del prospetto, si sa da subito di quanti gruppi è formato un prospetto.
Quindi se si crea un grafo orientato e pesato ciclando dijkstra per ogni componente del primo gruppo di partenza e si ottengono tanti cammini minimi quanti sono i componenti del primo gruppo, il più "minimo" è quello che ci interessa.
Che te ne pare?
ma così dovresti salvare n alberi = agli elementi del primo gruppo per tenere il prospetto visto che p inserisce solo i dati ed é poi compito di m e b lavorarci sopra... e poi non sono sicuro che dijkstra funzioni sui grafi orientati... o almeno in classe han sempre fatto vedere grafi non orientati come esempi...
Originally posted by Jaio
ma così dovresti salvare n alberi = agli elementi del primo gruppo per tenere il prospetto visto che p inserisce solo i dati ed é poi compito di m e b lavorarci sopra... e poi non sono sicuro che dijkstra funzioni sui grafi orientati... o almeno in classe han sempre fatto vedere grafi non orientati come esempi...
Bhe in pratica il mio codice consiste in una lista ordinata per posizione dei componenti poi pian piano li passo tutti aggiornando i valori di altezza lunghezza e posizione minima e salvo in una lista temporanea i nodi che non si collegano poi per calcolare il perimetro faccio i conti e ci sommo la funzione richiamata con la lista temporanea per sommare il perimetro delle altre figure che si formano... solo che vengono cicli while a dismisura solo per tirar fuori i codici identificativi e le posizioni dal comando -__-
In effetti un grafo orientato ci può stare se solo non ci volessero n grafi per i vari componenti nella prima posizione... Anche se sto pensando ad un albero con un nodo radice vuoto fittizio che punta ai primi elementi solo che il tutto esce mooolto sbilanciato soprattutto perchè tutti i nodi di un livello devono puntare a tutti i nodi del secondo livello e non sappiamo quanti questi possano essere...
ma infatti anche io volevo procedere così, ma come hai detto tu, è incasinatissimo e ben poco elegante.
Io sto pure ponderando di fare una lista di liste per salvare il prospetto per poi creare una lista semplice per il dispositivo a costo minimo... Solo che per grossi input diventa inefficiente anche quello... ma soprattutto se esistono 2 o più dispositivi di costo minimo poi dobbiamo stamparli tutti oppure uno a caso? che nelle specifice m e b dicono che stampano il costo e il perimetro di un dispositivo minimo del prospetto caricato, ma al contempo fa presente che i dispositivi possono essere più di uno...
Originally posted by Jaio
Io sto pure ponderando di fare una lista di liste per salvare il prospetto per poi creare una lista semplice per il dispositivo a costo minimo... Solo che per grossi input diventa inefficiente anche quello... ma soprattutto se esistono 2 o più dispositivi di costo minimo poi dobbiamo stamparli tutti oppure uno a caso? che nelle specifice m e b dicono che stampano il costo e il perimetro di un dispositivo minimo del prospetto caricato, ma al contempo fa presente che i dispositivi possono essere più di uno...
cioe metti ogni gruppo di componenti del prospetto in una lista e poi fai unna lista enorme che li raggruppa tutti????
Io l'ho pensata più a una lista composta da n elementi pari al numero di gruppi che c'è nel prospetto che sarebbe il primo numero che leggi nel file, ogni elemento poi punta a una lista contenente i nodi e le posizioni specificate nel gruppo... C'è un po' da smandruppare con le funzioni per operare sui file ma è l'unico modo che ho trovato per non costruire n-mila alberi...
Edit: sembrerò un coglione ma non riesco a tirar fuori un ciclo che funzioni per tirar fuori tutti gli elementi del prospetto... cioè non posso usare fscanf perché per non so che motivo non mi riconosce EOF ma se uso fgetc non ne esco più visto che devo fare mille controlli per parentesi e \n... Qualcuno ha idee???
Edit2: Mi sembro scemo è tutto il giorno che cerco di far andare fscanf almeno per leggere il primo numero del file ma niente fopen trova il file ma morisse se riesco a leggerci dentro... neanche con fgetc va meglio...
prova con fgets!
Dopo anni di bestemmie ho compreso l'errore fatale... il file non iniziava con uno spazio... adesso va benissimo con un paio di eleganti while e fscanf
ma quindi di fatto quello k vuioi fare tu e una lista di successori...o meglio un grafo...xk io ho pensato la stessa identica cosa xo con le funzioni e uin bel casino
ragazzi però non ho capito come applicare l'algoritmo di ricerca, perchè non so bene bene come fare le adiacenze
http://img830.imageshack.us/img830/5601/grafo.jpg
Questa è una situazione tipo.
mettiamo che il percorso minimo calcolato dal mio algoritmo sia 1 5 7 10 perchè il costo tra 1 5 è il più basso. però magari il percorso da 6 a 7 è minore di quello di 5 7. se quindi 1 5 7 costasse di più di 1 6 7, come farei a individuarlo, non essendo 5 e 6 connessi?
se 5 e 6 fossero connessi, il loro costo sarebbe ipoteticamente 0 e si risolverebbe facilmente, ma verrebbero rispettate le specifiche? mi sa di no.
devo capire come sistemare sta cosa.
ragazzi però non ho capito come applicare l'algoritmo di ricerca, perchè non so bene bene come fare le adiacenze
http://img830.imageshack.us/img830/5601/grafo.jpg
Questa è una situazione tipo.
mettiamo che il percorso minimo calcolato dal mio algoritmo sia 1 5 7 10 perchè il costo tra 1 5 è il più basso. però magari il percorso da 6 a 7 è minore di quello di 5 7. se quindi 1 5 7 costasse di più di 1 6 7, come farei a individuarlo, non essendo 5 e 6 connessi?
se 5 e 6 fossero connessi, il loro costo sarebbe ipoteticamente 0 e si risolverebbe facilmente, ma verrebbero rispettate le specifiche? mi sa di no.
devo capire come sistemare sta cosa.
Forse ha più senso ragionare al contrario... Prendendo gli elementi dell'ultimo gruppo e salendo a ritroso fino al primo così avrò sempre pesature che tengono conto di ciò che ho davanti...
eh ma quindi devi fare un for che cerchi per tutto l'ultimo gruppo. vabbè si può fare.
io ho scaricato l'implementazione dell'algoteam e volevo vedere un po' cosa faceva ma non riesco a capire come formattare il file di input (volevo capire bene cosa facesse con dei test, prima di provare ad adattarlo al mio progetto).
Qualcuno sa come fare o ha un'altra implementazione carina?
Bhe quello che che sto pensando io è di fare un while sull'ultimo gruppo che prende ogni volta un nodo diverso sopra quel nodo chiama una procedura ricorsiva che crea un dispositivo minimo per quel nodo poi nel while confronta i dispositivi che creo mano a mano e salva nella struttura definitiva quello migliore...
Suona effettivamente un po' incasinato ma secondo me con un po' di pazienza la tiro fuori... poi una volta fatta questa bordominimo è solo una formalità
Originally posted by Jaioma allora non ho capito cosa ti serve djikstra... è potente perchè funziona sempre. in ogni caso è solo questione di costruire adeguatamente l'albero (come in figura), per il resto funziona perfettamente l'algoritmo.
Bhe quello che che sto pensando io è di fare un while sull'ultimo gruppo che prende ogni volta un nodo diverso sopra quel nodo chiama una procedura ricorsiva che crea un dispositivo minimo per quel nodo poi nel while confronta i dispositivi che creo mano a mano e salva nella struttura definitiva quello migliore...
Suona effettivamente un po' incasinato ma secondo me con un po' di pazienza la tiro fuori... poi una volta fatta questa bordominimo è solo una formalità
Il fatto è che ho abbandonato djikstra anche perché l'idea che ho in mente io dovrebbe funzionare perfettamente sulla lista di liste che ho implementato mentre djikstra dovrei ancora trovare su cosa piazzarlo
io sono ad un passo.
sto usando l'implementazione dell'algoteam e l'unica struttura dati è
Graph_IL che contiene 3 array long: first, adjacent,cost ma non c'è uno straccio di spiegazione su cosa sono questi array e come dovrei usarli.
cioè son 3 array che posso tenere allineati ma non capisco come dovrebbe essere strutturata l'informazione da portarsi dietro...
Sto guardando Djikstra ma i grafi su cui lavora sono cose totalmente oscure alla mia mente... Ma soprattutto a costruirli ci vorrebbe un sacco di lavoro preliminare sui dati dei nostri file perché non abbiamo né i numeri dei vertici né quello dei bordi finché non leggiamo tutto il file e soprattutto non abbiamo tutti i dati scritti che cerca scritti nel file... Inoltre sto pensando al fatto che se dopo aver caricato il prospetto il prof manda in esecuzione un paio di chiamate t, il valore dei pesi del grafo cambiano di conseguenza portando t a lavorare sul grafo... Seconde me diventa molto più inefficiente così...
io son riuscito ad adattarli a quello che chiedeva l'algoteam, peccato che poi non desse segni di vita.
C'è qualcuno che ha completato?
si infatti qualcuno è riuscito a implementare dijkstra?la prof mi aveva detto di usarlo ma io non ci riesco!
io vista la nostra struttura, pensavo di fare una versione artigianale di dijkstra con chiamate ricorsive sulla mia lista di liste, che si portasse dietro il cammino minimo trovato e tornando indietro dalla ricorsione, verificasse per ogni altro cammino se ce n'è uno minimo tra quelli non visitati.
ragazzi un suggerimento: nel main come posso distinguere i due comandi b con e senza parametri (cioè bordo e bordocostominimo)???
grazie
Originally posted by Chobeat
io vista la nostra struttura, pensavo di fare una versione artigianale di dijkstra con chiamate ricorsive sulla mia lista di liste, che si portasse dietro il cammino minimo trovato e tornando indietro dalla ricorsione, verificasse per ogni altro cammino se ce n'è uno minimo tra quelli non visitati.
lista di liste.
comunque qualcuno ha provato il secondo input per b dell'esempio?
b 155 12 131 8 152 8 8 6 19 0 17 20 11 22
a me anche disegnato su carta da 76, mentre l'output atteso è 80. il programma lo disegna giusto, lo calcola giusta e su carta è 76. chi ha ragione?
edit:lunghi attimi di panico.
Semplicemente io pensavo che il quarto numero fosse l'altezza e il quinto la lunghezza, invece era ovviamente il contrario.
Quindo chobeat deduco che tu sia riuscito a fare finalmente tutto?
Io ormai sono incastrato su m e chissà quando ne risucirò ad uscire...
Tra l'altro sto notando che il mio albero con gli imput del prof esce strasblilanciato quindi dovrò reimplementarlo... Qualcuno mi dice che funzioni dell'rbtree dell'AlgoTEAM ha importato nel suo progetto?
nono per carità. costominimo non l'ho ancora fatto. oggi ricomincio la nuova versione. è possibile che se funzioni ( e sulla carta funziona), lo riesca a finire tra oggi e domani, ma ancora non è detto.
Sarà che sono da 6 ore davanti al pc, ma non ho capito che tipo di informazioni devono esserci nel prospetto.
OT: Chobeat lo dai con Torelli o Goldwurm?
__________________
"Pensare è il lavoro più arduo che ci sia, ed è questo il motivo per cui così pochi vi si dedicano".
Henry Ford
goldwurm, come i veri uomini.
Ho staccato 30 min e ho capito, cosa viene richiesto nella parte relativa al prospetto
.
Anche secondo me è logico, data la natura del problema, utilizzare un algortimo come quello di Dijkstra. Solo che non riesco a capire come si comporta la versione utlizzata su sito dell'algoteam.
Qualcuno ha usato quella, o mi tocca rifarla da 0?
__________________
"Pensare è il lavoro più arduo che ci sia, ed è questo il motivo per cui così pochi vi si dedicano".
Henry Ford
no quella è il male assoluto. io la sto risolvendo molto più facilmente implementando una versione povera adattata alla nostra struttura ( o almeno alla mia).
Si, infatti pensavo anche io ad un algortimo casereccio, da osteria di periferia insomma, solo che essendo un esame di algoritmi mi prende abbastanza male.
__________________
"Pensare è il lavoro più arduo che ci sia, ed è questo il motivo per cui così pochi vi si dedicano".
Henry Ford
Originally posted by Sbirilindobeh non è detto che un djikstra con IL sia più ottimizzato di una cosa ad hoc. Nel nostro problema, secondo me, tra il tempo che ci metti a fare l'IL, il tempo che ci metti a fare l'algoritmo e il tempo che ci metti a riconvertire tutto nelle nostre componenti, secondo me non conviene, anche perchè dijkstra tradizionale fa la cosa che serve a noi ma dobbiamo costruire un grafo molto più semplice, per cui soluzioni che normalmente sarebbero meno efficaci, per la forma del nostro grafo, hanno le stesse prestazioni di dijkstra.
Si, infatti pensavo anche io ad un algortimo casereccio, da osteria di periferia insomma, solo che essendo un esame di algoritmi mi prende abbastanza male.
Non ci posso credere ma finalmente ho finito la funzione m e ora manca solo di modificare leggermente la funzione b e questo progetto da incubo sarà finalmente finito!!!!
Ora però ho letto che oltre a mandarlo per email devo pure farmi lo sbattimento di perdere due ore della mia vita per venire fino a Milano a consegnarlo anche in copia cartacea... Qualcuno sa se il dipartimento di Comelico è aperto anche Sabato? Perché la relazione penso proprio che la farò domani e inoltre non ho modo di arrivare in stazione a prendere il treno...
Altrimenti si può comunque consegnare anche Lunedì vero?
Come da sito la consegna è da effettuarsi entro il giorno 20 compreso, quindi fino alle 19.30 (orario di chiusura comelico) si può consegnare il formato cartaceo o se preferite anche martedi 21 però prima che il professore ritiri la posta e l'email entro la mezzanotte del giorno 20.
Originally posted by Chobeat
beh non è detto che un djikstra con IL sia più ottimizzato di una cosa ad hoc. Nel nostro problema, secondo me, tra il tempo che ci metti a fare l'IL, il tempo che ci metti a fare l'algoritmo e il tempo che ci metti a riconvertire tutto nelle nostre componenti, secondo me non conviene, anche perchè dijkstra tradizionale fa la cosa che serve a noi ma dobbiamo costruire un grafo molto più semplice, per cui soluzioni che normalmente sarebbero meno efficaci, per la forma del nostro grafo, hanno le stesse prestazioni di dijkstra.
__________________
"Pensare è il lavoro più arduo che ci sia, ed è questo il motivo per cui così pochi vi si dedicano".
Henry Ford
Originally posted by Sbirilindoma infatti io non faccio una roba combinatoria.
Ok, ma se non erro, non usando un algoritmo simil-Dijkstra, bisognerebbe usare qualcosa di combinatorio per arrivare ad una soluzione...
Il che, forse input di piccole dimensioni, potrebbe andare bene, ma per input più corposi, potrebbe metterci di più..!
Penso di esserci riuscito. Ho fatto una roba simil-Dijkstra, forse un filo più golosa..! 
__________________
"Pensare è il lavoro più arduo che ci sia, ed è questo il motivo per cui così pochi vi si dedicano".
Henry Ford
io sono ad un passo dal completamento del progetto e ho ancora tutto domani. Ho già fatto bordo_costominimo anche se costominimo va ancora un po' a spasso alla cazzo e ho già fatto la relazione.
Ora sto sistemando le printf, sennò stasera non posso uscire tranquillo.
ciao a tutti
qlkn m sa dire una funzione che riordini una lista concatenata in base al valore di un solo elemento
per la precisione
struct list{
int id
int pos
ecc ecc..
}
devo riordinarla in base alla posizione
niente sn riuscito
Mi ritiro. Se ne riparla a gennaio. Ho puntato troppo in alto, son finito con troppi compromessi e non ho nemmeno completato il progetto. 20 giorni della mia vita buttati, o quasi. Perlomeno ho imparato a programmare un po' in C e spero che a gennaio riesca ad andare molto più spedito.
Ma noooo... Ieri eri a buon punto che ti è successo?
che il comportamento dell'algoritmo di costominimo era leggermente impreciso ma non riuscivo a sistemare e ho cancellato un pezzo. l'ho rifatto 3 volte ma continuava a non funzionare.
in ogni caso avendo dovuto arrangiare con la matrice di punti per la funzione bordo() probabilmente mi avrebbe bocciato lo stesso, perciò mi sembrava inutile farmi una nottata senza probabilmente ottenere alcun risultato.
Peccato... Bhe probabilmente ci vedremo qui a Gennaio lo stesso perché anche se il mio progetto l'ho consegnato e in teoria funziona bisogna vedere se gli gira bene al prof ed ho usato tutto quello che vuole che si usi...
Qualcuno è riuscito a fare costominimo?
Io sono bloccato con quello e poi mi mancherebbe solo bordocostominimo ma non riuscendo a fare il primo non posso finirlo entro domani...
Qualche suggerimento? Considerate che io memorizzo il prospetto in una lista di liste...
Originally posted by Alex87io ho elaborato 3 metodi diversi, tutti con costo n, peccato che in 4 giorni non sono riuscito a realizzarli funzionanti, quindi dubito tu ci riesca in tempo...
Qualcuno è riuscito a fare costominimo?
Io sono bloccato con quello e poi mi mancherebbe solo bordocostominimo ma non riuscendo a fare il primo non posso finirlo entro domani...
Qualche suggerimento? Considerate che io memorizzo il prospetto in una lista di liste...
In realtà l'ho già quasi fatto pare...
Originally posted by Alex87spero per te.
In realtà l'ho già quasi fatto pare...
Qualcuno sa come bisogna scrivere la relazione?
__________________
"Pensare è il lavoro più arduo che ci sia, ed è questo il motivo per cui così pochi vi si dedicano".
Henry Ford
c'è scritto nella consegna.
Ragazzi mi serve un aiuto dell'ultimora...ho già consegnato però quando ero in comelico per consegnare gli stampati, ho provato a testare il programma sui pc del silab...nn essendoci installato cs1300 ho compilato il sorgente con il programma Devc++ e poi lho eseguito dal prompt dei comandi e ho notato che mi dava un errore e si bloccava il programma in esecuzione. Son tornato a casa e ho provato a compilare con cs1300 e poi ad eseguire sul prompt, per vedere se per caso era colpa del Devc++, ma mi da lo stesso errore!!!
Vorrei sapere se c'è qlkosa nel progetto che nn va o se è normale che faccia cosi??
Grazie mille a chi mi toglie questo dubbio atroce!!
Ciao
Ale
Non ho ben capito il tuo problema, nella prima pagina del progetto c'è scritto che dev'essere compilabile con gcc, hai provato?
Si, si io compilo con gcc -Wall -pedantic -ansi -o comp....exe comp....c e nn mi da errori, poi quando l'eseguo con l'input dato dal prof va tutto bene ed eseguo tutto, oggi pomeriggio compilandolo senza gcc l'esecuzione attraverso il prompo di dos mi dava un errore.
Tornato a casa ho provato a compilarlo con gcc e poi ad eseguirlo sul prompt di dos e mi da lo stesso errore invece se lo eseguo con ilp rompt ke mi apre cs1300 da dove lo compilo precedentemente va tutto ok....è questo ke nn capivo, perke usando il prompt di cs1300 va, usando quello di dos nn va....
Non ti saprei dire, io ho sviluppato tutto con gcc e gdb sotto linux, quindi non mi sono posto il problema in altri ambienti con altri compilatori.
Se tu hai compilato tutto con gcc e funziona, credo che non dovresti preoccuparti.
Io invece mi sono accorto ieri che ho dimenticato di togliere 2 commenti che iniziano con // che non sono ansi, spero che il prof. capisca che si tratti di una svista.
| All times are GMT. The time now is 04:22. | Show all 119 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.