Esqueleto Algorítmico - ulpgc
Esqueleto Algorítmico - ulpgc
Esqueleto Algorítmico - ulpgc
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Implementación Secuencial y Paralela de Técnicas Algorítmicas:<br />
Aplicación a Problemas de Optimización Combinatoria<br />
Seminario Invitado: Dpto Métodos Cuantitativos en Economía y Gestión<br />
Introducción<br />
Interfaz de<br />
Usuario<br />
Patrones<br />
Secuenciales<br />
Patrones Paralelos<br />
Experimentos<br />
Computacionales<br />
Conclusiones<br />
Patrón de Resolución<br />
Ramificación y<br />
Acotación Secuencial<br />
Patrón de Resolución<br />
Divide y Vencerás<br />
Secuencial<br />
Combinación de<br />
<strong>Esqueleto</strong>s<br />
Mª Isabel Dorta González<br />
Marzo, 2007<br />
p<br />
w<br />
1<br />
1<br />
≥<br />
p<br />
w<br />
2<br />
2<br />
≥<br />
p<br />
w<br />
3<br />
3<br />
≥<br />
...<br />
≥<br />
p<br />
w<br />
N<br />
N<br />
Instanciación de los esqueletos<br />
1 int main (int argc, char** argv) {<br />
2 Knapsack::Problem pbm;<br />
3 Knapsack::Solution ksol;<br />
4 Knapsack::Bound bs;<br />
5 ...<br />
6 Knapsack::Problem opbm; //ordered problem<br />
7 QuickSort::Solution ssol;<br />
8 ...<br />
9 QuickSort::Solver_Seq svs(pbm);<br />
10 svs.run();<br />
11 ssol = svs.solution();<br />
12 ...<br />
13 opbm.setN(pbm.N);<br />
14 opbm.setCapacity(pbm.C);<br />
15 for (Knapsack::Number i = 0; i < n ; i++) {<br />
16 opbm.setWeight(pbm.w[ssol.l[i]]);<br />
17 opbm.setProfit(pbm.p[ssol.l[i]]);<br />
18 }<br />
19 Knapsack::Solver_Seq svk(opbm, st);<br />
20 svk.run();<br />
21 bs = svk.bestSolution(); ksol = svk.solution(); . . .<br />
22 }