Skip to content
Snippets Groups Projects
Commit 756aa1c7 authored by Osaba Icedo, Eneko's avatar Osaba Icedo, Eneko
Browse files

First Commit

parent 524633ba
No related branches found
No related tags found
No related merge requests found
% Instancias gaussianas centradas en 1/2 de C
instance = [10,100,single_gaussian_packages(10,50,20,10,100)]';
save_instance("instances\instance1.txt",instance)
instance = [10,120,single_gaussian_packages(10,60,24,10,120)]';
save_instance("instances\instance2.txt",instance)
instance = [10,150,single_gaussian_packages(10,75,30,10,150)]';
save_instance("instances\instance3.txt",instance)
instance = [12,100,single_gaussian_packages(12,50,20,10,100)]';
save_instance("instances\instance4.txt",instance)
instance = [12,120,single_gaussian_packages(12,60,24,10,120)]';
save_instance("instances\instance5.txt",instance)
instance = [12,150,single_gaussian_packages(12,75,30,10,150)]';
save_instance("instances\instance6.txt",instance)
% Instancias de 2 gaussianas centradas en 1/3 y 2/3 de C
instance = [10,100,two_gaussian_packages(10,33,10,66,10,0.5,10,100)]';
save_instance("instances\instance7.txt",instance)
instance = [10,120,two_gaussian_packages(10,40,12,80,12,0.5,10,120)]';
save_instance("instances\instance8.txt",instance)
instance = [10,150,two_gaussian_packages(10,50,15,100,15,0.5,10,150)]';
save_instance("instances\instance9.txt",instance)
instance = [12,100,two_gaussian_packages(12,33,10,66,10,0.5,10,100)]';
save_instance("instances\instance10.txt",instance)
instance = [12,120,two_gaussian_packages(12,40,12,80,12,0.5,10,120)]';
save_instance("instances\instance11.txt",instance)
instance = [12,150,two_gaussian_packages(12,50,15,100,15,0.5,10,150)]';
save_instance("instances\instance12.txt",instance)
% Instancias uniformes
instance = [10,100,uniform_packages(10,10,100)]';
save_instance("instances\instance13.txt",instance)
instance = [10,120,uniform_packages(10,10,120)]';
save_instance("instances\instance14.txt",instance)
instance = [10,150,uniform_packages(10,10,150)]';
save_instance("instances\instance15.txt",instance)
instance = [12,100,uniform_packages(12,10,100)]';
save_instance("instances\instance16.txt",instance)
instance = [12,120,uniform_packages(12,10,120)]';
save_instance("instances\instance17.txt",instance)
instance = [12,150,uniform_packages(12,10,150)]';
save_instance("instances\instance18.txt",instance)
function save_instance(name,instance)
fileID = fopen(name,'w');
fprintf(fileID,"%d\r\n",instance);
fclose(fileID);
end
function plotear(instance)
inc = [];
for i = 0:10:instance(2)
inc(end+1) = sum(instance(3:end)==i);
end
bar(0:10:instance(2),inc)
end
function res = single_gaussian_packages(n,centro,sigma,diffMin,C)
% n número de paquetes
% centro centro de la distribución
% sigma anchura de la distribución
% diffMin minima diferencia entre paquetes
% C capacidad del container
res = [];
while length(res) < n
aux = round(normrnd(centro,sigma));
if mod(aux,diffMin) < diffMin/2
aux = aux - mod(aux,diffMin);
else
aux = aux + diffMin - mod(aux,diffMin);
end
if aux > 0 && aux < C
res(end+1) = aux;
end
end
end
function res = two_gaussian_packages(n,centro1,sigma1,centro2,sigma2,prob1,diffMin,C)
% n número de paquetes
% centro centro de la distribución
% sigma anchura de la distribución
% prob1 probabilidad de que un paquete caiga en la primera gaussiana
% diffMin minima diferencia entre paquetes
% C capacidad del container
res = [];
while length(res) < n
if rand() < prob1
aux = round(normrnd(centro1,sigma1));
else
aux = round(normrnd(centro2,sigma2));
end
if mod(aux,diffMin) < diffMin/2
aux = aux - mod(aux,diffMin);
else
aux = aux + diffMin - mod(aux,diffMin);
end
if aux > 0 && aux < C
res(end+1) = aux;
end
end
end
function res = uniform_packages(n,diffMin,C)
% n número de paquetes
% diffMin minima diferencia entre paquetes
% C capacidad del container
res = zeros(1,n);
for i = 1:n
res(i) = randsample(diffMin:diffMin:C-1,1);
end
end
\ No newline at end of file
10
10
5
5
5
5
2
2
5
2
2
5
\ No newline at end of file
12
10
5
5
2
2
2
5
5
2
5
2
5
5
\ No newline at end of file
14
12
5
5
5
2
2
2
5
5
5
2
2
2
2
2
\ No newline at end of file
3
10
5
5
2
\ No newline at end of file
4
10
5
2
2
2
\ No newline at end of file
5
12
5
5
5
2
2
\ No newline at end of file
6
10
5
5
2
2
5
5
\ No newline at end of file
7
10
5
5
2
5
5
2
2
\ No newline at end of file
8
12
5
5
2
2
2
2
2
2
\ No newline at end of file
9
12
5
5
2
2
2
5
5
2
2
\ No newline at end of file
[[2], [], [0, 1]] - 2
[[1, 2], [], [], [0, 3]] - 2
[[], [], [0, 1], [], [2, 3, 4]] - 2
[[], [1, 5], [], [2, 3], [], [0, 4]] - 3
[[3, 4], [], [0, 1], [5], [2, 6], [], []] - 4
[[], [1, 5], [4], [0, 3], [], [], [2, 6, 7], []] - 4
[[], [2, 5, 8], [0, 1], [], [6], [3, 4, 7], [], [], []] - 4
[[0, 1], [3, 5], [], [2], [6, 7], [], [8], [], [4, 9], []] - 6
[[], [1, 3], [0, 6], [7], [], [4, 10], [2, 9, 11], [], [8], [], [], [5]] - 7
[[], [], [], [], [3, 6], [], [2], [1], [], [0], [4, 9, 12], [], [8, 10, 11], [5, 7, 13]] - 7
\ No newline at end of file
import numpy as np
from pathlib import Path
import networkx as nx
import random
import matplotlib.pyplot as plt
instance = 'MaxCut_20'
n_reduced_variables = 50
edges = 0
path = Path('generated_data', f'{instance}.mc')
output = ""
for i in range(n_reduced_variables):
for j in range(n_reduced_variables):
int = random.randint(0,9)
if i != j and int<4:
output = output + str(i+1) + " " + str(j+1) + " " + str(1)
output = output + "\n"
edges = edges+1
f = open(path, "x")
f.write(str(n_reduced_variables) + " " + str(edges))
f.write("\n")
f.write(output)
f.close()
\ No newline at end of file
10 37
1 7 1
1 9 1
1 10 1
2 1 1
2 4 1
2 5 1
2 7 1
2 9 1
2 10 1
3 1 1
3 2 1
3 4 1
3 7 1
4 5 1
4 7 1
4 8 1
5 3 1
5 6 1
5 9 1
5 10 1
6 1 1
6 2 1
6 5 1
6 7 1
6 9 1
7 2 1
7 3 1
7 5 1
7 8 1
8 1 1
8 2 1
8 9 1
8 10 1
9 3 1
9 6 1
10 7 1
10 8 1
This diff is collapsed.
This diff is collapsed.
20 148
1 2 1
1 9 1
1 17 1
1 18 1
1 19 1
2 3 1
2 4 1
2 5 1
2 8 1
2 9 1
2 10 1
2 11 1
2 13 1
2 14 1
2 20 1
3 1 1
3 5 1
3 7 1
3 8 1
3 9 1
3 10 1
3 16 1
4 1 1
4 6 1
4 7 1
4 8 1
4 9 1
4 11 1
4 14 1
4 15 1
4 18 1
4 20 1
5 2 1
5 3 1
5 6 1
5 7 1
5 13 1
5 14 1
5 18 1
5 20 1
6 4 1
6 8 1
6 10 1
6 12 1
6 14 1
6 19 1
6 20 1
7 1 1
7 4 1
7 10 1
7 11 1
7 16 1
7 19 1
8 1 1
8 2 1
8 9 1
8 10 1
8 13 1
8 14 1
8 15 1
8 20 1
9 2 1
9 5 1
9 11 1
9 13 1
9 15 1
9 16 1
9 17 1
9 19 1
9 20 1
10 5 1
10 7 1
10 8 1
10 9 1
10 13 1
10 20 1
11 1 1
11 3 1
11 6 1
11 12 1
11 13 1
12 2 1
12 5 1
12 9 1
12 18 1
12 20 1
13 1 1
13 3 1
13 8 1
13 9 1
13 10 1
13 12 1
13 16 1
13 17 1
13 20 1
14 3 1
14 5 1
14 6 1
14 11 1
14 12 1
14 19 1
15 1 1
15 4 1
15 5 1
15 6 1
15 9 1
15 11 1
15 13 1
15 14 1
15 20 1
16 1 1
16 2 1
16 6 1
16 7 1
16 8 1
16 10 1
16 11 1
16 13 1
16 19 1
17 3 1
17 4 1
17 9 1
17 10 1
17 11 1
17 18 1
17 20 1
18 6 1
18 7 1
18 9 1
18 12 1
18 13 1
18 15 1
18 17 1
18 19 1
19 2 1
19 7 1
19 9 1
19 10 1
19 11 1
19 12 1
19 14 1
19 18 1
19 20 1
20 1 1
20 3 1
20 10 1
20 13 1
20 14 1
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment