METODOS PARA PARA LA RESOLUCION DE COLISIONES
1
PLANTILLA PARA ARTÍCULO BIBLIOTECA
Revista Ingenierías USBMed, Vo! Vo! ", No! 1, 1 , Ene#$%n &'1&! ISSN( &'&)#*+-!
Citar . re/eren0iar este do0%ento en APA( APA(
23vare4 5irado 6 Soto O0a7o, &'1&8
3vare4 3vare4 5irado, L! M, 6 Soto O0a7o, D! A! 2&'1&8! La 9i9iote0 9i9iote0aa digita( digita( %na a7ro:ia0 a7ro:ia0i;n i;n te;ri0a! Revista Ingenierías USBMed , "218, 1*#&!
La 9i9iote0a digita( %na a7ro:ia0i;n te;ri0a
1
Lina María 3vare4 5irado
Diana Ae:andra Soto O0a7o
ina!avare4>0orreo!0o
diana!soto>0orreo!0o
Artí0%o 7resentado 7ara o7tar a tít%o de Es7e0iaista en 5esti;n de In/ora0i;n . Bases de Datos,
METODOS PARA LA RESOLUCION DE COLISIONES
&
Resumen
En este artí0%o esta %na revisi;n de os agoritos de reso%0i;n de 0oisiones %e se %tii4a en as ta9as as o ta9as de dis7ersi;n, 0on e 7ro7;sito de so%0ionar as 0oisiones %e se dan en %na /%n0i;n as . asignar dire00iones de a anera s %ni/ore 7osi9e! Presenta " agoritos 7ara reso%0i;n de 0oisiones desarroado en Borand *!'& . da a 0ono0er 0oo se generaran as 7osi0iones aternativas si %9iera 0oisi;n! Palaras cla!e: ta9as as, reso%0i;n de 0oisiones, ta9as de dis7ersi;n
"stract
Tis arti0e is a revie o/ Coision Reso%tion Agorits to 9e %sed in as ta9es or asing, it te 7%r7ose o/ soving 0oisions tat o00%r in a as /%n0tion and assign addresses as %ni/or. as 7ossi9e!
METODOS PARA LA RESOLUCION DE COLISIONES
"
Introducci&n
Una /%n0i;n de dis7ersi;n 0onvierte e dato 0onsiderado 0a7o 0ave en %n índi0e dentro de rango de de/ini0i;n de arrego %e aa0ena os datos, de ta /ora %e sea ade0%ado 7ara inde:ar e arrego! Con a ventaa de %e e tie7o 9Gs%eda es inde7endiente de nGero de 0o7onentes de arrego . sin ne0esidad de tener os eeentos ordenados! 2:8( F #H L
donde F ( 0ave
Ldire00i;n de eoria
Estas /%n0iones de9en generar dire00iones distintas 7ara dos 0aves distintas! No sie7re es asi, no sie7re 7ro7or0iona dire00iones distintas, en o0asiones o0%rre %e dadas dos 0aves di/erentes a as %e se a7i0a a /%n0i;n as, si se o9tienen dos dire00iones ig%aes :1, :& H 2:18 2:&8! Se e 0ono0e 0oo 0oisi;n, 7or eso en e diseJo de %na ta9a dis7ersa de9e in0or7orar Ktodos de reso%0i;n de 0oisiones! Enton0es a a ora de diseJar %na ta9a as, se de9e see00ionar 7reviaente %na 9%ena /%n0i;n as! =%e dis7erse o s %ni/oreente, seg%ndo see00ionar %n Ktodo 7ara resover 0oisiones! De ta /ora %e si estas se 7resentan, se 0ontara 0on agGn Ktodo %e genere 7osi0iones aternativas! Es i7ortante tener en 0%enta %e a reso%0i;n de 0oisiones en %na ta9a dis7ersa, a/e0ta dire0taente a a e/i0ien0ia de as o7era0iones 9si0as so9re a ta9a
METODOS PARA LA RESOLUCION DE COLISIONES
Desarrollo del tema
La ee00i;n de %n Ktodo ade0%ado 7ara resover 0oisiones es tan i7ortante 0oo a ee00i;n de %na B%ena /%n0i;n as! Se 0onsideran dos odeos 7ara resover 0oisiones( •
Reasigna0i;n
•
Arregos anidados
•
En0adenaiento
1 Reasigna0i;n Los diversos Ktodos de reasigna0i;n se %tii4an 0%ando todos os eeentos, 0oisionados o no, se aa0enan en a isa ta9a! Las 0oisiones se res%even e:7orando 0onse0%tivaente en %na se0%en0ia de dire00iones asta %e se en0%entra %n 7osi0i;n i9re o se en0%entra e eeento 9%s0ado en as o7era0iones de 9%s0ar . eiinar! Es i7ortante ini0iai4ar todas as 7osi0iones de a ta9a a %n vaor %e indi%e va0ío! 1!1
Pr%e9a inea Es a /ora s si7e de resover %na 0oisi;n entre 0aves, a a7i0ar %na
/%n0i;n de dis7ersi;n! S%7;ngase %e se tiene %n eeento de 0ave :, a dire00i;n %e dev%eve a /%n0i;n 2:87 si est o0%7ada 7or otro eeento se a 7rod%0ido %na 0oisi;n! La /ora de resover esta 0oisi;n 0on 7r%e9a inea 0onsiste en 9%s0ar a 7riera 7osi0i;n dis7oni9e %e siga a 7! La se0%en0ia de 9Gs%eda %e se genera es inea 7,71 !! #1, 1, ' . así 0onse0%tivaente asta en0ontrar %na 7osi0i;n va0ía! La ta9a se a de 0onsiderar 0ir0%ar, de ta /ora %e siendo #1 a Gtia 7osi0i;n, a sig%iente es a 7osi0i;n 1! 1!&
Pr%e9a 0%adrti0a La reso%0i;n de 0oisiones 0on a 7r%e9a inea 7rovo0a %e se agr%7en os
eeentos de a ta9a segGn se a0er0ando e /a0tor de 0arga a '!*! Una aternativa 7ara
METODOS PARA LA RESOLUCION DE COLISIONES
*
evitar a agr%7a0i;n es a 7r%e9a 0%adrti0a! S%7oniendo %e a %n eeento 0on 0ave : e 0orres7onde a dire00i;n 7 . %e a 7osi0i;n de a ta9a a7%ntada 7or 7 est o0%7ada, e Ktodo de 7r%e9a 0%adrti0a 9%s0a as dire00iones 7, 7 1, 7 , 7 !!! 7 i, 0onsiderando a ta9a 0oo %n arrego 0ir0%ar! E no9re de 0%adrti0a se de9e a des7a4aiento reativo i! 1!"
Do9e dire00i;n as Este Ktodo %tii4a %na seg%nda /%n0i;n as! Se tiene %na /%n0i;n as 7rin0i7a,
2:8, . otra /%n0i;n se0%ndaria 2:8! E 7rier intento de insertar o 9%s0ar, %n n%evo eeento ins7e00iona a 7osi0i;n 2:87, si a. %na 0oisi;n, se o9tiene %n seg%ndo des7a4aiento 0on otra /%n0i;n as 2:87! Enton0es, a se0%en0ia de 9Gs%eda 7, 77, 7&7, 7"7 Q se ins7e00iona asta en0ontrar %na 7osi0i;n i9re! & Arregos anidados Consiste en %e 0ada eeento de arrego tenga otro arrego, en e 0%a se aa0enen os eeentos %e 0oisionan 2%na atri48! Este Ktodo res%ta ine/i0iente 7or%e se ne0esitaría eegir %n taaJo ade0%ado de arrego %e 7erita e e%ii9rio entre e 0osto de eoria . e nGero de vaores %e 0oisionan %e 7%diera aa0enar! " En0adenaiento o dire00ionaiento ena4ado Se 9asa en %tii4ar istas ena4adas, de ta /ora %e en 0ada ista se 0oo0an os eeentos %e tienen a isa dire00i;n as! Todos os eeentos %e 0oisionan( 2:18 2:&8 2:"8 !! Van a estar %9i0ados en a isa ta9a ena4ada!
METODOS PARA LA RESOLUCION DE COLISIONES
-
'odificaci&n de m(todos para la resoluci&n de colisiones
1! MKtodo de 7r%e9a inea Para a o9ten0i;n de agorito, se sig%en os sig%ientes 7asos( 1! Veri/i0ar si a dire00i;n D de dato . s% in/ora0i;n son as isas %e e dato de 0oisi;n, si esto /%era verdad e dato est en a 7osi0i;n D . es e iso! &! Ini0iar %n a%:iiar D: %e sea ig%a a a s%a de a dire00i;n D s a %nidad "! Reai4ar %n 9%0e 7ara en0ontrar e dato o %na 7osi0i;n D: va0ía, si D: so9re7asa e nGero de eeentos de arrego se e da e vaor 1 27or esta ra4;n se trata 0oo 0ir0%ar8 A 0ontin%a0i;n se e:7one e agorito de so%0i;n de 0oisiones 7or edio de 7r%e9a inea(
METODOS PARA LA RESOLUCION DE COLISIONES
)
En a ta9a 1 se 7resenta %n ee7o de arrego de 1' eeentos Ta9a 1! Ta9a de datos &*
"
*-
"*
*
1"
+'
1'
Usando os datos de a ta9a 1! Usando %na /%n0i;n as od%ar se o9tiene( as od%ar 2F8 F2od8n1
n eeentos de arrego F 0a7o 0ave 2F8 dire00iones
Ta9a &! Ta9a de dire00iones 0on as od%ar
&*
"
*-
"*
*
1"
+'
1'
2F8
-
)
-
*
1
*
Enton0es os eeentos en e arrego estarían de a sig%iente anera( Ta9a "! Ta9a de arrego 0on as od%ar
1
2F8
+'
&
"
*
-
)
"
*
&*
*-
1"
1'
"*
+
1'
Coo se 7%ede a7re0iar en a ta9a, a a9ido 0oisiones! Para resoveras, se a7i0ar e Ktodo de 7r%e9a inea, donde se o9tiene(
METODOS PARA LA RESOLUCION DE COLISIONES
+
Ta9a ! Ta9a as %sando Pr%e9a inea
1
2F8
+'
&
"
*
-
)
+
1'
"
*
&*
*-
"*
1"
1'
&! MKtodo de 7r%e9a 0%adrti0a En a ea9ora0i;n de agorito es siiar a anterior! La di/eren0ia 0onsiste en %e as dire00iones aternativas en a 7r%e9a 0%adrti0a se generaran 0oo D1, D, Q Di en ve4 de D1, D&, D"!! Di! Esta varia0i;n 7erite %na eor distri9%0i;n de as 0aves %e 0oisionan! Para a o9ten0i;n de agorito, se sig%en os sig%ientes 7asos( 1! Veri/i0ar si a dire00i;n D de dato . s% in/ora0i;n son as isas %e e dato de 0oisi;n, si esto /%era verdad e dato est en a 7osi0i;n D . es e iso! &! Ini0iar %n a%:iiar entero 1 . a0er D: D2ii8, 0on esto se 0onsig%e a dire00ion aternativa 0%adrada! "! Reai4ar %n 9%0e 7ara en0ontrar e dato o %na 7osi0i;n D: va0ía, si D: so9re7asa e nGero de eeentos de arrego se e da e vaor D:1, D1 . i' 27or esta ra4;n se trata 0oo 0ir0%ar8 A 0ontin%a0i;n se e:7one e agorito de so%0i;n de 0oisiones 7or edio de 7r%e9a 0%adrti0a(
METODOS PARA LA RESOLUCION DE COLISIONES
Usando os datos de a ta9a 1 de datos, . a7i0ando as od%ar o9tendreos a ta9a as( Ta9a "! Ta9a de arrego 0on as od%ar
1
2F8
+'
&
"
*
-
)
"
*
&*
*-
1"
1'
"*
+
1'
METODOS PARA LA RESOLUCION DE COLISIONES
1'
Usando e agorito de 7r%e9a 0%adrti0a, o9teneos( Ta9a *! Ta9a as %sando Pr%e9a 0%adrti0a
1
&
2F8
+'
**
"
*
-
)
+
1'
"
*
&*
*-
1"
1'
"*
Coo se o9serva a ta9a * es di/erente a a ta9a en as 7osi0iones de 0oisiones! "! MKtodo de do9e dire00i;n as En a ea9ora0i;n de agorito se %tii4a a otra /%n0i;n as2F8 no ne0esariaente tiene %e ser %na siiar 7%ede ser tanto %na variante 0oo 0%a%ier otra! Sin e9argo, no e:iste ningGn est%dio %e 7re0ise 0%a es a eor /%n0i;n %e se de9e %tii4ar en e 00%o de as dire00iones s%0esivas! Para a o9ten0i;n de agorito, se sig%en os sig%ientes 7asos( 1! Veri/i0ar si a dire00i;n D de dato . s% in/ora0i;n son as isas %e e dato de 0oisi;n, si esto /%era verdad e dato est en a 7osi0i;n D . es e iso! &! Ini0iar %n a%:iiar D:2F8, 2a n%eva /%n0i;n as8 "! Reai4ar %n 9%0e asta en0ontrar e dato o %na 7osi0i;n D: va0ía . D: sea di/erente de D 2esto Gtio 7ara no 0aer en %n 9%0e in/inito8, . adentro a0er D:2F8, 7ara generar di/erentes dire00iones! A 0ontin%a0i;n se e:7one e agorito de so%0i;n de 0oisiones 7or edio de do9e dire00i;n(
METODOS PARA LA RESOLUCION DE COLISIONES
11
Usando os datos de a ta9a " . %na n%eva /%n0i;n as 2F822D18 od 1'81, o9tendreos( Ta9a -! Ta9a de vaores %sando Ktodo do9e dire00i;n
&*
"
*-
"*
*
1"
+'
1'
2F8
-
)
-
*
1
*
2D8
+
-
)
2D8
+
2D8
1'
Enton0es a7i0aos e Ktodo de do9e dire00i;n . o9teneos( Ta9a )! Ta9a as %sando do9e dire00i;n
1
2F8
+'
&
"
*
-
)
+
1'
"
*
&*
*-
"*
1'
1"
! MKtodo de en0adenaiento Es e Ktodo s e/i0iente de9ido a dinaiso 7ro7io de as istas! C%a%iera %e sea e nGero de 0oisiones %e se 7resenten, se 7odrn resover sin in0onvenientes! Para a o9ten0i;n de agorito, se sig%en os sig%ientes 7asos( 1! Veri/i0ar si a dire00i;n D de dato . s% in/ora0i;n son as isas %e e dato de 0oisi;n, si esto /%era verdad e dato est en a 7osi0i;n D . es e iso! &! Ini0iar %n nodo a%:iiar :D#Hsig, 2a7%ntador a a ista8
METODOS PARA LA RESOLUCION DE COLISIONES
1&
"! Reai4ar %n 9%0e asta en0ontrar e dato o %na 7osi0i;n D: va0ía . D: sea di/erente de D2esto Gtio 7ara no 0aer en %n 9%0e in/inito8, . adentro a0er satar #Hsig! A 0ontin%a0i;n se e:7one e agorito de so%0i;n de 0oisiones 7or edio de en0adenaiento(
METODOS PARA LA RESOLUCION DE COLISIONES
1"
Ta9a +! Ta9a as %sando en0adenaiento
1
2F8
+'
&
"
*
-
)
"
*
&*
*-
+
1'
"*
"nálisis de los m(todos de resoluci&n de colisiones
La e/i0ien0ia de %na /%n0i;n as, %nto a Ktodo de reso%0i;n de 0oisiones, s%7one anai4ar a o7era0i;n de insertar a o7era0i;n de 9%s0ar 2eiinar s%7one %na 9Gs%eda8! 1! Anisis de a 7r%e9a inea La 7rin0i7a desventaa de este Ktodo es %e 7%ede a9er %n /%erte agr%7aiento arededor de 0iertas 0aves, ientras %e otras 4onas de arrego 7odrían 7erane0er va0ías! Si as 0on0entra0iones de 0aves son %. /re0%entes, a 9Gs%eda ser se0%en0ia, 7erdiendo así as ventaas de Ktodo as! Por eso 0%ando e /a0tor de o0%7a0i;n se a0er0a a *'W, e agr%7aiento de eeentos en 7osi0iones ad.a0entes es nota9e! E /a0tor 0arga de a ta9a 6, es deterinante a a ora de deterinar a e/i0ien0ia de as o7era0iones! La e/i0ien0ia de a inser0i;n se s%ee edir 0oo e nGero edio de 7osi0iones e:ainadas, en a 7r%e9a inea se a7ro:ia a( &! Anisis de a 7r%e9a 0%adrti0a Este Ktodo de resover 0oisiones red%0e e agr%7aiento %e 7rod%0e a 7r%e9a inea! Sin e9argo, si no se eige e taaJo de a ta9a, no se 7%ede aseg%rar %e se 7r%e9en todas as 7osi0iones de a ta9a!
METODOS PARA LA RESOLUCION DE COLISIONES
1
Se 7%ede deostrar %e si e taaJo de a ta9a es %n n%ero 7rio . e /a0tor de 0arga no a0an4a e *'W, todas as 7r%e9as %e se reai0en 0on a se0%en0ia 7i se a0en so9re 7osi0iones de a ta9a distintas . sie7re %e se 7odr insertar! "! Anisis de en0adenaiento En e en0adenaiento a 9Gs%eda es %na o7era0i;n inea, en e 7eor de os 0asos re0orre todos os nodos de a istaX a 7esar de eo, as istas an de tener %n nGero de nodos s%/i0ienteente 7e%eJo, . así e tie7o de ee0%0i;n ser red%0ido! Considerando e /a0tor de 0arga 6, a ongit%d edia de 0ada ista ena4ada 2nGero de nodos8 es, 7re0isaente 6! Esto 7erite 0on0%ir %e e nGero de edio de nodos visitados en %na 9Gs%eda sin K:ito es 6, . e 7roedio de nodo visitados en %na 9Gs%eda 0on K:ito es 1 1Y&6 E /a0tor de 0arga en estas ta9as, noraente es 1, es de0ir, e rango de índi0es de ve0tor 0oin0ide 0on e nGero de eeentos %e se es7era seas insertados! A edida %e a%enta e /a0tor de 0arga, a e/i0ien0ia de a 9Gs%eda de %n eeento en a ista disin%.e! Sin e9argo no es 0onveniente %e disin%.a %0o e /a0tor de a 0arga, de9ido a %e 0%ando este es enor %e 1 a%enta a eoria no %tii4ada!
METODOS PARA LA RESOLUCION DE COLISIONES
1*
Discusi&n
La anera s nat%ra de resover e 7ro9ea de 0oisiones es reservar %na 0asia 7or 0ave, es de0ir, a%eas %e se 0orres7ondan %na a %na 0on as 7osi0iones de arrego! Pero esta so%0i;n tiene %n ato 0osto de eoria, 7or tanto, es eor anai4ar otras aternativas! En e Ktodo de 7r%e9a inea %e se 7resenta tiene e 7ro9ea de a agr%7a0i;n de eeentos en 7osi0iones 0ontig%as, %e a/e0ta negativaente a a e/i0ien0ia de as o7era0iones, en n%estro tra9ao eso se veri/i0a .a tiene %n ato 0osto de tie7o de ee0%0i;n! En e Ktodo de 7r%e9a 0%adrti0a %e se 7resenta 7ara aseg%rar a e/i0ien0ia se de9ería eegir e taaJo de a ta9a 0oo %n nGero 7rio 7ara %e 0ada %no de os eeentos genere 7osi0iones de ta9as distintas! En e Ktodo de do9e dire00i;n se reai4a %na varia0i;n de a /%n0i;n as od%ar, sin e9argo no e:iste ningGn est%dio 7ara es0oger a eor /%n0i;n, 7or eso se tiene %e es0oger a eor /%n0i;n as a 0oien4o 7ara %e no genere dire00iones ig%aes s%0esivaente! En e Ktodo de en0adenaiento %e se 7resenta es ne0esario sa9er e %so de istas ena4adas . sa9er %e no e:isten %0as 0oisiones, 7or%e de ser asi se 7erdería e %so de ta9as as!
METODOS PARA LA RESOLUCION DE COLISIONES
1-
'onclusiones
En os di/erentes Ktodos %e se e:7%so en este tra9ao e eor Ktodo sería e de en0adenaiento 7or e dinaiso de as istas, 7ero se a0onsea %e e /a0tor de 0arga en as ta9as ena4adas sea 7r;:io a 1, .a %e en e 0aso de 0re40a %0o 7%ede e7eorar a e/i0ien0ia de a 9Gs%eda a a%entar e nGero de nodos de as istas! Una de as a7i0a0iones de as ta9as as esta en os 0o7iadores de eng%aes de 7rograa0i;n! La ta9a donde se g%ardan os identi/i0adores de 7rograa, ta9a de sí9oos, se i7eenta 0oo %na ta9a as! La 0ave es e sí9oo %e se trans/ora en %n vaor entero 7ara a7i0ar ag%na de as /%n0iones as!
METODOS PARA LA RESOLUCION DE COLISIONES
1)
Referencias
Osvado Cairo, Sivia 5%ardati 2&''-8! Metods o/ sear0, Estructura de datos 3 ED edition L%is $o.anes Ag%iar, Igna0io Zaonero Martine4 2&''+8! Ta9es asing, Estructura de datos en Java
MarF Aen [eiss, 220008, Ta9as as, Estructura de datos en Java 3 edition Martíne4, R! 2&'')8! Biblioteca Digital: conceptos, recursos y estndares! B%enos Aires( A/agraa!