0% encontró este documento útil (0 votos)
3 vistas7 páginas

Optimización de Rutas y Gradiente Descendente en Python

El documento presenta tres retos de programación en Python3: optimización de rutas utilizando un grafo y el algoritmo DFS, implementación del algoritmo de gradiente descendente para maximizar la producción en una fábrica, y creación de un agente inteligente que convierte texto a su representación numérica en ASCII. Cada reto incluye un enunciado, casos de prueba y especificaciones para la calificación automática. Los retos están diseñados para evaluar habilidades en algoritmos y manipulación de datos.

Cargado por

garagoense
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
3 vistas7 páginas

Optimización de Rutas y Gradiente Descendente en Python

El documento presenta tres retos de programación en Python3: optimización de rutas utilizando un grafo y el algoritmo DFS, implementación del algoritmo de gradiente descendente para maximizar la producción en una fábrica, y creación de un agente inteligente que convierte texto a su representación numérica en ASCII. Cada reto incluye un enunciado, casos de prueba y especificaciones para la calificación automática. Los retos están diseñados para evaluar habilidades en algoritmos y manipulación de datos.

Cargado por

garagoense
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Reto 1

Lenguaje

Python3

Intentos

0 de 10

Puntaje requerido

90%

Enunciado

Reto optimización de rutas

En un mundo cada vez más interconectado, la optimización de rutas se ha convertido en un


desafío crucial en diversas áreas, desde la logística y el transporte hasta la planificación de
viajes y la gestión de redes de comunicación. En este escenario, se enfrenta el desafío de
encontrar la ruta más corta entre dos ciudades específicas en un extenso mapa de
conexiones. El mapa de conexiones representa una red compleja de ciudades
interconectadas, donde cada ciudad está conectada a otras por una serie de rutas. Cada
conexión está asociada con una distancia que indica la longitud o costo para viajar de una
ciudad a otra. El propósito fundamental es determinar la ruta más corta entre una ciudad de
origen y una ciudad de destino. Esta ruta óptima no solo implica la distancia mínima, sino
también el camino más eficiente y práctico para el traslado entre las dos ciudades.

Teniendo el siguiente mapa en forma de grafo:

grafo = {

'A': {'B': 5, 'C': 8, 'D': 9},

'B': {'A': 5, 'E': 15, 'F': 7},

'C': {'A': 8, 'G': 12, 'H': 10},

'D': {'A': 9, 'I': 11, 'J': 6},

'E': {'B': 15, 'K': 9, 'L': 13},

'F': {'B': 7, 'M': 8, 'N': 6},

'G': {'C': 12, 'O': 10, 'P': 5},


'H': {'C': 10, 'Q': 11, 'R': 7},

'I': {'D': 11, 'S': 14, 'T': 8},

'J': {'D': 6, 'U': 9, 'V': 12},

'K': {'E': 9},

'L': {'E': 13},

'M': {'F': 8},

'N': {'F': 6},

'O': {'G': 10},

'P': {'G': 5},

'Q': {'H': 11},

'R': {'H': 7},

'S': {'I': 14},

'T': {'I': 8},

'U': {'J': 9},

'V': {'J': 12}

La lectura del grafo es la siguiente:

 Existen 22 ciudades, cada una es una letra en mayúscula.


 El valor de las distancias entre ciudades aparece como el valor de las claves del
diccionario. Ejemplo: La distancia entre K y E es de 9. La distancia entre A y B es
5.

Se necesita implementar un programa en Python que encuentre la ruta más corta entre dos
puntos usando el algoritmo DFS (Búsqueda en profundidad).

Cada uno de los casos de prueba estará compuesto por una línea con la ciudad de
Entrada origen y la ciudad destino. Las ciudades se representan con letras mayúsculas.
(No colocar minúsculas ya que se genera error)
Salida La salida estará representada por una única línea formada por las letras
correspondientes a la ruta más corta. Si no hay camino disponible entre los dos
puntos imprimir la palabra 'None'

Casos de prueba:

Entrada Salida Esperada


AQ ACHQ
AP ACGP
AB AB
AZ None

Instrucciones para la calificación automática

Antes de enviar la solución del quiz, por favor tenga en cuenta los siguientes aspectos:

 Cada caso de prueba se especifica con una línea.


 Cada línea debe contener los valores de los parámetros requeridos separados por un
espacio.
 Es importante no utilizar ningún mensaje a la hora de capturar las entradas, es decir,
al utilizar la función input()no agregue ningún texto para capturar los datos.
 Los resultados se muestran en una única línea. Los dos valores requeridos deben
estar separados por un espacio.

Dificultad

Media

Instrucciones

Instrucciones para la calificación automática

Antes de enviar la solución del quiz, por favor tenga en cuenta los siguientes aspectos:

 Cada caso de prueba se especifica con una línea.


 Cada línea debe contener los valores de los parámetros requeridos separados por un
espacio.
 Es importante no utilizar ningún mensaje a la hora de capturar las entradas, es decir,
al utilizar la función input()no agregue ningún texto para capturar los datos.
 Los resultados se muestran en una única línea. Los dos valores requeridos deben
estar separados por un espacio.
Reto 2

Lenguaje

Python3

Intentos

0 de 10

Puntaje requerido

90%

Enunciado

Reto gradiente descendente

En una fábrica que produce un material específico, la cantidad producida está influenciada
por diversas variables como la temperatura de la máquina, la presión aplicada, y el tiempo
de procesamiento. El objetivo es encontrar la configuración óptima de estas variables para
maximizar la producción y minimizar los costos asociados. Para la función objetivo se
establece una función que describe la producción del material en función de las variables
mencionadas. Para este ejemplo se va a trabajar con la función: X^2+5X+6 como la
función objetivo. La función objetivo se deriva para para obtener el gradiente. La derivada
de la función objetivo es: 2X+5.

Se desea implementar el algoritmo del gradiente descendente para encontrar los valores
óptimos de la función objetivo. En este caso se debe encontrar los valores de X e Y.

Los parámetros que se necesitan para el funcionamiento del algoritmo son: La tasa de
aprendizaje, el número de épocas y el valor inicial. Para probar diferentes combinaciones
del material que usa la empresa, hay que hacer variaciones de los parámetros del algoritmo
de gradiente descendente. Por ejemplo, la tasa de aprendizaje se coloca en 0.1, el número
de épocas es 50 y la posición inicial en 0. Como resultado después de 50 épocas el valor de
X y de Y es:

X: -2.499964

Y: -0.249999

Hay que hacer la implementación del algoritmo de gradiente descendiente y variar los
parámetros de configuración.

Cada uno de los casos de prueba estará compuesto por una línea con la tasa de
Entrada
aprendizaje, el número de épocas y el punto inicial
La salida estará representada por una única línea formada por los valores de X
Salida que es el valor después de las iteraciones y el valor de Y que es la evaluación de
X en la función objetivo. Se debe mostrar hasta los primero 6 decimales.

Casos de prueba:

Entrada Salida Esperada


0.1 10 1 -2.12419 -0.108767
0.2 20 0 -2.499909 -0.25
0.1 50 3 -2.499922 -0.25

Instrucciones para la calificación automática

Antes de enviar la solución del quiz, por favor tenga en cuenta los siguientes aspectos:

 Cada caso de prueba se especifica con una línea.


 Cada línea debe contener los valores de los parámetros requeridos separados por un
espacio.
 Es importante no utilizar ningún mensaje a la hora de capturar las entradas, es decir,
al utilizar la función input()no agregue ningún texto para capturar los datos.
 Los resultados se muestran en una única línea. Los dos valores requeridos deben
estar separados por un espacio.

Dificultad

Media

Instrucciones

Instrucciones para la calificación automática

Antes de enviar la solución del quiz, por favor tenga en cuenta los siguientes aspectos:

 Cada caso de prueba se especifica con una línea.


 Cada línea debe contener los valores de los parámetros requeridos separados por un
espacio.
 Es importante no utilizar ningún mensaje a la hora de capturar las entradas, es decir,
al utilizar la función input()no agregue ningún texto para capturar los datos.
 Los resultados se muestran en una única línea. Los dos valores requeridos deben
estar separados por un espacio.
Reto 3

Lenguaje

Python3

Intentos

0 de 10

Puntaje requerido

90%

Enunciado

Reto Agente inteligente

En un entorno de procesamiento de datos, se requiere un agente inteligente capaz de


convertir texto en su representación numérica equivalente utilizando códigos ASCII. Este
agente será utilizado en diversas aplicaciones donde se necesita transformar información
textual en un formato numérico para su procesamiento, análisis o transmisión a través de
sistemas de computación. En un caso de uso específico, el agente puede recibir textos de
entrada provenientes de diversas fuentes, como mensajes, archivos de texto o datos
obtenidos de sensores. Su función principal es convertir esta información textual en una
representación numérica que sea comprensible y procesable por sistemas y algoritmos.

Hay que hacer la implementación de un agente de tipo reactivo en donde la percepción


principal es una cadena de texto que devuelve por cada letra el numero ASCII. Por ejemplo,
para la palabra 'Hola' como percepción, devuelve los números: 72, 111, 108, 97.

El agente pude recibir cualquier tipo de símbolo en el texto y debe ser capaz de hacer la
conversión a ASCII

Cada uno de los casos de prueba estará compuesto por una línea con cadena de
Entrada texto a convertir. Se deben considerar símbolos especiales como punto, coma,
espacio, símbolos matemáticos, etc.
La salida estará representada por una única línea formada por los valores en
Salida
ASCII de cada una de las letras de la cadena de texto

Casos de prueba:

Entrada Salida Esperada


Hola 72 111 108 97
hora Base 104 111 114 97 32 66 97 115 101
1+2=3 49 43 50 61 51

Instrucciones para la calificación automática

Antes de enviar la solución del quiz, por favor tenga en cuenta los siguientes aspectos:

 Cada caso de prueba se especifica con una línea.


 Cada línea debe contener la cadena de texto a convertir.
 Es importante no utilizar ningún mensaje a la hora de capturar las entradas, es decir,
al utilizar la función input()no agregue ningún texto para capturar los datos.
 Los resultados se muestran en una única línea. Los dos valores requeridos deben
estar separados por un espacio.

Dificultad

Media

Instrucciones

Instrucciones para la calificación automática

Antes de enviar la solución del quiz, por favor tenga en cuenta los siguientes aspectos:

 Cada caso de prueba se especifica con una línea.


 Cada línea debe contener la cadena de texto a convertir.
 Es importante no utilizar ningún mensaje a la hora de capturar las entradas, es decir,
al utilizar la función input()no agregue ningún texto para capturar los datos.
 Los resultados se muestran en una única línea. Los dos valores requeridos deben
estar separados por un espacio.

También podría gustarte