 |
maynard80 |
| no, no la struttura non deve avere una grandezza d ... |
18-09-2004 09:13 |
|
 |
maynard80 |
.novellino.

Registered: Jul 2007
Posts: 3 (0.00 al dì)
Location: Milano (e non interland, tendo a precisare)
Corso: informatica
Anno: SESTO
Time Online: 12 Days, 14:28:38 [...]
Status: Offline
Edit | Report | IP: Logged |
no, no la struttura non deve avere una grandezza di partenza, anche un arrey può aumentare dinamicamente, lui vuole una struttura malleabile che sia ottimizzata al problema.
__________________
msn Messenger: giamma80 at tiscali.it
ATHENA !
|
|
18-09-2004 09:13 |
|
|
|  |
 |
Tosh |
| nella tabella di hash memorizzereste solo le 1-cel ... |
18-09-2004 09:25 |
|
 |
Tosh |
.precettore.
Registered: Nov 2003
Posts: 94 (0.01 al dì)
Location: Bergamo
Corso: Informatica
Anno: 2° Specialistica
Time Online: 2 Days, 1:31:23 [...]
Status: Offline
Edit | Report | IP: Logged |
nella tabella di hash memorizzereste solo le 1-celle, giusto?
Quindi data una k-cella, per capire se è occupata, bisognerebbe applicare la funzione di hash a ogni 1-cella contenuta nella k-cella. Al limite ci si potrebbe fermare quando il numero di 1-celle occupate in un certo momento della scansione è già >= pk^2/q.
|
|
18-09-2004 09:25 |
|
|
|  |
 |
Skilotto83 |
| [QUOTE][i]Originally posted by maynard80 [/i]
... |
18-09-2004 10:07 |
|
 |
Skilotto83 |
..Energia positiva...

Registered: Jun 2003
Posts: 1608 (0.19 al dì)
Location: Arconate
Corso: Informatica
Anno: LAUREATO!!!
Time Online: 15 Days, 6:32:44 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by maynard80
ma non si puòridurre il piano alle celle occupate? nel senso che semplicemente le celle libere non ci sono, quindi il mio pisno "infinito" in realtà non è altro che una lista delle celle occupate ordinate secondo le loro x,y.
In questo modo una cella è occupata se esiste nella lista, libera altrimenti, le celle sono adiacenti se le loro x o y sono consecutive ecc..
Forse sto rasentando l'idiozia, ma magari semplicemente potrebbe funzionare, no?
Infatti metti solo le celle okkupate.....
Teoikmente il piano è visto kome la memoria del calcolatore....nn è infinita in pratika...ma lo è potenzialmente....poi quelle okkupate le puoi mettere dove vuoi...anke in un albero binario di ricerka...
__________________
"Why, Sir, you find no man at all intellectual who is willing to leave London.
No, Sir, when a man is tired of London, he is tired of life; for there is in London all that life can afford."
(DR SAMUEL JOHNSON 1777)
MSN andrea.poretti(at)hotmail.it
|
|
18-09-2004 10:07 |
|
|
|  |
 |
VdM |
| Appena letto il progetto... |
18-09-2004 10:32 |
|
 |
VdM |
.simpatizzante.
Registered: Jan 2003
Posts: 9 (0.00 al dì)
Location:
Corso: Informatica
Anno: 2
Time Online: 1 Day, 15:07:06: [...]
Status: Offline
Edit | Report | IP: Logged |
Appena letto il progetto...
Buongiorno a tutti,
per motivi di tempo & lavoro, ho cominciato a pensare al progetto solo poco fa.
Vedo dalla discussione che la struttura dati di base dovrebbe essere una hash table per le 1-celle. Ciò effettivamente garantirebbe tempi ottimali per la ricerca, l'inserimento la cancellazione di una 1-cella (entro buoni limiti, anche con risoluzione dei conflitti con liste concatenate). Per trattare le k-celle, la mia idea sarebbe di scorrere tutti gli elementi della hash table e controllando in quale k-cella cadono, ovviamente appena trovo un elemento di una k-cella non esistente creo tale k-cella.
Il problema di verificare i k-blocchi compare sia per k generico che in particolare per k=1. A questo punto sono bloccato - o la cosa è troppo semplice da non vederla o troppo complicata - sulla relazione di adiacenza. Per ciò che è scritto nel prog. mi è sembrato di capire che le k-celle (per le 1-celle è verificabile) siano adiacenti se hanno almeno un punto (suppongo di confine) in comune. Quindi, data una k-cella, questa può avere al massimo 8 k-celle adiacenti (1 lato in comune, o al più uno spigolo).
S'ha da verificare dunque per ogni k-cella le 8 posizioni adiacenti, o esiste una strategia (nn avendo potuto seguire il corso di Torelli...) più raffinata?
Grazie per eventuali risposte, e buon lavoro
G. "VdM"
|
|
18-09-2004 10:32 |
|
|
|  |
 |
Tosh |
| secondo me non conviene memorizzare infomazione ri ... |
18-09-2004 11:52 |
|
 |
Tosh |
.precettore.
Registered: Nov 2003
Posts: 94 (0.01 al dì)
Location: Bergamo
Corso: Informatica
Anno: 2° Specialistica
Time Online: 2 Days, 1:31:23 [...]
Status: Offline
Edit | Report | IP: Logged |
secondo me non conviene memorizzare infomazione riguardo alle k-celle, perchè in qualsiasi momento l'utente può modificare risoluzione, parametro di riepimento nonchè celle occupate.
L'informazione riguardo le k-celle mi sembra quindi poco riutillizabile.
|
|
18-09-2004 11:52 |
|
|
|  |
 |
aghito |
| La soluzione proposta da torak sembra poter funzio ... |
18-09-2004 12:32 |
|
 |
aghito |
.primate.
Registered: Jun 2003
Posts: 71 (0.01 al dì)
Location: milano
Corso: Informatica
Anno: 3
Time Online: 20:29:57 [...]
Status: Offline
Edit | Report | IP: Logged |
La soluzione proposta da torak sembra poter funzionare però non mi convince in quanto quello scritto nel 18.4 si può applicare a qualsiasi struttura statica tipo pile code e matrici di array che sono esplicitamente vietate. Io userei una lista in cui segnare le sole 1-celle occupate..usare un albero non mi sembra utile.infatti se l’input fosse quello dell’esempio si avrebbe un albero alto n dati n input in quanto ogni elemento è sempre maggiore del precedente..
Partendo da questa lista quando ho la risoluzione k creo una nuova struttura dati tramite una funzione che facendo una scansione della lista associa ogni 1cella occupata alla rispettiva k-cella..alla fine conto le 1-celle di ogni k-cella e vedo se è occupata..per blocchi ci sto pensando…
__________________
alessandro colombini
|
|
18-09-2004 12:32 |
|
|
|  |
 |
Skilotto83 |
| Per definizione....una K-cella esiste solo se è o ... |
18-09-2004 12:56 |
|
 |
Skilotto83 |
..Energia positiva...

Registered: Jun 2003
Posts: 1608 (0.19 al dì)
Location: Arconate
Corso: Informatica
Anno: LAUREATO!!!
Time Online: 15 Days, 6:32:44 [...]
Status: Offline
Edit | Report | IP: Logged |
Per definizione....una K-cella esiste solo se è okkupata..giusto??
__________________
"Why, Sir, you find no man at all intellectual who is willing to leave London.
No, Sir, when a man is tired of London, he is tired of life; for there is in London all that life can afford."
(DR SAMUEL JOHNSON 1777)
MSN andrea.poretti(at)hotmail.it
|
|
18-09-2004 12:56 |
|
|
|  |
 |
mitnik |
| esatto. Secondo me le k-celle ci stanno "sviando" ... |
18-09-2004 13:14 |
|
 |
mitnik |
.illuminato.
Registered: Jun 2002
Posts: 235 (0.03 al dì)
Location:
Corso:
Anno:
Time Online: 3 Days, 4:25:25 [...]
Status: Offline
Edit | Report | IP: Logged |
esatto. Secondo me le k-celle ci stanno "sviando" nel senso che la cosa importante sono le 1-celle che vanno memorizzate in una struttura dati, (io penso di usare una lsta) quando poi si fanno le varie operazioni tipo quella di blocchi, peso... entreranno in gioco le k-celle che in realtà sono sempre nel piano in numero infinito e dipendono dalla risoluzione.
Ok, a questo punto io creerei una struttura dati di supporto che puo essere un'altra lista. Questa avrà un puntatore a dx e uno giu, a dx si mette l'informazione della k-cella OCCUPATA e giu si mettono le 1-celle che la occupano.
Puo andare? che ne dite?
Ciao
|
|
18-09-2004 13:14 |
|
|
|  |
 |
torak |
| [QUOTE][i]Originally posted by aghito [/i]
... |
18-09-2004 13:46 |
|
 |
torak |
Renaulto muori

Registered: Dec 2002
Posts: 440 (0.05 al dì)
Location: Bollate
Corso: Informatica laurea triennale
Anno: 3
Time Online: 6 Days, 2:35:19 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by aghito
La soluzione proposta da torak sembra poter funzionare però non mi convince in quanto quello scritto nel 18.4 si può applicare a qualsiasi struttura statica tipo pile code e matrici di array che sono esplicitamente vietate. Io userei una lista in cui segnare le sole 1-celle occupate..usare un albero non mi sembra utile.infatti se l’input fosse quello dell’esempio si avrebbe un albero alto n dati n input in quanto ogni elemento è sempre maggiore del precedente..
Partendo da questa lista quando ho la risoluzione k creo una nuova struttura dati tramite una funzione che facendo una scansione della lista associa ogni 1cella occupata alla rispettiva k-cella..alla fine conto le 1-celle di ogni k-cella e vedo se è occupata..per blocchi ci sto pensando…
Il 18.4 specifica che le tabelle dinamiche si possono usare con qualsiasi struttura, semplicemente per dire che il concetto è separato dal tipo di struttura dati che use. Liste e vettori non sono vietati, semplicemente hanno tempi di inserimento, ricerca e cancellazioni peggiori, quindi visto che è un esame di algoritmi si suppone utilizzi buone strutture dati.
Una tabella di hash è una buona struttura dati per rappresentare un piano, e con l'allargamento dinamico è ottima, non capisco le tue perplessità...
In più risolvere le collisioni con liste concatenate prevede la possibilità intrinseca delle tabelle di hash di fare collisioni(anche se con bassa probabilità) ma il numero di collisioni rimane basso perchè tieni sotto controllo il fattore di carico. ATTENZIONE: quella che propongo io NON è un hash a indirizzamento aperto. L'indirizzamento aperto è complesso nel caso della cancellazione, e non mi sembra il caso di complicarmi la vita così.
Considerando la bassa probabilità di collisione la tabella di hash con risoluzione delle collisioni con liste semplici è QUASI una struttura statica, quindi il tempo di ricerca inserimento e cancellazione è sempre buono. C'è una probabilità in realtà che tutti gli elementi facciano collisione, ma con una buona funzione di hash questa probabilità e talmente piccola che tutto il dsy potrebbe vincere il superenalotto più facilmente probabilmente.
|
|
18-09-2004 13:46 |
|
|
|  |
 |
eskimo |
| Anche secondo me ci vogliono più strutture dati o ... |
18-09-2004 13:47 |
|
 |
eskimo |
.illuminato.

Registered: Jul 2003
Posts: 156 (0.02 al dì)
Location: Milano
Corso: informatica
Anno: 3datroppotempoormai
Time Online: 1 Day, 22:23:46 [...]
Status: Offline
Edit | Report | IP: Logged |
Anche secondo me ci vogliono più strutture dati o almeno bisogna tenere le info sulle attuali k-celle. L'utente può ogni volta cambiare risoluzione o fattore riempim. e in questo caso si rifà la struttura che memorizza le k-celle.... così si fanno calcoli sulla struttura delle 1-celle ogni volta che bisogna cambiare risoluzione o fattore riemp, mentre si lavora sulle k-celle se bisogna fare calcoli tipo area, peso o blocchi.
credo che il costo di due strutture dati sia minore del costo di fare molte operazioni sempre su ste 1-celle....
il problema di come dici tu mitnik è che bisogna tenere info di una k-cella anche se ha solo una 1-cella ed è considerata libera e visto che non sai a che risoluzione stai lavorando, come distribuisci le 1-celle? lo puoi fare secondo la risoluzione corrente ma ad ogni cambio di risoluzione devi rifare proprio tutto! se sai come affrontare il prob fammi sapere che è una sol che mi piace...

|
|
18-09-2004 13:47 |
|
|
|  |
 |
Tosh |
| per favore, alcune persone cerchino di scrivere pi ... |
18-09-2004 15:06 |
|
 |
Tosh |
.precettore.
Registered: Nov 2003
Posts: 94 (0.01 al dì)
Location: Bergamo
Corso: Informatica
Anno: 2° Specialistica
Time Online: 2 Days, 1:31:23 [...]
Status: Offline
Edit | Report | IP: Logged |
per favore, alcune persone cerchino di scrivere più chiaro altrimenti non si capisce un c..zo e perdiamo tutti un casino di tempo.
|
|
18-09-2004 15:06 |
|
|
|  |
 |
Tosh |
| Re: Appena letto il progetto... |
18-09-2004 15:19 |
|
 |
Tosh |
.precettore.
Registered: Nov 2003
Posts: 94 (0.01 al dì)
Location: Bergamo
Corso: Informatica
Anno: 2° Specialistica
Time Online: 2 Days, 1:31:23 [...]
Status: Offline
Edit | Report | IP: Logged |
Re: Appena letto il progetto...
Originally posted by VdM
Quindi, data una k-cella, questa può avere al massimo 8 k-celle adiacenti (1 lato in comune, o al più uno spigolo).
S'ha da verificare dunque per ogni k-cella le 8 posizioni adiacenti, o esiste una strategia (nn avendo potuto seguire il corso di Torelli...) più raffinata?
non vedo una strategia radicalmente diversa.
cmq per ogni k-cella potresti esplorare meno di 8 "vicini", perchè alcuni li hai già verificati in quanto "vicini" di una k-cella già verificata precedentemente.
|
|
18-09-2004 15:19 |
|
|
|  |
 |
mitnik |
| cavolo è un casino verificare se una 1-cella è c ... |
18-09-2004 16:27 |
|
 |
mitnik |
.illuminato.
Registered: Jun 2002
Posts: 235 (0.03 al dì)
Location:
Corso:
Anno:
Time Online: 3 Days, 4:25:25 [...]
Status: Offline
Edit | Report | IP: Logged |
cavolo è un casino verificare se una 1-cella è contenuta in una k-cella. Avete idee a proposito?
|
|
18-09-2004 16:27 |
|
|
|  |
 |
pincopallino |
| [QUOTE][i]Originally posted by mitnik [/i]
... |
18-09-2004 19:14 |
|
 |
pincopallino |
(S)chiappona
Registered: Jan 2003
Posts: 269 (0.03 al dì)
Location: Milano
Corso: Informatica
Anno: finiti gli esami
Time Online: 5 Days, 23:46:20 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by mitnik
cavolo è un casino verificare se una 1-cella è contenuta in una k-cella. Avete idee a proposito?
bhe della k-cella presa in considerazione sai la coordinata in basso a sx, quindi ti calcoli le coordinate in alto a dx, e per sapere se una 1-cella è contenuta in quella k-cella basta che confronti le coordinate della 1-cella con quelle della k-cella. tipo la k-cella ha coordinate (0,0) la risoluzione è 3, per verificare se una 1-cella(x,y) è contenuta in quella k-cella basta controllare: 0<= x < 3, 0<= y < 3.....
io farei così......sonostata spiegata?

__________________
"Che ne sai di un ragazzo che ti amava
che parlava e niente sapeva
eppur quel che diceva chissà perchè‚ chissà adesso è verità."
|
|
18-09-2004 19:14 |
|
|
|  |
 |
Skilotto83 |
| [QUOTE][i]Originally posted by pincopallino [/i]
... |
18-09-2004 19:22 |
|
 |
Skilotto83 |
..Energia positiva...

Registered: Jun 2003
Posts: 1608 (0.19 al dì)
Location: Arconate
Corso: Informatica
Anno: LAUREATO!!!
Time Online: 15 Days, 6:32:44 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by pincopallino
bhe della k-cella presa in considerazione sai la coordinata in basso a sx, quindi ti calcoli le coordinate in alto a dx, e per sapere se una 1-cella è contenuta in quella k-cella basta che confronti le coordinate della 1-cella con quelle della k-cella. tipo la k-cella ha coordinate (0,0) la risoluzione è 3, per verificare se una 1-cella(x,y) è contenuta in quella k-cella basta controllare: 0<= x < 3, 0<= y < 3.....
io farei così......sonostata spiegata?
Infatti...nulla di pu' semplice...anke io ho implementato il tutto kosi'...

__________________
"Why, Sir, you find no man at all intellectual who is willing to leave London.
No, Sir, when a man is tired of London, he is tired of life; for there is in London all that life can afford."
(DR SAMUEL JOHNSON 1777)
MSN andrea.poretti(at)hotmail.it
|
|
18-09-2004 19:22 |
|
|
|  |
 |
| All times are GMT. The time now is 23:40. |
|
|
 |
|
 |
|
|
|  |
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|