|
||
---|---|---|
include | ||
src | ||
LICENSE.md | ||
Makefile | ||
README.md | ||
valAnalysis.sh |
README.md
BSSolver
BSSolver (Bottler Sat Solver) es un sistema que resuelve múltiples fórmulas proposicionales en CNF de forma distribuida.
Table de contenidos
Requisitos
Debe instalar minisat. Este se encuentra disponible en el repositorio de la vasta mayoría de distribuciones de Linux/macOS.
Debian/Ubuntu: apt install minisat
macOS (con homebrew): brew install minisat
Si tiene otra distribución consulte cómo hacerlo. De todos modos, puede construirlo desde la fuente.
Compilación
Para compilar todos los archivos se debe hacer:
make all
Ejecución
Ahora, tendrá dos ejecutables: view
y solve
.
Para ejecutar el programa que se encarga de resolver usted debe pasarle los archivos CNF como parámetros.
./solve $(CNF_FILES)
Este enviará por salida estándar la cantidad de archivos a resolver y su PID, los cuales son necesarios para el programa view
. Por lo tanto, usted tiene dos posibles modos de uso del sistema:
- Enviar el output de
solve
directamente aview
(con el uso de pipes):
./solve $(CNF_FILES) | ./view
- Correr primero
solve
y luego en otra terminal (o en la misma si se corrió en background) ejecutarview
pasándole como argumentos la cantidad de archivos y el PID.
./solve $(CNF_FILES)
./view $(TOTAL_FILES) $(PID)
- No correr el proceso
view
.
Debe notar que en todos los casos se escribirá el output un archivo llamado ouputFile.txt
.
Además, dispondrá de 5 segundos para correr el programa view
.
Testeos
En orden de realizar un análisis estático del sistema usted debe tener instalado cppcheck y pvs-studio. Luego, puede correrlos con:
make test
Por último, si quiere hacer un análisis dinámico (usando valgrind) debe ejecutar el programa valAnalysis.sh
pasandole como argumento la carpeta con los archivos .cnf
o directamente los archivos:
./valAnalysis.sh $(CNF_FILES)
Autores
- Barmasch, Juan Martín (61033)
- Bellver, Ezequiel (61268)
- Lo Coco, Santiago (61301)