From 3c8bed290d11132263889845158419ddee77e90f Mon Sep 17 00:00:00 2001 From: Daneck1988 Date: Wed, 16 Oct 2024 00:44:23 -0300 Subject: [PATCH 1/2] Recreated readme --- README.md | 55 ++++++++++++++++++++++++++----------------------------- 1 file changed, 26 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index 659548d..a235c50 100644 --- a/README.md +++ b/README.md @@ -1,46 +1,43 @@ -# Pontifícia Universidade Católica de Goiás +# Solução para o problema Bin Packing -## Escola Politécnica e de Artes +Este projeto é a solução do Danilo Barcelos e do Allann Cintra para o 2º Desafio em Otimização com Meta-heurística. Ele segue esta seguinte estrutura de arquivos: -### Ciência da Computação +- A pasta "src" contém o código-fonte do programa da solução +- A pasta "Docs" contém o arquivo do Writer que foi convertido em PDF para submissão +- A pasta "test" contém os casos de teste utilizados. Ela contém o conjunto completo de casos de teste, o conjunto reduzido para debugging, e o arquivo contendo as soluções ótimas de todos os casos +- Na pasta raiz você encontrará os scripts que ajudam a testar vários casos de teste de forma rápida -Alunos: Allann Barbosa Cintra, Danilo Matias Barcelos +# Modo de Usar -*** +## No Linux -## 2º Desafio em Otimização com Meta-heurística +Compile o programa usando makefile `> make`, ou manualmente `> g++ src/main.cpp src/random.cpp src/sa.cpp -o build/sabp`. Após isso você pode rodar o programa manualmente `> build/sabp`, digitando o caso de teste no terminal, ou usando o script "run.sh". -### Problema do Empacotamento – Solução com Recozimento Simulado +Para usar ele, basta chamá-lo, por padrão ele busca o executável no lugar onde o makefile compila, e os testes em `test/reduced`. Caso queira mudar onde ele busca as coisas, pode-se usar estas variáveis: -#### Tópicos: +- EXEC: Caminho do executável +- TEST_FOLDER: Caminho da pasta que contém casos de teste. Cada caso deve ser um arquivo de texto +- SOLUTIONS_FILE: Caminho do arquivo de soluções -1. Introdução +Aqui vai um exemplo de comando para usar o script, supondo que todos os arquivos necessários estão em `/tmp/files`: -1.1. Ambiente de Teste & Desenvolvimento +`EXEC=/tmp/files/exec.out TEST_FOLDER=/tmp/files/tests SOLUTIONS_FILE=/tmp/files/solucoes.txt ./run.sh` -1.2. Instâncias Utilizadas +NOTA: O script bash não diz quanto tempo cada caso de teste levou -2. Meta-heurística utilizada +## No Windows -2.1. Descrição +Compile o programa manualmente, pois o makefile não funciona no Windows `> g++ src/main.cpp src/random.cpp src/sa.cpp -o build/sabp.exe`. Após isso você pode rodar o programa manualmente `> build\sabp.exe`, digitando o caso de teste no terminal, ou usando o script "run.bat". -2.2. Implementação +Para usar ele, basta chamálo, por padrão ele busca o executável no lugar onde ele estaria se o makefile funcionasse no Windows (`build\sabp.exe`), e os testes em `test\reduced`. Caso queira mudar seu comportamento, pode-se usar estas variáveis: -2.3. Variações Testadas +- EXEC: Caminho do executável (Parece que precisa estar em aspas? Batch é estranho) +- TEST_FOLDER: Caminho da pasta que contém casos de teste. Cada caso deve ser um arquivo de texto +- ARGS: Define os argumentos a se passar para o programa. O programa suporta 2 argumentos: i=Não imprimir informações sobre as iterações; c=Não imprimir conteúdos das caixas +- SOLUTIONS_FILE: Caminho do arquivo de soluções -2.4. Resultados +Aqui vai um exemplo de comando para usar o script, supondo que todos os arquivos necessários estão em `C:\arquivos`, e que você está interessado no conteúdo das caixas, mas não nas informações sobre iterações: -3. Conclusão +`set EXEC="C:\arquivos\prog.exe"&& set TEST_FOLDER=C:\arquivos\testes&& set SOLUTIONS_FILE=C:\arquivos\testes\Solucoes.txt&& set ARGS=i&& run.bat` -*** - -## Introdução - -Este documento é a entrega única do nosso grupo, ele contém todas as informações requisitadas para a submissão do desafio. - -### Ambiente de Teste & Desenvolvimento - -Os computadores pessoais dos dois integrantes foram utilizados em todos os processos deste desafio. -O computador do integrante Danilo Barcelos é um computador de mesa sem modelo, possui o processador Ryzen 5 3400G, a placa-mãe ASUS A320M, e 12 GB de memória RAM com 2666 MHz de velocidade. Não possui GPU dedicada. Usa o sistema operacional Windows 10, e o IDE Visual Studio Code. -O integrante Allann Cintra possui ???. Ele usa o sistema operacional Linux, com a distribuição Gentoo, e programa na IDE NeoVim. -Os resultados dos testes contidos neste documento foram obtidos executando o algoritmo através do script “launch.bat” contido no diretório raiz do projeto no repositório. Todos os testes foram realizados no computador do Danilo. Para executar o algoritmo em um ambiente Linux, basta executar o script “launch.sh”. \ No newline at end of file +Este script não procura o arquivo de soluções por padrão, mas diz quantos segundos cada caso de teste levou para ser processado. Se a saída deste script for redirecionada para um arquivo, e um arquivo de soluções foi especificado, pode-se usar o script getstats.py para obter estatísticas do teste. -- 2.51.0 From aec9898091da250e77186cd238aa77607fe36938 Mon Sep 17 00:00:00 2001 From: Daneck1988 Date: Wed, 16 Oct 2024 01:04:55 -0300 Subject: [PATCH 2/2] Hardcoded ARGS to -ic, the script is bugged and i'm tired --- run.bat | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/run.bat b/run.bat index ba305ac..af28f87 100644 --- a/run.bat +++ b/run.bat @@ -10,9 +10,8 @@ if not defined TEST_FOLDER ( set TEST_FOLDER=test\reduced ) -if defined ARGS ( - set ARGS=-%ARGS% -) +rem I need to fix this later, dear God... +set ARGS=-ic if defined SOLUTIONS_FILE ( for /f "tokens=1,2 skip=1" %%a in (%SOLUTIONS_FILE%) do ( -- 2.51.0