Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Pontificia Universidad Católica Del Perú Facultad de Ciencias E Ingeniería

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 3

PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ

FACULTAD DE CIENCIAS E INGENIERÍA

ALGORITMIA
5ta. práctica (tipo B)
(Primer Semestre 2023)
Duración: 2h 50 min.
● En cada función el alumno deberá incluir, a modo de comentario, la estrategia o forma de solución
que utiliza para resolver el problema. De no incluirse dicho comentario, el alumno perderá el derecho
a reclamo en esa pregunta.
● No puede emplear STL, Plantillas o funciones no vistas en los cursos de la especialidad.
● Los programas deben ser desarrollados en el lenguaje C++. Si la implementación es diferente a la
estrategia indicada o no la incluye, la pregunta no será corregida.
● Un programa que no muestre resultados coherentes y/o útiles será corregido sobre el 50% del
puntaje asignado a dicha pregunta.
● Debe utilizar comentarios para explicar la lógica seguida en el programa elaborado. El orden será
parte de la evaluación.
● Se utilizarán herramientas para la detección de plagios, por tal motivo si se encuentran soluciones
similares, se anulará la evaluación a todos los implicados y se procederá con las medidas disciplinarias
dispuestas por la FCI.
● Solo está permitido acceder a la plataforma de PAIDEIA, cualquier tipo de navegación, búsqueda o
uso de herramientas de comunicación se considera plagio por tal motivo se anulará la evaluación y
se procederá con las medidas disciplinarias dispuestas por la FCI.
● Los programas deben ser desarrollados utilizando nombres para las funciones y variables en
español, de igual forma con los comentarios. El utilizar otro idioma anula su respuesta.
● Para esta evaluación solo se permite el uso de las librerías iostream, iomanip, climits cmath, fstream
y cstring
● Su trabajo deberá ser subido a PAIDEIA.
● Los archivos deben llevar como nombre su código de la siguiente forma codigo_LAB5_P# (donde #
representa el número de la pregunta a resolver)

Pregunta 1 (10 puntos)

Un control de seguridad de la información se puede definir en términos prácticos como actividades, tareas
o acciones que realiza una empresa con la finalidad de abordar un riesgo de seguridad. Así, por ejemplo,
la compra e instalación de un antivirus institucional es un control que permite abordar el riesgo de
infección por virus informático en la infraestructura informática de la empresa. Los controles de seguridad
de la información le significan a la empresa monto a asignar y también un beneficio, ambos expresados
en términos económicos. Así, en el mismo ejemplo, el antivirus institucional podría costarle a la empresa
10,000 USD, pero el beneficio es que no haya pérdidas debido a infecciones por virus en la empresa de
hasta 25,000 USD.

Considerando que la empresa ha asignado para la implementación de controles de seguridad de la


información un presupuesto de P dólares (USD), se muestra a continuación una tabla con 8 potenciales
controles de seguridad:

P = 100,000 USD

INF263 Algoritmia Laboratorio 5 (2023-1)


Control Inversión (USD) Requisitos (máx. 3) Beneficio (USD)
1 32,000 - 60,000
2 8,000 - 32,000
3 40,000 1,2 120,000
4 40,000 - 60,000
5 20,000 - 32,000
6 4,000 2 20,000
7 20,000 6 48,000
8 20,000 6 60,000
Nótese que algunos controles necesitan requisitos para ser tomados en cuenta en la solución. Se sabe
como máximo un control puede tener 3 requisitos. Por ejemplo, el control 3 necesita que previamente se
implemente el control 1 y 2.

Se le pide que:

a) Implemente un programa utilizando backtracking que permita mostrar todas las soluciones
donde se aproveche al máximo el presupuesto P asignado para la implementación de controles
de seguridad, es decir que la inversión total en los controles seleccionados debe ser igual a P.
(6.0 puntos)
b) A partir del programa aplicando backtracking desarrollado en a), modifíquelo para que muestre
el beneficio que generaría cada una de las soluciones. Además, de todas las soluciones
identifique aquella que permita obtener el mayor beneficio para la empresa. (4.0 puntos)

Pregunta 2 (10 puntos)

Una fábrica de robots produce N tipos de lotes diarios, cada tipo de lote tiene una cantidad de unidades
determinada, los cuales siempre son las mismas debido a su forma de fabricación. Al llegar los pedidos de
los clientes, la empresa desea saber si realmente puede atender estas solicitudes, con los tipos de lotes
que actualmente tiene. A continuación, se muestran dos ejemplos:

Ejemplo 1:

Si la empresa produce: N = 4 tipos de lotes

Los tipos de lotes producidos tienen: 5, 2, 8 y 4 productos

Si llega un pedido de M = 3 lotes, con los pedidos de 9, 6 y 12 productos

La respuesta es que, si se puede atender, ya que se puede sumar los tipos de lote de 5 y 4 unidades para
formar un lote de 9 productos, se puede sumar los tipos de lote de 2 y 4 unidades para satisfacer un lote
de 6 productos, finalmente se pueden sumar los tipos de lote de 8 y 4 productos para satisfacer el lote
pedido de 12 productos.

Ejemplo 2:

Si la empresa produce: N = 4 tipos de lotes

Los tipos de lotes producidos tienen: 5, 2, 8 y 4 productos

Si llega un pedido de M = 2 lotes, con los pedidos de 4 y 3 productos

La respuesta es que, no se puede atender, ya que no existe ningún tipo de lote cuya suma pueda formar
3 productos.

a) Utilizando programación dinámica, desarrolle un programa que ayude a resolver este problema,
verificando si puede atender o no el pedido. Para esta pregunta debe usar los datos que se muestran

INF263 Algoritmia Laboratorio 5 (2023-1)


en el ejemplo, no deben ingresarlos por el teclado o archivo. No debe reordenar los tiempos de los
procesos, ya que los mismos siempre están ordenados de forma ascendente (4.0 puntos)
_____________________________________________________________________________________

Ahora la empresa de robots se ha dado cuenta que, si realiza los diferentes procesos de fabricación previos
al ensamble en una sola línea de producción, el tiempo de demora es muy alto, por tal motivo ha decidido
dividir esta línea en varias partes. Un detalle importante es que cada línea trabaja de forma secuencial de
acuerdo con los procesos que le corresponden. Es así como los gerentes de producción desean saber
cuánto tiempo como máximo se demoraría el proceso de fabricación al dividir la línea en M partes para
realizar un conjunto de N procesos secuenciales. Recuerde que los tiempos de cada proceso pueden ser
diferentes o no. A continuación, se muestra un ejemplo:

Datos de Ingreso: N = 5

Proceso 1 Proceso 2 Proceso 3 Proceso 4 Proceso 5

Tiempo (min) 10 25 40 45 60

Para M = 2

El tiempo máximo que si se divide la línea en 2 es de 105 horas.

El detalle de este resultado sería una línea realiza los procesos de 10, 25 y 40 horas, y la otra línea los
procesos de 45 y 60 horas

Para M = 3

El tiempo máximo que si se divide la línea en 3 es de 75 horas.

El detalle de este resultado sería una línea realiza los procesos de 10, 25 y 40 horas, la otra línea el proceso
de 45 horas y la tercera línea el proceso de 60 horas

Se solicita:

b) Utilizando programación dinámica, desarrolle un programa que calcule el tiempo máximo de demora
para un grupo de procesos con un determinado número de líneas. Recuerde que solo debe mostrar
el tiempo que demora, no es necesario mostrar el detalle de la asignación. Para esta pregunta debe
usar los datos que se muestran en el ejemplo, no deben ingresarlos por el teclado o archivo (6.0
puntos)

Para ambas preguntas debe mostrar la matriz de soluciones propia de la programación dinámica, en
caso contrario su solución no es válida. Recuerde que ambas preguntas deben ser totalmente iterativas.
Además, debe presentarse en dos proyectos o archivos .cpp distintos de acuerdo con la opción
desarrollada.

Profesores del curso:


David Allasi
Fernando Huamán
Rony Cueva

San Miguel, 24 de junio del 2023

INF263 Algoritmia Laboratorio 5 (2023-1)

También podría gustarte