|
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. | NEI PREFERITI | .:: | RSS Forum | RSS News | NEWS web | NEWS software | |
| PUBBLICITA' | | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | | CERCA nel FORUM » | |
11-06-2008, 00.56.27 | #1 |
Junior Member
Registrato: 16-09-2004
Messaggi: 118
|
Complessità algoritmo delle componenti connesse
Codice:
1. VAR Integer Matrice_label [N,N] 2. VAR Integer Immagine [N,N] 3. VAR Integer Label = 0 4. VAR Integer i,j = 0 5. VAR Integer Soglia 6. for i = 1… N 7. for j = 1… N 8. Matrice_label [ i , j ] = 0 9. end for 10. end for 11. for i = 1… N 12. for j = 1… N 13. if (Immagine [ i , j ] < Soglia) 14. if ( Matrice_label [ i-1 , j ] = 0 AND Matrice_label [ i , j-1 ] = 0 ) 15. Label =Label + 1 16. Matrice_label [ i , j ] = Label 17. else 18. if ( Matrice_label [ i-1 , j ] != 0 ) 19. Matrice_label [ i , j ] = Matrice_label [ i - 1 , j ] 20. if ( Matrice_label [ i , j-1 ] != 0 ) 21. Matrice_label [ i , j ] = Matrice_label [ i , j - 1 ] 22. if ( Matrice_label [ i-1 , j ]!= 0 AND Matrice_label [ i , j-1 ]!= 0 ) 23. Matrice_label [ i , j ] = Matrice_label [ i - 1 , j 24. classe_equivalenza( Matrice_label [ i - 1 , j ] , Matrice_label [ i , j - 1 ] ) 25. end for 26. end for 27. for i = 1… N 28. for j = 1… N 29. aggiorna_equivalenze 30. end for 31. end for |
11-06-2008, 01.15.05 | #2 |
Gold Member
Top Poster
Registrato: 18-07-2002
Messaggi: 6.399
|
Sono un filo arrugginito da quando ho fatto Info3 e Info Teorica, cmq vediamo un po'
Ho indentato il codice, e probabilmente c'è bisogno che confermi l'indenting... non ho ben chiaro come siano le dipendenze degli if/else e i relativi blocchi di istruzioni (poi magari non cambia neppure la complessità dell'algoritmo, ma prima di far conti...). Il codice è indentato con tabulazioni dopo il numero di riga Codice:
1. VAR Integer Matrice_label [N,N] 2. VAR Integer Immagine [N,N] 3. VAR Integer Label = 0 4. VAR Integer i,j = 0 5. VAR Integer Soglia 6. for i = 1… N 7. for j = 1… N 8. Matrice_label [ i , j ] = 0 9. end for 10. end for 11. for i = 1… N 12. for j = 1… N 13. if (Immagine [ i , j ] < Soglia) 14. if ( Matrice_label [ i-1 , j ] = 0 AND Matrice_label [ i , j-1 ] = 0 ) 15. Label =Label + 1 16. Matrice_label [ i , j ] = Label 17. else 18. if ( Matrice_label [ i-1 , j ] != 0 ) 19. Matrice_label [ i , j ] = Matrice_label [ i - 1 , j ] 20. if ( Matrice_label [ i , j-1 ] != 0 ) 21. Matrice_label [ i , j ] = Matrice_label [ i , j - 1 ] 22. if ( Matrice_label [ i-1 , j ]!= 0 AND Matrice_label [ i , j-1 ]!= 0 ) 23. Matrice_label [ i , j ] = Matrice_label [ i - 1 , j 24. classe_equivalenza( Matrice_label [ i - 1 , j ] , Matrice_label [ i , j - 1 ] ) 25. end for 26. end for 27. for i = 1… N 28. for j = 1… N 29. aggiorna_equivalenze 30. end for 31. end for Ci sono poi due funzioni, classe_equivalenza e aggiorna_equivalenze, che non si sa bene cosa siano e, cosa che interessa, che complessità abbiano Al momento so dirti solo questo: Righe 6-10: due cicli 1..N innestati, complessità N*N = N^2. Righe 27-31: due cicli 1..N innestati, complessità N^2 * complessità(aggiorna_equivalenze) Righe: 11-26: due cicli 1..N innestati, complessità N^2 * complessità(Righe 13..24) Complessità intero algoritmo: massimo delle tre complessità calcolate sopra. (componenti connesse di un grafo... ricerca operativa eh ) |
11-06-2008, 07.20.12 | #3 |
Gold Member
Top Poster
Registrato: 04-09-2004
Loc.: لثلاثم عفمشةشف
Messaggi: 5.467
|
Bravo Dav (Y)
|
11-06-2008, 08.57.56 | #4 |
Senior Member
Registrato: 21-03-2008
Loc.: From Lugano (CH)...finally!
Messaggi: 330
|
Bravo Dav ma questa non era molto difficile...
|
11-06-2008, 09.48.51 | #5 |
Il re di bastoni
Top Poster
Registrato: 26-04-2001
Loc.: Milàn
Messaggi: 23.413
|
vero. ma la prox volta rispondi prima tu, allora
___________________________________
Un giorno in cui voleva fare il cattivo, Mister Coniglietto sbirciò oltre la siepe e vide che l'orto del Contadino Fred era pieno di lattuga fresca e verde; Mister Coniglietto, invece, non era pieno di lattuga per niente. E ciò gli parve un'ingiustizia. Sono un Vampiro! I am a Vampire! |
11-06-2008, 10.30.40 | #6 | |
Senior Member
Registrato: 21-03-2008
Loc.: From Lugano (CH)...finally!
Messaggi: 330
|
Quota:
|
|
11-06-2008, 11.00.54 | #7 |
Junior Member
Registrato: 16-09-2004
Messaggi: 118
|
Grazie 1000 sei stato gentilissimo....
Per quanto riguarda la funzione classe_equivalenza() assegna solamente due valori in un vettore... quindi è una costante... Mentre aggiorna_equivalenze() dovrebbe scorrere nuovamente la matrice delle label per aggiornare nuovamente le label in base alle classi di ecquivalenze settata prima... Dovrebbe essere un N^4 più o meno giusto???? Dunque potremmo dire che la complessità totale è di tipo polinomiale ... giusto??? si dice così??? Grazie ancora |
11-06-2008, 11.12.15 | #8 | |
Senior Member
Registrato: 21-03-2008
Loc.: From Lugano (CH)...finally!
Messaggi: 330
|
Quota:
N^4 + 2*N^2, ossia N^4... Anche la denominazione (complessità polinomiale) dovrebbe essere corretta! |
|
11-06-2008, 16.48.15 | #9 |
Gold Member
Top Poster
Registrato: 18-07-2002
Messaggi: 6.399
|
Direi proprio di sì (Y)
|
Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti) | |
Strumenti discussione | |
|
|
Discussioni simili | ||||
Discussione | Autore discussione | Forum | Risposte | Ultimo messaggio |
Solo 3% (non 44%) le perdite delle Major dovute al P2P | Macao | Segnalazioni Web | 0 | 24-01-2008 05.04.51 |
La musica gode con il P2P | Macao | Segnalazioni Web | 0 | 04-10-2007 00.44.07 |
(FG) Sped. --- Vendo componenti hardware PC, prezzi da capogiro... --- | GAE81 | Mercatino Usato | 1 | 06-12-2006 18.13.20 |
Problema con il comando Apri delle cartelle | Maximus | Windows 7/Vista/XP/ 2003 | 1 | 07-02-2005 11.26.26 |
Che ne pensate delle nuove tariffe Enel? | handyman | Chiacchiere in libertà | 5 | 13-01-2005 20.14.57 |