Compare commits
No commits in common. "1e7ad317b8a57b9c04ef6e34bd5f46b76ae258c0" and "10b10a4f61ab73d26d19e1ce992df10f715c58ba" have entirely different histories.
1e7ad317b8
...
10b10a4f61
1
.gitignore
vendored
1
.gitignore
vendored
@ -32,4 +32,3 @@
|
|||||||
*.out
|
*.out
|
||||||
*.app
|
*.app
|
||||||
|
|
||||||
build
|
|
||||||
|
|||||||
62
makefile
62
makefile
@ -1,62 +0,0 @@
|
|||||||
# Flag para alterar o padrão do compilador
|
|
||||||
standart = -std=c++17
|
|
||||||
|
|
||||||
# Flags para otimizar o arquivo executável
|
|
||||||
optimize_flags = -O3 -pipe -flto
|
|
||||||
|
|
||||||
# Flags para ativar todos os avisos do compilador
|
|
||||||
warnings = -Wall -Wextra -Werror -Wformat=2 -Wno-maybe-uninitialized \
|
|
||||||
-Wformat-overflow=2 -Wundef -Wconversion -Wwrite-strings
|
|
||||||
|
|
||||||
# Flags para depurar o código
|
|
||||||
sanitize = -fsanitize=address,undefined,pointer-compare,pointer-subtract
|
|
||||||
debug_flags = -ggdb3 -Og -DDEBUG -Wformat-truncation=2 $(sanitize)
|
|
||||||
|
|
||||||
ifeq ($(OS),Windows_NT)
|
|
||||||
CC := gcc
|
|
||||||
CXX := g++
|
|
||||||
else
|
|
||||||
CC := /usr/bin/gcc
|
|
||||||
CXX := /usr/bin/g++
|
|
||||||
endif
|
|
||||||
|
|
||||||
builddir := build
|
|
||||||
ifeq ($(OS),Windows_NT)
|
|
||||||
objectname = sabp.exe
|
|
||||||
makebuilddircmd = mkdir $(builddir)
|
|
||||||
else
|
|
||||||
objectname = sabp
|
|
||||||
makebuilddircmd = mkdir -p $(builddir)
|
|
||||||
endif
|
|
||||||
objectdir = $(builddir)/$(objectname)
|
|
||||||
|
|
||||||
.PHONY: all debug
|
|
||||||
|
|
||||||
all:set_flags $(objectdir)
|
|
||||||
|
|
||||||
debug:set_debug_flags $(objectdir)
|
|
||||||
|
|
||||||
$(objectdir):$(builddir) $(builddir)/random.o $(builddir)/sa.o src/main.cpp
|
|
||||||
$(CXX) $(CPPFLAGS) $(builddir)/random.o $(builddir)/sa.o src/main.cpp -o $(objectdir)
|
|
||||||
|
|
||||||
$(builddir)/random.o:src/random.cpp
|
|
||||||
$(CXX) $(CPPFLAGS) src/random.cpp -o $(builddir)/random.o -c
|
|
||||||
|
|
||||||
$(builddir)/sa.o:src/sa.cpp
|
|
||||||
$(CXX) $(CPPFLAGS) src/sa.cpp -o $(builddir)/sa.o -c
|
|
||||||
|
|
||||||
$(builddir):
|
|
||||||
$(makebuilddircmd)
|
|
||||||
|
|
||||||
set_flags:
|
|
||||||
$(eval override CPPFLAGS += $(warnings) $(optimize_flags) $(standart))
|
|
||||||
|
|
||||||
set_debug_flags:
|
|
||||||
$(eval override CPPFLAGS += $(warnings) $(sanitize) $(debug_flags))
|
|
||||||
|
|
||||||
clean:
|
|
||||||
ifeq ($(OS),Windows_NT)
|
|
||||||
RMDIR "$(builddir)" /S /Q
|
|
||||||
else
|
|
||||||
rm -rf $(builddir)
|
|
||||||
endif
|
|
||||||
2
run.bat
2
run.bat
@ -3,7 +3,7 @@
|
|||||||
setlocal enabledelayedexpansion
|
setlocal enabledelayedexpansion
|
||||||
|
|
||||||
if not defined EXEC (
|
if not defined EXEC (
|
||||||
set EXEC="build\sabp.exe"
|
set EXEC="build\main.exe"
|
||||||
)
|
)
|
||||||
|
|
||||||
if not defined TEST_FOLDER (
|
if not defined TEST_FOLDER (
|
||||||
|
|||||||
2
run.sh
2
run.sh
@ -3,7 +3,7 @@
|
|||||||
IFS=$'\n'
|
IFS=$'\n'
|
||||||
|
|
||||||
if [[ -z $EXEC ]]; then
|
if [[ -z $EXEC ]]; then
|
||||||
EXEC="build/sabp"
|
EXEC="build/main.out"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -z $TEST_FOLDER ]]; then
|
if [[ -z $TEST_FOLDER ]]; then
|
||||||
|
|||||||
@ -20,7 +20,7 @@ auto sa::solution::simulated_annealing(int capacity, const std::vector<long long
|
|||||||
neighbor.setneighbor();
|
neighbor.setneighbor();
|
||||||
|
|
||||||
long long diff = neighbor.fitness - prev.fitness;
|
long long diff = neighbor.fitness - prev.fitness;
|
||||||
if (diff < 0 || rng::random_double<0, 1>() / temp < 0.05) {
|
if (diff < 0 || rng::random_double<0, 1>() / temp < 0.8) {
|
||||||
swap(prev, neighbor);
|
swap(prev, neighbor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -219,7 +219,7 @@ class solution {
|
|||||||
sequence10.reserve(boxes.size());
|
sequence10.reserve(boxes.size());
|
||||||
sequence11.reserve(boxes.size());
|
sequence11.reserve(boxes.size());
|
||||||
|
|
||||||
for (size_t i = 0; i < (size_t)choice; i++) {
|
for (size_t i = 0; i < choice; i++) {
|
||||||
if (boxes[choice].swappable10(boxes[i], capacity)) {
|
if (boxes[choice].swappable10(boxes[i], capacity)) {
|
||||||
sequence10.push_back((int)i);
|
sequence10.push_back((int)i);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user