Está en la página 1de 2

LABORATORIO DE LA TÉCNICA VORAZ

OBJETIVO

El objetivo de la práctica es profundizar en el conocimiento de la implementación


práctica de los algoritmos voraces.

CARÁCTER

La práctica es obligatoria y se debe realizar en grupo.

ENUNCIADO

Encontrar una buena solución para el siguiente problema usando un algoritmo voraz.
Explicar el funcionamiento del algoritmo: cuál es el conjunto de candidatos, la función
de selección, la función para añadir un elemento a la solución, el criterio de finalización,
el criterio de coste, etc.
En una votación existen n candidatos y m votantes. La probabilidad de que un votante i
vote al candidato j la conocemos a priori, y viene dada por P[i, j]. Un votante cualquiera
a puede ser coaccionado para que vote al candidato que queramos, por ejemplo, el p, para
lo cual tenemos que pagarle C[a] ptas. Con esto, nos aseguramos que P[a, p] = 1, y P[a,
j] = 0, para j  p.
El objetivo consiste en gastarse la mínima cantidad de dinero, coaccionando a los votantes
necesarios, para garantizar que un candidato p dado se llevará al menos el 70% de los
votos (de acuerdo con las probabilidades esperadas). La solución estará compuesta por la
lista de votantes a los cuales hay que coaccionar.
Aplicar el algoritmo diseñado al siguiente ejemplo: n = 2 candidatos, m = 7 votantes, p
= 1. Porcentajes y costes de coacción:

Votantes
1 2 3 4 5 6 7
P[i, 1] 0.2 0.1 0.8 0.5 0.6 0.2 0
P[i, 2] 0.8 0.9 0.2 0.5 0.4 0.8 1
C[i] 4 3 2 5 3 3 5

Entrega El alumno debe entregar un informe elaborado siguiendo el índice detallado a


continuación. El informe debe enviarse por medio del apartado de Evaluación del
campus virtual. Si se tienen dificultades, puede enviarse por el correo del campus virtual
con el asunto “Práctica 1”. El plazo de entrega del informe es el jueves 25 de septiembre
de 2014, incluido.

INFORME

El alumno debe entregar un informe con la siguiente estructura:


1. Algoritmo original ejecutable. El pseudocódigo contenido en el algoritmo voraz del
enunciado debe concretarse mediante código Java compilable y ejecutable. Para
ello, se pide:
a. Elección de una de las funciones de selección óptimas y escritura en Java de
la condición del if del algoritmo, junto con un diagrama de clases que aclare
la condición.
b. Código Java resultante.
2. Algoritmo final. Código del algoritmo voraz tras tener en cuenta que las actividades
no están ordenadas. Conviene explicar o incluir comentarios sobre las
modificaciones realizadas sobre el algoritmo original ejecutable.
3. Conclusiones. Se explican las conclusiones obtenidas tras realizar la práctica. Estas
conclusiones pueden consistir en una valoración de la técnica voraz o cualquier
comentario sobre la práctica. Por ejemplo, pueden describirse las incidencias que
han dificultado la realización de la práctica, sus aspectos más atractivos o más
difíciles, sugerencias sobre cómo mejorar la práctica, etc.

EVALUACIÓN

Se evaluará la calidad del algoritmo desarrollado y la claridad del informe.

También podría gustarte