Skip to content

Este repositorio implementa un algoritmo de factorización de enteros a través de polinomios para un trabajo de fin de grado.

License

Notifications You must be signed in to change notification settings

Ismael-V/Proyecto_Factor

Este repositorio contiene los algoritmos de factorización Specific Method (SM) y Generic Method (GM) propuestos en el TFG "Nueva aproximación para la factorización de productos de dos números primos grandes" que se puede encontrar en el siguiente enlace https://zaguan.unizar.es/record/149274. Este TFG realiza un estudio del estado del arte con respecto al problema de factorización de enteros y propone los algoritmos SM y GM como solución para llevar a cabo la factorización de enteros, dada una restricción basada en el peso de Hamming. Además, en dicho trabajo se muestra una serie de comparativas de este algoritmo frente a otros así como una serie de conclusiones y trabajo futuro.

En cuanto al proyecto en sí, para compilar el código de la parte de C++ se requiere de la librería gmp (The GNU Multiple Precision Arithmetic Library) así como de make. Además, si se desea ejecutar las versiones mpi, se necesita de un sistema configurado para usar Open MPI (Message Passing Interface)

1º) Se accede al directorio codigo/c++/Z2_ZX con el comando cd y se generan los directorios bin y objects de no existir:

cd codigo/c++/Z2_ZX
mkdir bin
mkdir objects

2º) Se ejecuta el comando make para uno de los siguientes targets:

  make specific_method
  make generic_method
  make generic_method_mpi
  make factorizacion_impar_mpi

3º) Los binarios generados se encuentran en la carpeta bin: Ejemplo de uso:

  ./bin/specific_method 2394965672548873
  ./bin/generic_method 2394965672548873 0 true

Para ejecutar en MPI, se indica con el siguiente comando donde -n indica el número de nodos MPI

mpirun -n 8 ./bin/generic_method_mpi 2394965672548873 0 true
mpirun -n 8 ./bin/factorizacion_impar_mpi 2394965672548873

Si se necesita ayuda sobre el uso de los binarios con ejecutarlos sin parametros indica una descripción de uso.

  ./bin/generic_method

Utilizacion: ./bin/generic_method <clave_publica> <max_deacarreos> <target_carry[true]>

Donde <clave_publica> es el número a factorizar, <max_deacarreos> es el número máximo de deacarreos a realizar y <target_carry[true]> es un parametro que indica si se va a probar solamente con los números con exactamente <max_deacarreos> deacarreos.

About

Este repositorio implementa un algoritmo de factorización de enteros a través de polinomios para un trabajo de fin de grado.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published