Adicionados flags para truncar saída

This commit is contained in:
Daneck1988 2024-10-13 08:53:37 -03:00
parent 19ece6f700
commit dd2aacb284
3 changed files with 43 additions and 21 deletions

View File

@ -15,8 +15,20 @@
#define TEMP_MIN 0.01 #define TEMP_MIN 0.01
#endif #endif
int main() int main(int argc, char *argv[])
{ {
char flags = 0;
for(int i = 1; i < argc; i++){
if(argv[i][0] == '-'){
int j = 1;
while(argv[i][j] != '\0'){
if(argv[i][j] == 'i') flags |= SIMULATED_ANNEALING_DISABLE_SHOWITRNUM;
else if(argv[i][j] == 'c') flags |= SIMULATED_ANNEALING_DISABLE_SHOWCRATES;
j++;
}
}
}
int number_of_items = 0; int number_of_items = 0;
int capacity = 0; int capacity = 0;
std::cin >> number_of_items >> capacity; std::cin >> number_of_items >> capacity;
@ -29,5 +41,5 @@ int main()
sa::solution act = sa::solution::simulated_annealing(capacity, items, sa::solution act = sa::solution::simulated_annealing(capacity, items,
ALPHA, TEMP, TEMP_MIN); ALPHA, TEMP, TEMP_MIN);
act.print_sol(); act.print_sol(flags);
} }

View File

@ -1,4 +1,4 @@
:: Uso: [set EXEC="caminho/do/executavel.exe"] && [set TEST_FOLDER="caminho/dos/casetests"] && run.bat :: Uso: [set EXEC="caminho/do/executavel.exe"] && [set TEST_FOLDER=caminho/dos/casetests] && [set ARGS=ic] && run.bat
@ECHO off @ECHO off
if not defined EXEC ( if not defined EXEC (
@ -11,5 +11,9 @@ if not defined TEST_FOLDER (
for %%g in (%TEST_FOLDER%/*) do ( for %%g in (%TEST_FOLDER%/*) do (
echo Arquivo de teste: %TEST_FOLDER%/%%g echo Arquivo de teste: %TEST_FOLDER%/%%g
if defined ARGS (
%EXEC% -%ARGS% < %TEST_FOLDER%/%%g
) else (
%EXEC% < %TEST_FOLDER%/%%g %EXEC% < %TEST_FOLDER%/%%g
)
) )

8
sa.hpp
View File

@ -1,5 +1,7 @@
#ifndef SIMULATED_ANNEALING_HEADER_12647_H #ifndef SIMULATED_ANNEALING_HEADER_12647_H
#define SIMULATED_ANNEALING_HEADER_12647_H #define SIMULATED_ANNEALING_HEADER_12647_H
#define SIMULATED_ANNEALING_DISABLE_SHOWCRATES 1
#define SIMULATED_ANNEALING_DISABLE_SHOWITRNUM 2
#include <algorithm> #include <algorithm>
#include <iostream> #include <iostream>
@ -105,11 +107,14 @@ class solution {
std::swap(iteration, other.iteration); std::swap(iteration, other.iteration);
} }
void print_sol() const { void print_sol(char flags = 0) const {
if(!(flags & SIMULATED_ANNEALING_DISABLE_SHOWITRNUM)){
std::cout << "Iteração da solução: " << iteration << '\n'; std::cout << "Iteração da solução: " << iteration << '\n';
std::cout << "Número de iterações calculadas: " << iterations << '\n'; std::cout << "Número de iterações calculadas: " << iterations << '\n';
}
std::cout << "Número de caixas: " << fitness << '\n'; std::cout << "Número de caixas: " << fitness << '\n';
if(!(flags & SIMULATED_ANNEALING_DISABLE_SHOWCRATES)){
int box_now = 1; int box_now = 1;
long long now = 0; long long now = 0;
std::queue<long long> items_stored; std::queue<long long> items_stored;
@ -128,6 +133,7 @@ class solution {
print_box(box_now, items_stored); print_box(box_now, items_stored);
std::cout << '\n'; std::cout << '\n';
} }
}
void setiterations(int itr) { void setiterations(int itr) {
iterations = itr; iterations = itr;