Ejercicio 1 - Primer Parcial 2021

Ejercicio 1 - Primer Parcial 2021

de Maria Noelia Cabrera Gomez -
Número de respuestas: 2

Buenas, estuvimos intentando resolver el primer ejercicio del parcial y pensamos el siguiente algoritmo:

Algoritmo{
    Ordenar los bloques en orden creciente de la última instrucción
    Sea S el conjunto que contiene dichos bloques ordenados
    i = 0;
    While (S no vacío){
        crear celda c_i vacía
        Sea B el primer elemento de S
        celdeando (B,S)
        i++       
    }
    return celdas
}

celdeando(B,S){
    agregar el primer bloque B de S a c_i
    eliminar B de S
    Si (existe B', próximo bloque que no se solapa con B)
        celdeando(B',S)
}


La duda que nos queda es, si está correcto, ya que pensamos en asignar la mayor cantidad de bloques que no se solapan para cada celda (siguiendo la idea del 4.1) y que agregamos bloques que terminen lo más pronto posible (y así poder agregar la mayor cantidad a cada celda).
Vimos la solución planteada y  está enfocada de otra forma, por ello quisiéramos saber si lo que planteamos está correcto o si tiene algún error para este problema.

Gracias

En respuesta a Maria Noelia Cabrera Gomez

Re: Ejercicio 1 - Primer Parcial 2021

de Tatiana Rischewski Santomauro -
Hola,

Es interesante la solución que plantean, pero me parece que no es correcta.

Su algoritmo asigna la mayor cantidad de bloques posibles en la primera celda, esta decisión afecta cuáles son los bloques que están en consideración para las siguientes celdas. Puede pasar que la decisión que maximiza la cantidad de bloques para una celda deje bloques que se solapen para las siguientes, pero con otra asignación para la primer celda esto no ocurra.

Un contraejemplo que ilustra esto sería el siguiente, considero los bloques 1-3, 2-5, 6-8 y 4-9 (indicando inicio-fin para cada bloque). En este caso su algoritmo utiliza tres celdas, una primera para 1-3 y 6-8, segunda celda para 2-5, y una tercera para 4-9. Para este caso existe una asignación que usa solo dos celdas, una para 1-3 y 4-9, y otra para 2-5 y 6-8.

Saludos,
Tatiana