.dsy:it.
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)


Posted by johnnyd on 20-08-2010 15:30:

Progetto per appello del 3 settembre

Quando dovrebbe uscire?

__________________
My Blog - My Photo Album


Posted by Guepe on 20-08-2010 17:04:

In teoria oggi, visto ke di solito da 2 settimane di tempo...


Posted by plafo on 21-08-2010 16:54:

Originally posted by Guepe
In teoria oggi, visto ke di solito da 2 settimane di tempo...





credo che il 3 settembre sia la data in cui esce il progetto, poi si hanno due settimane per farlo e consegnarlo


Posted by Guepe on 21-08-2010 17:15:

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

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ì!


Posted by plafo on 22-08-2010 14:58:

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ì!





basta che il progetto non sia troppo complicato :)


Posted by ferra03 on 22-08-2010 21:46:

ha messo un'avviso sul suo sito, il progetto verrà pubblicato il 30 agosto e dovrà essere consegnato entro il 20 settembre


Posted by gianni.malvasi on 23-08-2010 15:24:

ma scusa dove hai letto l'avviso?


Posted by plafo on 23-08-2010 17:54:

Originally posted by gianni.malvasi
ma scusa dove hai letto l'avviso?




ho controllato anch'io il sito di aguzzoli ma non ho trovato niente :?
ferra03 puoi postare il link con l'avviso di cui parli?
grazie


Posted by johnnyd on 23-08-2010 22:46:

regalo abbonamento di 2 anni a playboy a chi mi fa il progetto lol!

__________________
My Blog - My Photo Album


Posted by plafo on 24-08-2010 18:47:

io continuo a non vedere nessun avviso ne sul sito di aguzzoli ne su quello di torelli...


Posted by johnnyd on 25-08-2010 11:40:

idem

__________________
My Blog - My Photo Album


Posted by johnnyd on 25-08-2010 11:40:

idem

__________________
My Blog - My Photo Album


Posted by radyo on 27-08-2010 18:08:

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.


Posted by plafo on 27-08-2010 22:24:

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.



ok grazie per la dritta!
certo che potevano scrivere un avviso anche per noi del serale....


Posted by gianni.malvasi on 30-08-2010 10:36:

ma ci sono problemi x aprire il sito del prof.....voi ci riuscite????


Posted by plafo on 30-08-2010 13:14:

Originally posted by gianni.malvasi
ma ci sono problemi x aprire il sito del prof.....voi ci riuscite????




ciao a tutti,
qualcuno mi sa dire se è uscito veramente oggi il progetto?
purtroppo da qua non riesco ad accedere al sito del corso...
grazie!


Posted by lSical on 30-08-2010 17:09:

è uscito!!
http://homes.dsi.unimi.it/~aguzzoli/algo.htm


Posted by gianni.malvasi on 30-08-2010 17:21:

ma dov'è???????????????????????????????
nn c'è sul sito!!!!!!!!!!!!!!!


Posted by lSical on 30-08-2010 17:34:

http://homes.dsi.unimi.it/~aguzzoli...componenti2.pdf

componenti elettroniche 2


Posted by lSical on 30-08-2010 20:32:

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!


Posted by gianni.malvasi on 31-08-2010 09:58:

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?????


Posted by lSical on 31-08-2010 10:44:

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?


Posted by iron on 31-08-2010 11:01:

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?


Posted by SanJuanWolf89 on 31-08-2010 11:21:

il problema è: come far fare il calcolo al computer che non "vede" la figura???


Posted by gianni.malvasi on 31-08-2010 11:42:

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...


Posted by Guepe on 31-08-2010 12:13:

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?


si, è esattamente cosi, anke facendo le prove dell'input vengono i risultati! :D


Posted by iron on 31-08-2010 12:42:

il problema è, come dice SanJuanWolf89, come si gestisce questa sovrapposizione...... :-/


Posted by SanJuanWolf89 on 31-08-2010 15:04:

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?


Posted by fxxstefano on 31-08-2010 17:52:

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


Posted by zack1988 on 01-09-2010 09:15:

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


http://homes.dsi.unimi.it/~aguzzoli/algo.htm
l'ultimo giorno per la consegna del progetto è il 20 settembre, quindi presubilmente durante quella settimana ci saranno gli orali.
Ricordo che l'orale è diviso in due parti : esposizione del progetto con domande del Prof Aguzzoli e poi domande teoriche del Prof Torelli.

Ciao


Posted by gianni.malvasi on 01-09-2010 09:56:

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????


Posted by johnnyd on 01-09-2010 10:26:

Per questo progetto si può usare la base del vecchio componenti?

__________________
My Blog - My Photo Album


Posted by gianni.malvasi on 01-09-2010 10:27:

ma le funzioni base si...tranne che nel vecchio era l'area e nel nuovo c'è il perimetro...


Posted by Chobeat on 02-09-2010 16:03:

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.


Posted by gianni.malvasi on 02-09-2010 17:40:

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????


Posted by Chobeat on 02-09-2010 17:57:

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????


beh se guardassi la sintassi del comando è chiaro. t f x

t è il comando

f è la famiglia

x è il costo del trasferimento.

per la seconda domanda, non ho capito.

sono tutti c perchè c è il comando.

sopratutto, se non hai capito la sintassi dei comandi, come hai fatto a tirar fuori gli alberi rb? a me non risulta vengano fatti a lezione anche se anche io li avevo presi in considerazione.


Posted by gianni.malvasi on 02-09-2010 17:59:

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????


Posted by gianni.malvasi on 02-09-2010 18:05:

scusate ho sbagliato i conti....non mi viene


Posted by SanJuanWolf89 on 03-09-2010 11:00:

qlkn è arrivato alla funzione prospetto???


Posted by gianni.malvasi on 03-09-2010 11:08:

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ì??


Posted by SanJuanWolf89 on 03-09-2010 13:27:

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...


Posted by gianni.malvasi on 03-09-2010 15:22:

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


Posted by gianni.malvasi on 05-09-2010 17:28:

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


Posted by Chobeat on 05-09-2010 17:47:

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

scelta stupida che ho fatto e cestinato per inutili complicazioni=fai una matrice bidimensionale che associa la famiglia al costo.
scelta furba che mi appresto ad implementare anche io= sfrutti sempre il codice dell'albero rb e costruisci un albero con la famiglia come chiave e il costo come valore.

quando dovrai leggero, userai sempre la funzione di ricerca ma sull'albero dedicato ai costi.

questo progetto non è difficile e ste cose mi sembrano cazzate al confronto di una cosa che non riesco a gestire: l'input.

sarò scemo io, sarà che non ho mai programmato in C ma non riesco a gestire bene i menù.

ho chiesto su qualsiasi chat, helpdesking vari, forum ma nessuno sa dirmi nè come gestire il stampa(f) nè tantomeno l' "o int1 int 2 intx"

ho appena buttato 80 righe di codice che tra while vari, gets(),fscanf() e pastrocchi vari, non riuscivano a gestirmi la chiamata alla funzione ordina().

Voi come state facendo? cioè è veramente complicato o sono io che mi son perso qualche cazzata? Praticamente la giornata oggi l'ho persa su quello.


Posted by gianni.malvasi on 06-09-2010 09:36:

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


Posted by Chobeat on 06-09-2010 10:17:

Originally posted by gianni.malvasi
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
non capisco dove sia il problema. è un lavoro da 10 minuti se già hai le funzioni dell'albero rb.


Posted by gianni.malvasi on 06-09-2010 10:21:

il problema che nn sono molto pratico del c e ho delle difficoltà...


Posted by Chobeat on 06-09-2010 13:00:

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ì


Posted by iron on 07-09-2010 14:22:

Qualcuno ha scritto la funzione che calcola il perimetro?


Posted by Chobeat on 07-09-2010 14:42:

Originally posted by iron
Qualcuno ha scritto la funzione che calcola il perimetro?


Io mi sto accingendo giusto ora. Ho seri dubbi sulla struttura dati da utilizzare, infatti per oggi mi limito ad una versione con una lista contenente h, l, pos e codice.

Costruisco la lista e la ordino per posizione, così quando andrò a leggerla, sarà già apposto.

Quindi inizio dalla pos del primo nodo della lista e faccio i calcoli. Tengo alcune condizioni, leggo il secondo e con un po' di differenze, valuto i vari casi.

Mentre ci ragionavo, mi è venuta in mente una soluzione che in pratica calcola il perimetro con solo due casi, utilizzando il valore assoluto ma non sono sicuro possa funzionare.


Posted by iron on 07-09-2010 15:21:

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?


Posted by Chobeat on 07-09-2010 16:28:

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.


Posted by SanJuanWolf89 on 08-09-2010 09:54:

Lightbulb

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..


Posted by iron on 08-09-2010 10:31:

In che struttura dati metterai il prospetto?


Posted by SanJuanWolf89 on 08-09-2010 14:02:

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


Posted by Jaio on 08-09-2010 15:50:

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:sad:
P.S. scusate l'italiano ma sono sul progetto dalle 10 di stamattina e connetto moooooolto poco:D


Posted by Chobeat on 08-09-2010 17:02:

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:sad:
P.S. scusate l'italiano ma sono sul progetto dalle 10 di stamattina e connetto moooooolto poco:D


mi sa che non basta. le componenti probabilmente verranno testate con un generatore random e possono essere ovunque con qualsiasi altezza e larghezza. sennò è troppo facile XD.

io comunque sto elaborando un sistema ricorsivo, qualsiasi altra soluzione mi sembra insensata o non funzionante.

io per il prospetto ho usato una lista di liste. ho fatto un po' di test farlocchi perchè finchè non finisco bordo() non posso passare a costominimo che deve leggerci sopra. in teoria va abbastanza sciolto.

@Jaio e Iron, che sembrate due apposto, mi aggiungete su msn o organizziamo una wave per scambiarci un po' di pareri sulle scelte? io sono molto dubbioso su alcune cose e volevo vedere come avevate proceduto voi.


Posted by Jaio on 09-09-2010 12:21:

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...


Posted by Jaio on 09-09-2010 15:02:

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...


Posted by iron on 09-09-2010 16:27:

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.


Posted by Jaio on 09-09-2010 16:33:

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...


Posted by iron on 09-09-2010 16:56:

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?


Posted by Jaio on 09-09-2010 17:08:

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...


Posted by Chobeat on 09-09-2010 17:43:

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...


un grafo orientato è un grafo non orientato con qualcosa in più. imho funzionerebbe lo stesso. in ogni caso non vedo alternative.

io al momento per bordo sono ancora al secondo if else con 2 cicli while però volevo fare lo sbrofa e calcolare prima tutti i blocchi distinti di figure, su cui poi richiamare una funzione più semplice (per non ridurmi alla follia di codice che probabilmente hai scritto tu).

edit: or ora mi sovviene una follia maggiore: se riesco a sapere il punto di inizio e fine del blocco, se riesco a eliminare tutte le figure contenute interamente, se so il numero di figure, posso calcolare molto più facilmente il tutto calcolando una volta da sinistra e una volta da destra, fino ad incontrarsi alla/e figura/e centrale, dove farò un calcolo diverso e ritornerò il perimetro.


Posted by Jaio on 09-09-2010 18:13:

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...


Posted by Chobeat on 09-09-2010 19:33:

ma infatti anche io volevo procedere così, ma come hai detto tu, è incasinatissimo e ben poco elegante.


Posted by Jaio on 09-09-2010 19:37:

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...


Posted by Chobeat on 09-09-2010 21:36:

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...


Io ho fatto la lista di liste infatti...


Posted by SanJuanWolf89 on 10-09-2010 10:25:

cioe metti ogni gruppo di componenti del prospetto in una lista e poi fai unna lista enorme che li raggruppa tutti????


Posted by Jaio on 10-09-2010 10:28:

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...


Posted by iron on 10-09-2010 18:39:

prova con fgets!


Posted by Jaio on 10-09-2010 18:47:

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


Posted by SanJuanWolf89 on 11-09-2010 09:16:

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


Posted by Chobeat on 11-09-2010 14:46:

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.


Posted by Chobeat on 11-09-2010 14:46:

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.


Posted by Jaio on 11-09-2010 14:52:

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...


Posted by Chobeat on 11-09-2010 17:52:

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?


Posted by Jaio on 11-09-2010 18:02:

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à


Posted by Chobeat on 11-09-2010 18:18:

Originally posted by Jaio
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à
ma 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.


Posted by Jaio on 11-09-2010 20:16:

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


Posted by Chobeat on 11-09-2010 21:41:

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...


Posted by Jaio on 13-09-2010 09:58:

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ì...


Posted by Chobeat on 13-09-2010 12:31:

io son riuscito ad adattarli a quello che chiedeva l'algoteam, peccato che poi non desse segni di vita.


Posted by iron on 13-09-2010 19:25:

C'è qualcuno che ha completato?


Posted by AngelMiller on 14-09-2010 08:41:

si infatti qualcuno è riuscito a implementare dijkstra?la prof mi aveva detto di usarlo ma io non ci riesco!


Posted by Chobeat on 14-09-2010 09:40:

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.


Posted by lux87 on 14-09-2010 09:46:

ragazzi un suggerimento: nel main come posso distinguere i due comandi b con e senza parametri (cioè bordo e bordocostominimo)???
grazie


Posted by SanJuanWolf89 on 14-09-2010 14:59:

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.





ma tu hai implementato una lista di liste o un array di liste??in cui ovviamente la grandezza dell array e il primo numero del file prospetto...xk io ho il tuo stesso problema..


Posted by Chobeat on 14-09-2010 15:05:

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.


Posted by Jaio on 15-09-2010 10:19:

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?


Posted by Chobeat on 15-09-2010 10:29:

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.


Posted by Sbirilindo on 15-09-2010 12:20:

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


Posted by Chobeat on 15-09-2010 13:23:

goldwurm, come i veri uomini.


Posted by Sbirilindo on 15-09-2010 16:56:

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


Posted by Chobeat on 15-09-2010 17:04:

no quella è il male assoluto. io la sto risolvendo molto più facilmente implementando una versione povera adattata alla nostra struttura ( o almeno alla mia).


Posted by Sbirilindo on 15-09-2010 21:19:

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


Posted by Chobeat on 15-09-2010 23:37:

Originally posted by Sbirilindo
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.
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.


Posted by Jaio on 16-09-2010 15:12:

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?


Posted by Guepe on 16-09-2010 17:04:

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.


Posted by Sbirilindo on 17-09-2010 14:00:

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.


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ù..!

__________________
"Pensare è il lavoro più arduo che ci sia, ed è questo il motivo per cui così pochi vi si dedicano".

Henry Ford


Posted by Chobeat on 17-09-2010 21:47:

Originally posted by Sbirilindo
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ù..!
ma infatti io non faccio una roba combinatoria.


Posted by Sbirilindo on 18-09-2010 12:25:

Penso di esserci riuscito. Ho fatto una roba simil-Dijkstra, forse un filo più golosa..! :P

__________________
"Pensare è il lavoro più arduo che ci sia, ed è questo il motivo per cui così pochi vi si dedicano".

Henry Ford


Posted by Chobeat on 18-09-2010 17:30:

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.


Posted by SanJuanWolf89 on 19-09-2010 08:17:

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


Posted by SanJuanWolf89 on 19-09-2010 10:25:

niente sn riuscito


Posted by Chobeat on 19-09-2010 21:57:

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.


Posted by Jaio on 19-09-2010 22:06:

Ma noooo... Ieri eri a buon punto che ti è successo?


Posted by Chobeat on 19-09-2010 23:28:

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.


Posted by Jaio on 19-09-2010 23:30:

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...


Posted by Alex87 on 19-09-2010 23:34:

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...


Posted by Chobeat on 20-09-2010 00:05:

Originally posted by Alex87
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...
io 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...


Posted by Alex87 on 20-09-2010 00:19:

In realtà l'ho già quasi fatto pare...


Posted by Chobeat on 20-09-2010 08:37:

Originally posted by Alex87
In realtà l'ho già quasi fatto pare...
spero per te.

io 3 volte ho detto "ormai è finito", ma finirlo è un'altra cosa


Posted by Sbirilindo on 20-09-2010 09:13:

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


Posted by Chobeat on 20-09-2010 09:51:

c'è scritto nella consegna.


Posted by Guepe on 20-09-2010 20:26:

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


Posted by iron on 20-09-2010 21:33:

Non ho ben capito il tuo problema, nella prima pagina del progetto c'è scritto che dev'essere compilabile con gcc, hai provato?


Posted by Guepe on 20-09-2010 22:01:

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....


Posted by iron on 21-09-2010 09:28:

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.