15.11.2013 Views

Esqueleto Algorítmico - ulpgc

Esqueleto Algorítmico - ulpgc

Esqueleto Algorítmico - ulpgc

SHOW MORE
SHOW LESS

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 }

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!