Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit dfeef03

Browse files
committed
LRPS Algorithm v.1.2.1
Some corrections in text. Also, the image of points on the Cartesian plane was changed for a new one (it's close the same), and the name of it was changed to [Cartesian.png]; the old [Pointsn.png] image was renamed to [Points.png]
1 parent 34945ed commit dfeef03

File tree

6 files changed

+28
-28
lines changed

6 files changed

+28
-28
lines changed

‎Article/LRPS-ES.md‎

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,12 @@ En el modelo se ha decidido que el sabor galleta es el favorito, por lo que debe
3535

3636
[![Comparison between linear and logarithmic scale](https://github.com/arhcoder/LRPS-Algorithm/blob/master/Images/Scales.png?raw=true "Comparison between linear and logarithmic scale")](https://github.com/arhcoder/LRPS-Algorithm "Comparison between linear and logarithmic scale")
3737

38-
Una representación vaga de cómo luce la diferencia entre una escala lineal y una logarítmica, está mostrada en la imagen anterior; si la tomamos como ejemplo, podríamos entender el algoritmo de decisión como colocar un punto de manera aleatoria en cualquiera de las dos escalas, y cada espacio entre dos divisiones representa un objeto a seleccionar. Para el caso de la escala lineal, la probabilidad de encontrarse con el objeto entre **0 y 1,** es la misma que del objeto entre **1 y 2,** o **2 y 3.** En cambio, con la escala logarítmica, la probabilidad de caer en el objeto entre **0 y 1** es muy distinta que la del objeto entre **5 y 6.**
38+
Una vaga representación de cómo luce la diferencia entre una escala lineal y una logarítmica, está mostrada en la imagen anterior; si la tomamos como ejemplo, podríamos entender este algoritmo de decisión como colocar un punto de manera aleatoria en cualquiera de las dos escalas, en donde espacio entre dos divisiones representa un objeto a seleccionar. Para el caso de la escala lineal, la probabilidad de encontrarse con el objeto entre **0 y 1,** es la misma que del objeto entre **1 y 2,** o **2 y 3.** En cambio, con la escala logarítmica, la probabilidad de caer en el objeto entre **0 y 1** es muy distinta que la del objeto entre **5 y 6.**
3939
Utilizando datos reales para el ejemplo de escoger un sabor de helado, tendríamos la siguiente comparación de escalas:
4040

4141
[![Linear and logarithmic scales for five flavors](https://github.com/arhcoder/LRPS-Algorithm/blob/master/Images/Flavors.png?raw=true "Linear and logarithmic scales for five flavors")](https://github.com/arhcoder/LRPS-Algorithm "Linear and logarithmic scales for five flavors")
4242

43-
Esta es la forma que tiene la escala del algoritmo ***LRPS*** comparada a un algoritmo de ruleta. Si lanzáramos un punto aleatorio entre este espacio; obtendríamos las decisiones para ambos tipos de algoritmos serían:
43+
Esta es la forma que tiene la escala del algoritmo ***LRPS*** comparada a un algoritmo de ruleta. Si lanzáramos un punto aleatorio entre este espacio; obtendríamos las decisiones para ambos tipos de algoritmos, que serían:
4444

4545
[![Selection example for five flavors on linear and logarithmic scales](https://github.com/arhcoder/LRPS-Algorithm/blob/master/Images/Selection.png?raw=true "Selection example for five flavors on linear and logarithmic scales")](https://github.com/arhcoder/LRPS-Algorithm "Selection example for five flavors on linear and logarithmic scales")
4646

@@ -52,25 +52,25 @@ Al ser más grande el espacio de la fresa con respecto al chocolate, es más pro
5252
<br>
5353

5454
### Matemáticas
55-
La manera de construir una escala logarítmica adaptada a la ***n*** cantidad de objetos a seleccionar es posible a través de conjunto ***P*** de puntos sobre un **eje cartesiano** en los que cada punto delimita el espacio de selección de cada uno de los ***n*** elementos de la lista, siguiendo la siguiente fórmula:
55+
La manera de construir una escala logarítmica adaptada a la ***n*** cantidad de objetos a seleccionar es posible a través de **conjunto *P* de puntos sobre un eje cartesiano** en los que cada punto delimita el espacio de selección de cada uno de los ***n*** elementos de la lista, utilizando la siguiente fórmula:
5656

5757
[![Formula to build a n spaces logarithmic scale](https://github.com/arhcoder/LRPS-Algorithm/blob/master/Images/Formula.png?raw=true "Formula to build a n spaces logarithmic scale")](https://github.com/arhcoder/LRPS-Algorithm "Formula to build a n spaces logarithmic scale")
5858

59-
Es decir, dado el mismo caso de construir la escala sobre un eje cartesiano, con ***n*** cantidad de espacios (objetos) y por ende ***n*** cantidad de puntos de división, la distancia entre cada punto ***i*** y el origen (coordenada (0, 0)) está dada por la fórmula:
59+
Es decir, dado el mismo caso de construir la escala sobre un eje cartesiano, con ***n*** cantidad de espacios (objetos) y por ende ***n*** cantidad de puntos de división, la distancia entre cada punto ***i*** y el ***origen*** (coordenada (0, 0)) está dada por la fórmula:
6060

6161
[![Formula for distances on a n spaces logarithmic scale](https://github.com/arhcoder/LRPS-Algorithm/blob/master/Images/Distance.png?raw=true "Formula for distances on a n spaces logarithmic scale")](https://github.com/arhcoder/LRPS-Algorithm "Formula for distances on a n spaces logarithmic scale")
6262

63-
Si se desea encontrar la coordenada del punto 1, para el ejemplo de los sabores de helados (n = 5), la coordenada sería:
63+
Si se desea encontrar la coordenada del punto 1, para el ejemplo de los cinco sabores de helados (n = 5), la coordenada sería:
6464

6565
[![Calculation of the space of a point 1 in logarithmic scale with n = 5](https://github.com/arhcoder/LRPS-Algorithm/blob/master/Images/Point.png?raw=true "Calculation of the space of a point 1 in logarithmic scale with n = 5")](https://github.com/arhcoder/LRPS-Algorithm "Calculation of the space of a point 1 in logarithmic scale with n = 5")
6666

67-
Entonces, si se quieren encontrar todos los puntos necesarios para construir la escala logarítmica de cinco objetos:
67+
Entonces, para encontrar todos los puntos necesarios para construir la escala logarítmica de cinco objetos:
6868

69-
[![Calculation of the five points of a logarithmic scale](https://github.com/arhcoder/LRPS-Algorithm/blob/master/Images/Pointsn.png?raw=true "Calculation of the five points of a logarithmic scale")](https://github.com/arhcoder/LRPS-Algorithm "Calculation of the five points of a logarithmic scale")
69+
[![Calculation of the five points of a logarithmic scale](https://github.com/arhcoder/LRPS-Algorithm/blob/master/Images/Points.png?raw=true "Calculation of the five points of a logarithmic scale")](https://github.com/arhcoder/LRPS-Algorithm "Calculation of the five points of a logarithmic scale")
7070

71-
[![Five spaces logarithmic scale graphing](https://github.com/arhcoder/LRPS-Algorithm/blob/master/Images/Points.png?raw=true "Five spaces logarithmic scale graphing")](https://github.com/arhcoder/LRPS-Algorithm "Five spaces logarithmic scale graphing")
71+
[![Five spaces logarithmic scale graphing](https://github.com/arhcoder/LRPS-Algorithm/blob/master/Images/Cartesian.png?raw=true "Five spaces logarithmic scale graphing")](https://github.com/arhcoder/LRPS-Algorithm "Five spaces logarithmic scale graphing")
7272

73-
**Nota: El uso de eje cartesiano es innecesario para el algoritmo, puesto que sólo se necesita saber la distancia entre el origen y cualquier otro punto de la escala; por lo que sólo será necesaria la fórmula de distancia: di = nlogn+1(i+1).**
73+
**Nota: El uso de eje cartesiano es innecesario para el algoritmo, puesto que sólo se necesita saber la distancia entre el origen y cualquier otro punto de la escala; por lo que sólo será necesaria la fórmula de distancia: di = nlogn+1(i+1).**
7474

7575
<br>
7676

@@ -81,14 +81,14 @@ El pseudocódigo del algoritmo de selección se muestra a continuación:
8181

8282
Se recibe de entrada una lista de objetos de la cuál se obtiene el valor de ***n*** como la cantidad de objetos en la selección. Un par de casos de paro se dan cuando la lista está vacía o contiene sólo un elemento, en casos contrarios se procede con el resto del algoritmo, en donde se obtiene un número decimal aleatorio entre 0 y ***n***, y se inicia un ciclo de 1 hasta ***n.***
8383

84-
Dentro del ciclo se calcula –usando la misma analogía de un plano cartesiano– la distancia del ***"origen"*** hasta el primer punto de la escala logarítmica **(p1),** utilizando la fórmula de distancia antes descrita. Si el punto aleatorio está entre 0 y la distancia del primer punto de la escala; es decir, si el punto aleatorio quedó antes de p1 **(punto aleatorio <= distancia a p1),** entonces se toma la decisión de tomar el objeto de dicho espacio (el objeto número 1), en caso de que el punto aleatorio esté por encima de este primer aleatorio, se continúa con el ciclo hasta encontrar el espacio en que cayó el punto.
84+
Dentro del ciclo se calcula –usando la misma analogía de un plano cartesiano– la distancia del ***"origen"*** hasta el primer punto de la escala logarítmica **(p1),** utilizando la fórmula de distancia antes descrita. Si el punto aleatorio está entre 0 y la distancia del primer punto de la escala; es decir, si el punto aleatorio quedó antes de p1 **(punto aleatorio <= distancia a p1),** entonces se toma la decisión de tomar el objeto de dicho espacio (el objeto número 1), en caso de que el punto aleatorio esté por encima de este primer punto de la escala, se continúa con el ciclo hasta encontrar el espacio en que cayó el punto.
8585

86-
El algoritmo tiene una **complejidad lineal** de **O(n)** –con Big O notation–, recordando que ***n*** es la cantidad de objetos en la lista inicial de decisión.
86+
El algoritmo tiene una **complejidad linealO(n)** –con notación ***"Big O"***–, recordando que ***n*** es la cantidad de objetos en la lista inicial de decisión.
8787

8888
<br>
8989

9090
### Experimentos
91-
Haciendo pruebas de conteo para las decisiones tomadas por el algoritmo, a fin de comprobar el sesgo en las elecciones, **repitiendo la selección una cierta cantidad de veces y contando cuántas veces se eligió cada uno de los objetos se graficó:**
91+
Haciendo pruebas de conteo para las decisiones tomadas por el algoritmo, a fin de comprobar el sesgo en las elecciones, **repitiendo la selección una cierta cantidad de veces y contando cuántas veces se eligió cada uno de los objetos, se graficó:**
9292

9393
**1. Con 5 objetos y 100 repeticiones:**
9494

@@ -112,7 +112,7 @@ Haciendo pruebas de conteo para las decisiones tomadas por el algoritmo, a fin d
112112

113113
**Se puede comprobar que se obtiene la forma de la curva de un logaritmo.**
114114

115-
**Nota:** Para la generación de números aleatorios se utilizó la función ***random*** del **core de Python v.3.11.0 de 64 Bits.** El script de medición así como el algoritmo ***LRPS*** se encuentran en [**este repositorio**](https://github.com/arhcoder/LRPS-Algorithm "este repositorio").
115+
**Nota:** Para la generación de números aleatorios se utilizó la función ***random*** del **core de Python v.3.11 de 64 Bits.** El script de medición así como el algoritmo ***LRPS*** se encuentran en [**este repositorio**](https://github.com/arhcoder/LRPS-Algorithm "este repositorio").
116116

117117
<br>
118118

@@ -121,7 +121,7 @@ Esta es sólo una propuesta de algoritmo, puede ser de utilidad en; por ejemplo,
121121

122122
En caso de que para un problema específico se quiera que dos o más objetos tengan la misma probabilidad de selección, se puede considerar –para esta implementación– que dichos objetos estén incluidos en una estructura de datos que les contenga como **UN** solo objeto, de modo que si el algoritmo los escoge, arrojará a los objetos en conjunto, posteriormente y mediante una decisión del tipo ruleta (como la escala lineal) se puede escoger alguno de estos.
123123

124-
Consulta el código del algoritmo desde el **repositorio** principal en [**github.com/arhcoder/LRPS-Algorithm**](https://github.com/arhcoder/LRPS-Algorithm "**github.com/arhcoder/LRPS-Algorithm**"), cualquier **colaboración y/o propuesta de mejora** será bien recibida, al igual que una **estrella de GitHub.**
124+
Consulta el código del algoritmo desde el **repositorio principal** en [**github.com/arhcoder/LRPS-Algorithm**](https://github.com/arhcoder/LRPS-Algorithm "**github.com/arhcoder/LRPS-Algorithm**"), cualquier **colaboración y/o propuesta de mejora** será bien recibida, al igual que una **estrella de GitHub.**
125125

126126
Escríbeme a **arhcoder@gmail.com** para cualquier inquietud, o si te resultó útil este aporte en alguna aplicación y búscame en redes sociales como **@arhcoder.**
127127

‎Article/LRPS-ES.pdf‎

-6.54 KB
Binary file not shown.

‎Images/Cartesian.png‎

60.2 KB
Loading[フレーム]

‎Images/Points.png‎

-40.3 KB
Loading[フレーム]

‎Images/Pointsn.png‎

-18.9 KB
Binary file not shown.

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /