• No se han encontrado resultados

Clase 19: POO aplicado a Simulación

N/A
N/A
Protected

Academic year: 2021

Share "Clase 19: POO aplicado a Simulación"

Copied!
153
0
0

Texto completo

(1)

Pontificia Universidad Cat´olica de Chile Escuela de Ingenier´ıa

Departamento de Ciencias de la Computaci´on

Clase 19: POO aplicado a Simulaci´

on

Rodrigo Toro Icarte (rntoro@uc.cl)

IIC1103 Introducci´on a la Programaci´on - Secci´on 5

(2)

Alguna vez les dije: “En computaci´

on aspiramos a modelar el

mundo para solucionar problemas reales”.

(3)

Simulaci´on Ejercicios

Simulaci´

on

Alguna vez les dije: “En computaci´

on aspiramos a modelar el

mundo para solucionar problemas reales”.

(4)

Simulaci´on Ejercicios

Simulaci´

on

Objetivo: Aprender a modelar problemas reales y simularlos.

En el banco. En un tsunami.

Simular caudal cuenca hidr´

aulica.

Simular funcionamiento de una f´

abrica.

(5)

Simulaci´on Ejercicios

Simulaci´

on

Objetivo: Aprender a modelar problemas reales y simularlos.

Ejemplos:

Simular el flujo de personas:

En el metro. En el banco. En un tsunami.

Simular caudal cuenca hidr´

aulica.

Simular funcionamiento de una f´

abrica.

(6)

Objetivo: Aprender a modelar problemas reales y simularlos.

Ejemplos:

Simular el flujo de personas:

En el metro. En el banco. En un tsunami.

Simular caudal cuenca hidr´

aulica.

Simular funcionamiento de una f´

abrica.

(7)

Simulaci´on Ejercicios

Simulaci´

on

Observaci´

on: Un modelo es una simplificaci´

on de la realidad.

... mientras m´

as parecido, m´

as confiables ser´

an las conclusiones.

(8)

Observaci´

on: Un modelo es una simplificaci´

on de la realidad.

... mientras m´

as parecido, m´

as confiables ser´

an las conclusiones.

4

(9)

Simulaci´on Ejercicios

Simulaci´

on

Hoy en d´ıa se obtienen modelos de simulaci´

on muy preciosos

(entre 80% y 95%).

http://www.simula.uc.cl/index.php

(10)

Hoy en d´ıa se obtienen modelos de simulaci´

on muy preciosos

(entre 80% y 95%).

http://www.simula.uc.cl/index.php

(11)

Simulaci´on Ejercicios

Simulaci´

on

Idea: Tendremos un loop principal que haga avanzar la

simulaci´

on paso a paso (generalmente es minuto a minuto).

Dentro del loop, ocurrir´

an o no eventos con cierta probabilidad.

Los eventos cambiar´

an nuestras m´

etricas de rendimiento.

(12)

Simulaci´on Ejercicios

Simulaci´

on

Ejemplo: ¿Cu´

al es la espera media en la cola del cajero del

metro San Joaqu´ın entre las 19.00 y las 21.00?

Cada persona demora entre 1 y 5 minutos usando el cajero

(distribuye uniforme).

(13)

Simulaci´on Ejercicios

Simulaci´

on

Ejemplo: ¿Cu´

al es la espera media en la cola del cajero del

metro San Joaqu´ın entre las 19.00 y las 21.00?

Datos hist´

oricos:

En cada minuto, llega una persona al cajero con

probabilidad 0.2.

Cada persona demora entre 1 y 5 minutos usando el cajero

(distribuye uniforme).

(14)

Simulaci´on Ejercicios

Simulaci´

on

Primero hago un loop para que avance el tiempo (de minuto en

minuto).

1 def s i m u l a r () : 2 T = 0 3 w h i l e( T < 2 * 6 0 ) : # s i m u l a m o s 2 h o r a s 4 # Aqu ´ı r e a l i z o s i m u l a c i ´o n 5 T += 1 8

(15)

Simulaci´on Ejercicios

Simulaci´

on

Primero hago un loop para que avance el tiempo (de minuto en

minuto).

1 def s i m u l a r () : 2 T = 0 3 w h i l e( T < 2 * 6 0 ) : # s i m u l a m o s 2 h o r a s 4 # Aqu ´ı r e a l i z o s i m u l a c i ´o n 5 T += 1

En cada minuto llega alguien con probabilidad 0.2 ¿C´

omo

modelamos esto?

(16)

Simulaci´on Ejercicios

Simulaci´

on

¿C´

omo modelo que cierto evento ocurra con probabilidad p?

3 r e t u r n r a n d o m . r a n d o m () < p 4 5 p r i n t( s u c e d e _ e v e n t o (0) ) # S i e m p r e F a l s e 6 p r i n t( s u c e d e _ e v e n t o ( 0 . 7 ) ) # 70% de las v e c e s T r u e 7 p r i n t( s u c e d e _ e v e n t o (1) ) # S i e m p r e T r u e 9

(17)

Simulaci´on Ejercicios

Simulaci´

on

¿C´

omo modelo que cierto evento ocurra con probabilidad p?

En c´

odigo:

1 i m p o r t r a n d o m 2 def s u c e d e _ e v e n t o ( p ) : 3 r e t u r n r a n d o m . r a n d o m () < p 4 5 p r i n t( s u c e d e _ e v e n t o (0) ) # S i e m p r e F a l s e 6 p r i n t( s u c e d e _ e v e n t o ( 0 . 7 ) ) # 70% de las v e c e s T r u e 7 p r i n t( s u c e d e _ e v e n t o (1) ) # S i e m p r e T r u e 9

(18)

Simulaci´on Ejercicios

Simulaci´

on

Agreguemos esta idea el c´

odigo:

1 f r o m r a n d o m i m p o r t r a n d o m 2 3 def s i m u l a r () : 4 T = 0 5 w h i l e( T < 2 * 6 0 ) : # s i m u l a m o s 2 h o r a s 6 if( r a n d o m () < 0 . 2 ) : 7 # L l e g a una p e r s o n a ... 8 T += 1

Se agrega a la cola.

10

(19)

Simulaci´on Ejercicios

Simulaci´

on

Agreguemos esta idea el c´

odigo:

1 f r o m r a n d o m i m p o r t r a n d o m 2 3 def s i m u l a r () : 4 T = 0 5 w h i l e( T < 2 * 6 0 ) : # s i m u l a m o s 2 h o r a s 6 if( r a n d o m () < 0 . 2 ) : 7 # L l e g a una p e r s o n a ... 8 T += 1

¿Qu´

e pasa cuando llega una persona?

Usa el cajero.

Se agrega a la cola.

(20)

Agreguemos esta idea el c´

odigo:

1 f r o m r a n d o m i m p o r t r a n d o m 2 3 def s i m u l a r () : 4 T = 0 5 w h i l e( T < 2 * 6 0 ) : # s i m u l a m o s 2 h o r a s 6 if( r a n d o m () < 0 . 2 ) : 7 # L l e g a una p e r s o n a ... 8 T += 1

¿Qu´

e pasa cuando llega una persona?

Usa el cajero.

Se agrega a la cola.

(21)

Simulaci´on Ejercicios

Simulaci´

on

Creemos una variable que recuerde la cantidad de personas en

cola (que incluya a quien usa el cajero).

1 f r o m r a n d o m i m p o r t r a n d o m 2 3 def s i m u l a r () : 4 T = 0 5 e n _ c o l a = 0 6 w h i l e( T < 2 * 6 0 ) : # s i m u l a m o s 2 h o r a s 7 if( r a n d o m () < 0 . 2 ) : 8 e n _ c o l a += 1 9 T += 1

¿C´

omo modelamos que “el cajero se demora uniforme entre 1 y

5 minutos.”?

(22)

Simulaci´on Ejercicios

Simulaci´

on

Creemos una variable que recuerde la cantidad de personas en

cola (que incluya a quien usa el cajero).

1 f r o m r a n d o m i m p o r t r a n d o m 2 3 def s i m u l a r () : 4 T = 0 5 e n _ c o l a = 0 6 w h i l e( T < 2 * 6 0 ) : # s i m u l a m o s 2 h o r a s 7 if( r a n d o m () < 0 . 2 ) : 8 e n _ c o l a += 1 9 T += 1 11

(23)

Simulaci´on Ejercicios

Simulaci´

on

Creemos una variable que recuerde la cantidad de personas en

cola (que incluya a quien usa el cajero).

1 f r o m r a n d o m i m p o r t r a n d o m 2 3 def s i m u l a r () : 4 T = 0 5 e n _ c o l a = 0 6 w h i l e( T < 2 * 6 0 ) : # s i m u l a m o s 2 h o r a s 7 if( r a n d o m () < 0 . 2 ) : 8 e n _ c o l a += 1 9 T += 1

¿C´

omo modelamos que “el cajero se demora uniforme entre 1 y

5 minutos.”?

(24)

Simulaci´on Ejercicios

Simulaci´

on

¿C´

omo obtengo valor aleatorio uniforme entre a y b?

3 r e t u r n r a n d o m . r a n d i n t ( a , b )

Caso continuo:

1 i m p o r t r a n d o m 2 def o b t e n e r _ n u m e r o ( a , b ) : 3 r e t u r n a + ( b - a ) * r a n d o m . r a n d o m () 12

(25)

Simulaci´on Ejercicios

Simulaci´

on

¿C´

omo obtengo valor aleatorio uniforme entre a y b?

Caso discreto:

1 i m p o r t r a n d o m 2 def o b t e n e r _ n u m e r o ( a , b ) : 3 r e t u r n r a n d o m . r a n d i n t ( a , b )

Caso continuo:

1 i m p o r t r a n d o m 2 def o b t e n e r _ n u m e r o ( a , b ) : 3 r e t u r n a + ( b - a ) * r a n d o m . r a n d o m () 12

(26)

Simulaci´on Ejercicios

Simulaci´

on

Idea: Cuando alguien comience a usar el cajero, fijemos su

tiempo de ida.

5 e n _ c o l a = 0 6 w h i l e( T < 2 * 6 0 ) : 7 if( r a n d o m () < 0 . 2 ) : 8 e n _ c o l a += 1 9 # r e v i s o si p u e d o u s a r el c a j e r o 10 if( e n _ c o l a == 1) : 11 # F i j o t i e m p o en que c a j e r o de d e s o c u p a r ´a 12 T _ i d a = r a n d i n t (1 ,5) 13 T += 1 14 # d i s m i n u y o t i e m p o de ida 15 T _ i d a -= 1 13

(27)

Simulaci´on Ejercicios

Simulaci´

on

Idea: Cuando alguien comience a usar el cajero, fijemos su

tiempo de ida.

1 f r o m r a n d o m i m p o r t random , r a n d i n t 2 def s i m u l a r () : 3 T = 0 4 T _ i d a = -1 # < - t i e m p o en que se d e s o c u p a el c a j e r o 5 e n _ c o l a = 0 6 w h i l e( T < 2 * 6 0 ) : 7 if( r a n d o m () < 0 . 2 ) : 8 e n _ c o l a += 1 9 # r e v i s o si p u e d o u s a r el c a j e r o 10 if( e n _ c o l a == 1) : 11 # F i j o t i e m p o en que c a j e r o de d e s o c u p a r ´a 12 T _ i d a = r a n d i n t (1 ,5) 13 T += 1 14 # d i s m i n u y o t i e m p o de ida 15 T _ i d a -= 1 13

(28)

Simulaci´on Ejercicios

Simulaci´

on

Si T ida llega a cero, alguien se va...

5 if( r a n d o m () < 0 . 2 ) : 6 e n _ c o l a += 1 7 if( e n _ c o l a == 1) : 8 T _ i d a = r a n d i n t (1 ,5) 9 if( T _ i d a == 0) : 10 e n _ c o l a -= 1 # a l g u i e n se va 11 if( e n _ c o l a > 0) : # a l g u i e n m ´a s usa el c a j e r o 12 T _ i d a = r a n d i n t (1 ,5) 13 T += 1 14 T _ i d a -= 1

¿Qu´

e estad´ısticas interesantes podemos sacar de este c´

odigo?

(29)

Simulaci´on Ejercicios

Simulaci´

on

Si T ida llega a cero, alguien se va...

1 f r o m r a n d o m i m p o r t random , r a n d i n t 2 def s i m u l a r () : 3 T = 0; T _ i d a = -1; e n _ c o l a = 0 4 w h i l e( T < 2 * 6 0 ) : 5 if( r a n d o m () < 0 . 2 ) : 6 e n _ c o l a += 1 7 if( e n _ c o l a == 1) : 8 T _ i d a = r a n d i n t (1 ,5) 9 if( T _ i d a == 0) : 10 e n _ c o l a -= 1 # a l g u i e n se va 11 if( e n _ c o l a > 0) : # a l g u i e n m ´a s usa el c a j e r o 12 T _ i d a = r a n d i n t (1 ,5) 13 T += 1 14 T _ i d a -= 1

¿Qu´

e estad´ısticas interesantes podemos sacar de este c´

odigo?

(30)

Si T ida llega a cero, alguien se va...

1 f r o m r a n d o m i m p o r t random , r a n d i n t 2 def s i m u l a r () : 3 T = 0; T _ i d a = -1; e n _ c o l a = 0 4 w h i l e( T < 2 * 6 0 ) : 5 if( r a n d o m () < 0 . 2 ) : 6 e n _ c o l a += 1 7 if( e n _ c o l a == 1) : 8 T _ i d a = r a n d i n t (1 ,5) 9 if( T _ i d a == 0) : 10 e n _ c o l a -= 1 # a l g u i e n se va 11 if( e n _ c o l a > 0) : # a l g u i e n m ´a s usa el c a j e r o 12 T _ i d a = r a n d i n t (1 ,5) 13 T += 1 14 T _ i d a -= 1

¿Qu´

e estad´ısticas interesantes podemos sacar de este c´

odigo?

(31)

Simulaci´on Ejercicios

Simulaci´

on

¿C´

omo calculamos el tiempo medio de espera en cola?

1 f r o m r a n d o m i m p o r t random , r a n d i n t 2 def s i m u l a r () : 3 T = 0; T _ i d a = -1; e n _ c o l a = 0 4 w h i l e( T < 2 * 6 0 ) : 5 if( r a n d o m () < 0 . 2 ) : 6 e n _ c o l a += 1 7 if( e n _ c o l a == 1) : 8 T _ i d a = r a n d i n t (1 ,5) 9 if( T _ i d a == 0) : 10 e n _ c o l a -= 1 # a l g u i e n se va 11 if( e n _ c o l a > 0) : # a l g u i e n m ´a s usa el c a j e r o 12 T _ i d a = r a n d i n t (1 ,5) 13 T += 1 14 T _ i d a -= 1

... necesitamos recordar la hora a la que llega cada usuario.

(32)

¿C´

omo calculamos el tiempo medio de espera en cola?

1 f r o m r a n d o m i m p o r t random , r a n d i n t 2 def s i m u l a r () : 3 T = 0; T _ i d a = -1; e n _ c o l a = 0 4 w h i l e( T < 2 * 6 0 ) : 5 if( r a n d o m () < 0 . 2 ) : 6 e n _ c o l a += 1 7 if( e n _ c o l a == 1) : 8 T _ i d a = r a n d i n t (1 ,5) 9 if( T _ i d a == 0) : 10 e n _ c o l a -= 1 # a l g u i e n se va 11 if( e n _ c o l a > 0) : # a l g u i e n m ´a s usa el c a j e r o 12 T _ i d a = r a n d i n t (1 ,5) 13 T += 1 14 T _ i d a -= 1

... necesitamos recordar la hora a la que llega cada usuario.

(33)

Simulaci´on Ejercicios

Simulaci´

on

Convirtamos la cola en una lista con los tiempos de llegada.

1 f r o m r a n d o m i m p o r t random , r a n d i n t 2 def s i m u l a r () : 3 T = 0; T _ i d a = -1; c o l a = [] 4 w h i l e( T < 2 * 6 0 ) : 5 if( r a n d o m () < 0 . 2 ) : 6 c o l a . a p p e n d ( T ) # < - a g r e g o t i e m p o de l l e g a d a 7 if(len( c o l a ) == 1) : 8 T _ i d a = r a n d i n t (1 ,5) 9 if( T _ i d a == 0) : 10 # s a c o a la p e r s o n a de la c o l a 11 c o l a . r e m o v e ( c o l a [ 0 ] ) 12 if(len( c o l a ) > 0) : 13 T _ i d a = r a n d i n t (1 ,5) 14 T += 1 15 T _ i d a -= 1

... As´ı, cuando alguien tome el cajero, calculamos cu´

anto estuvo

en cola.

(34)

Simulaci´on Ejercicios

Simulaci´

on

Convirtamos la cola en una lista con los tiempos de llegada.

1 f r o m r a n d o m i m p o r t random , r a n d i n t 2 def s i m u l a r () : 3 T = 0; T _ i d a = -1; c o l a = [] 4 w h i l e( T < 2 * 6 0 ) : 5 if( r a n d o m () < 0 . 2 ) : 6 c o l a . a p p e n d ( T ) # < - a g r e g o t i e m p o de l l e g a d a 7 if(len( c o l a ) == 1) : 8 T _ i d a = r a n d i n t (1 ,5) 9 if( T _ i d a == 0) : 10 # s a c o a la p e r s o n a de la c o l a 11 c o l a . r e m o v e ( c o l a [ 0 ] ) 12 if(len( c o l a ) > 0) : 13 T _ i d a = r a n d i n t (1 ,5) 14 T += 1 15 T _ i d a -= 1 16

(35)

Simulaci´on Ejercicios

Simulaci´

on

Convirtamos la cola en una lista con los tiempos de llegada.

1 f r o m r a n d o m i m p o r t random , r a n d i n t 2 def s i m u l a r () : 3 T = 0; T _ i d a = -1; c o l a = [] 4 w h i l e( T < 2 * 6 0 ) : 5 if( r a n d o m () < 0 . 2 ) : 6 c o l a . a p p e n d ( T ) # < - a g r e g o t i e m p o de l l e g a d a 7 if(len( c o l a ) == 1) : 8 T _ i d a = r a n d i n t (1 ,5) 9 if( T _ i d a == 0) : 10 # s a c o a la p e r s o n a de la c o l a 11 c o l a . r e m o v e ( c o l a [ 0 ] ) 12 if(len( c o l a ) > 0) : 13 T _ i d a = r a n d i n t (1 ,5) 14 T += 1 15 T _ i d a -= 1

... As´ı, cuando alguien tome el cajero, calculamos cu´

anto estuvo

en cola.

(36)

2 def s i m u l a r () : 3 T = 0; T _ i d a = -1; c o l a = [] 4 e s p e r a = 0 # < - g u a r d o la e s p e r a 5 a t e n d i d o s = 0 # < - n ´u m e r o de p e r s o n a s a t e n d i d a s 6 w h i l e( T < 2 * 6 0 ) : 7 if( r a n d o m () < 0 . 2 ) : 8 c o l a . a p p e n d ( T ) 9 if(len( c o l a ) == 1) : 10 T _ i d a = r a n d i n t (1 ,5) 11 # a g r e g o t i e m p o de e s p e r a 12 a t e n d i d o s += 1 13 if( T _ i d a == 0) : 14 c o l a . r e m o v e ( c o l a [ 0 ] ) 15 if(len( c o l a ) > 0) : 16 T _ i d a = r a n d i n t (1 ,5) 17 # a g r e g o t i e m p o de e s p e r a 18 e s p e r a += T - c o l a [0] 19 a t e n d i d o s += 1 20 T += 1; T _ i d a -= 1 17

(37)

Simulaci´on Ejercicios

Simulaci´

on

Finalmente retornamos la espera media en cola:

1 f r o m r a n d o m i m p o r t random , r a n d i n t 2 def s i m u l a r () : 3 T = 0; T _ i d a = -1; c o l a = [] 4 e s p e r a = 0; a t e n d i d o s = 0 5 w h i l e( T < 2 * 6 0 ) : 6 if( r a n d o m () < 0 . 2 ) : 7 c o l a . a p p e n d ( T ) 8 if(len( c o l a ) == 1) : 9 T _ i d a = r a n d i n t (1 ,5) 10 a t e n d i d o s += 1 11 if( T _ i d a == 0) : 12 c o l a . r e m o v e ( c o l a [ 0 ] ) 13 if(len( c o l a ) > 0) : 14 T _ i d a = r a n d i n t (1 ,5) 15 e s p e r a += T - c o l a [0] 16 a t e n d i d o s += 1 17 T += 1; T _ i d a -= 1 18 r e t u r n e s p e r a / a t e n d i d o s # R e t o r n o 18

(38)

Finalmente retornamos la espera media en cola:

1 f r o m r a n d o m i m p o r t random , r a n d i n t 2 def s i m u l a r () : 3 T = 0; T _ i d a = -1; c o l a = [] 4 e s p e r a = 0; a t e n d i d o s = 0 5 w h i l e( T < 2 * 6 0 ) : 6 if( r a n d o m () < 0 . 2 ) : 7 c o l a . a p p e n d ( T ) 8 if(len( c o l a ) == 1) : 9 T _ i d a = r a n d i n t (1 ,5) 10 a t e n d i d o s += 1 11 if( T _ i d a == 0) : 12 c o l a . r e m o v e ( c o l a [ 0 ] ) 13 if(len( c o l a ) > 0) : 14 T _ i d a = r a n d i n t (1 ,5) 15 e s p e r a += T - c o l a [0] 16 a t e n d i d o s += 1 17 T += 1; T _ i d a -= 1 18 r e t u r n e s p e r a / a t e n d i d o s # R e t o r n o 18

(39)

Simulaci´on Ejercicios

Simulaci´

on

Ahora podemos ver el resultado de simular:

26 p r i n t(" e s p e r a m e d i a ", s i m u l a r () )

¿Es este resultado estable?

(40)

Ahora podemos ver el resultado de simular:

26 p r i n t(" e s p e r a m e d i a ", s i m u l a r () )

¿Es este resultado estable?

(41)

Simulaci´on Ejercicios

Simulaci´

on

Para obtener el resultado final se calcula el promedio de

ejecutar varias replicas (mientras m´

as mejor).

20 def o b t e n e r _ p r o m e d i o ( n ) :

21 res = 0

22 for i in r a n g e( n ) : 23 res += s i m u l a r () 24 r e t u r n res / n

Luego llamamos a la funci´

on:

27 p r i n t(" e s p e r a m e d i a ", o b t e n e r _ p r o m e d i o ( 1 0 0 0 0 ) )

(42)

Para obtener el resultado final se calcula el promedio de

ejecutar varias replicas (mientras m´

as mejor).

20 def o b t e n e r _ p r o m e d i o ( n ) :

21 res = 0

22 for i in r a n g e( n ) : 23 res += s i m u l a r () 24 r e t u r n res / n

Luego llamamos a la funci´

on:

27 p r i n t(" e s p e r a m e d i a ", o b t e n e r _ p r o m e d i o ( 1 0 0 0 0 ) )

(43)

Simulaci´on Ejercicios

Simulaci´

on

Ejemplo: Simule un ataque zombie.

(44)

Reglas:

Un humano y un zombie se encuentran con probabilidad

0.05 cada minuto.

La probabilidad de que el zombie gane el encuentro es 0.4

La probabilidad de que el humano mate al zombie es 0.2

La probabilidad de que el humano escape es 0.4

(45)

Simulaci´on Ejercicios

Simulaci´

on

1 i m p o r t r a n d o m 2 def s i m u l a r ( t _ m i n ) : 3 # V a r i a b l e s i n i c i a l e s 4 z o m b i e s = 10; h u m a n o s = 1 0 0 0 0 ; T = 0 5 w h i l e( T < t _ m i n ) : 6 # Un z o m b i e y un h u m a n o se e n c u e n t r a n 7 if( r a n d o m . r a n d o m () < 0 . 0 5 ) : 8 r = r a n d o m . r a n d o m () 9 if( r < 0 . 4 ) : # G a n a z o m b i e 10 h u m a n o s -= 1 11 z o m b i e s += 1 12 e l i f( r < 0 . 6 ) : # G a n a h u m a n o 13 z o m b i e s -= 1 14 # S a l g o si h u m a n o s o z o m b i e s l l e g a n a c e r o 15 if( z o m b i e s == 0 or h u m a n o s == 0) : b r e a k 16 # a u m e n t o r e l o j 17 T += 1 23

(46)

Al finalizar muestro estad´ısticas:

18 # M u e s t r o e s t a d ´ı s t i c a s

19 p r i n t(" D ´ı as t r a n s c u r r i d o s : ", T / / ( 6 0 * 2 4 ) ) 20 p r i n t(" H u m a n o s : ", h u m a n o s )

21 p r i n t(" Z o m b i e s : ", z o m b i e s )

Simulo 2 a˜

nos:

23 s i m u l a r ( 6 0 * 2 4 * 3 6 5 * 2 )

(47)

Simulaci´on Ejercicios

Simulaci´

on

[Ex 2014-2]:

El ministro G´

omez Lobo te ha pedido que implementes una

simulaci´

on para determinar la necesidad de buses en los

recorridos del Transantiago. Cada recorrido tiene una cantidad

determinada de paraderos; la separaci´

on entre paraderos es

siempre la misma para un recorrido; y la velocidad de las micros

fluct´

ua entre los 100 y 900 metros por minuto, y cambia minuto

a minuto. Interesa saber la cantidad m´

axima y el promedio de

micros en un recorrido dado, entre 8.00 AM y 8.00 PM.

(48)

Simulaci´on Ejercicios

Simulaci´

on

Para simularlo debes implementar dos clases: Micro y

Recorrido.

ultimo paradero: Que representa el ´

ultimo paradero

visitado.

distancia del paradero: Que corresponde a los metros

recorridos despu´

es de pasar por el ultimo paradero.

La clase Recorrido tiene como atributos:

numero de paraderos

distancia entre paraderos

micros: Lista con las micros en el recorrido.

(49)

Simulaci´on Ejercicios

Simulaci´

on

Para simularlo debes implementar dos clases: Micro y

Recorrido.

La clase Micro tiene como atributos:

velocidad

ultimo paradero: Que representa el ´

ultimo paradero

visitado.

distancia del paradero: Que corresponde a los metros

recorridos despu´

es de pasar por el ultimo paradero.

La clase Recorrido tiene como atributos:

numero de paraderos

distancia entre paraderos

micros: Lista con las micros en el recorrido.

(50)

Para simularlo debes implementar dos clases: Micro y

Recorrido.

La clase Micro tiene como atributos:

velocidad

ultimo paradero: Que representa el ´

ultimo paradero

visitado.

distancia del paradero: Que corresponde a los metros

recorridos despu´

es de pasar por el ultimo paradero.

La clase Recorrido tiene como atributos:

numero de paraderos

distancia entre paraderos

micros: Lista con las micros en el recorrido.

(51)

Simulaci´on Ejercicios

Simulaci´

on

a) Implementa los constructores de ambas clases. El de la clase

Micro debe asignar a las micros una velocidad al azar entre 100

y 900 metros (considera solo n´

umeros enteros) y comenzar justo

en el paradero 1. El de Recorrido debe comenzar sin micros y

recibir el valor de sus otros atributos como par´

ametro.

(52)

Simulaci´on Ejercicios

Simulaci´

on

Primero definimos nuestra clase Micro:

1 c l a s s M i c r o :

¿Qu´

e pongo en el constructor?

¿Qu´

e par´

ametros debiera recibir?

(53)

Simulaci´on Ejercicios

Simulaci´

on

Primero definimos nuestra clase Micro:

1 c l a s s M i c r o :

Luego defino el constructor:

1 c l a s s M i c r o :

2 def _ _ i n i t _ _ ( s e l f ) :

¿Qu´

e pongo en el constructor?

¿Qu´

e par´

ametros debiera recibir?

(54)

Primero definimos nuestra clase Micro:

1 c l a s s M i c r o :

Luego defino el constructor:

1 c l a s s M i c r o :

2 def _ _ i n i t _ _ ( s e l f ) :

¿Qu´

e pongo en el constructor?

¿Qu´

e par´

ametros debiera recibir?

(55)

Simulaci´on Ejercicios

Simulaci´

on

La clase Micro tiene como atributos:

velocidad.

ultimo paradero.

distancia del paradero.

“El constructor de la clase Micro debe asignar a las micros una

velocidad al azar entre 100 y 900 metros (considera solo

umeros enteros) y comenzar justo en el paradero 1”.

¿Qu´

e pongo en el constructor?

¿Qu´

e par´

ametros debiera recibir?

(56)

Simulaci´on Ejercicios

Simulaci´

on

La clase Micro tiene como atributos:

velocidad.

ultimo paradero.

distancia del paradero.

“El constructor de la clase Micro debe asignar a las micros una

velocidad al azar entre 100 y 900 metros (considera solo

umeros enteros) y comenzar justo en el paradero 1”.

(57)

Simulaci´on Ejercicios

Simulaci´

on

La clase Micro tiene como atributos:

velocidad.

ultimo paradero.

distancia del paradero.

“El constructor de la clase Micro debe asignar a las micros una

velocidad al azar entre 100 y 900 metros (considera solo

umeros enteros) y comenzar justo en el paradero 1”.

¿Qu´

e pongo en el constructor?

¿Qu´

e par´

ametros debiera recibir?

(58)

Simulaci´on Ejercicios

Simulaci´

on

Debe iniciar en el primer paradero:

1 c l a s s M i c r o : 2 def _ _ i n i t _ _ ( s e l f ) : 3 s e l f . u l t i m o _ p a r a d e r o = 1 4 s e l f . d i s t a n c i a _ d e l _ p a r a d e r o = 0 5 s e l f . v e l o c i d a d = # ??? 30

(59)

Simulaci´on Ejercicios

Simulaci´

on

Debe iniciar en el primer paradero:

1 c l a s s M i c r o :

2 def _ _ i n i t _ _ ( s e l f ) :

3 s e l f . u l t i m o _ p a r a d e r o = 1

4 s e l f . d i s t a n c i a _ d e l _ p a r a d e r o = 0 5 s e l f . v e l o c i d a d = # ???

¿C´

omo asigno a velocidad un n´

umero random entre 100 y 900?

... necesitamos random.randint(100,900)

(60)

Debe iniciar en el primer paradero:

1 c l a s s M i c r o : 2 def _ _ i n i t _ _ ( s e l f ) : 3 s e l f . u l t i m o _ p a r a d e r o = 1 4 s e l f . d i s t a n c i a _ d e l _ p a r a d e r o = 0 5 s e l f . v e l o c i d a d = # ???

¿C´

omo asigno a velocidad un n´

umero random entre 100 y 900?

... necesitamos random.randint(100,900)

(61)

Simulaci´on Ejercicios

Simulaci´

on

Asignamos la velocidad:

1 i m p o r t r a n d o m 2 3 c l a s s M i c r o : 4 def _ _ i n i t _ _ ( s e l f ) : 5 s e l f . u l t i m o _ p a r a d e r o = 1 6 s e l f . d i s t a n c i a _ d e l _ p a r a d e r o = 0 7 s e l f . v e l o c i d a d = r a n d o m . r a n d i n t ( 1 0 0 , 9 0 0 )

... con esto ya podr´ıamos crear una micro y ver sus atributos:

9 m = M i c r o ()

10 p r i n t( m . u l t i m o _ p a r a d e r o ) # > > > 1 11 p r i n t( m . d i s t a n c i a _ d e l _ p a r a d e r o ) # > > > 0

12 p r i n t( m . v e l o c i d a d ) # > > > e n t r e 100 y 900

(62)

Asignamos la velocidad:

1 i m p o r t r a n d o m 2 3 c l a s s M i c r o : 4 def _ _ i n i t _ _ ( s e l f ) : 5 s e l f . u l t i m o _ p a r a d e r o = 1 6 s e l f . d i s t a n c i a _ d e l _ p a r a d e r o = 0 7 s e l f . v e l o c i d a d = r a n d o m . r a n d i n t ( 1 0 0 , 9 0 0 )

... con esto ya podr´ıamos crear una micro y ver sus atributos:

9 m = M i c r o ()

10 p r i n t( m . u l t i m o _ p a r a d e r o ) # > > > 1 11 p r i n t( m . d i s t a n c i a _ d e l _ p a r a d e r o ) # > > > 0

12 p r i n t( m . v e l o c i d a d ) # > > > e n t r e 100 y 900

(63)

Simulaci´on Ejercicios

Simulaci´

on

Ahora creemos la clase Recorrido:

9 c l a s s R e c o r r i d o :

10 def _ _ i n i t _ _ ( s e l f ) :

¿Qu´

e pongo en el constructor?

¿Qu´

e par´

ametros debiera recibir?

(64)

Ahora creemos la clase Recorrido:

9 c l a s s R e c o r r i d o :

10 def _ _ i n i t _ _ ( s e l f ) :

¿Qu´

e pongo en el constructor?

¿Qu´

e par´

ametros debiera recibir?

(65)

Simulaci´on Ejercicios

Simulaci´

on

La clase Recorrido tiene como atributos:

numero de paraderos

distancia entre paraderos

micros: Lista con las micros en el recorrido.

“El constructor de Recorrido debe comenzar sin micros y

recibir el valor de sus otros atributos como par´

ametro”.

¿Qu´

e pongo en el constructor?

¿Qu´

e par´

ametros debiera recibir?

(66)

Simulaci´on Ejercicios

Simulaci´

on

La clase Recorrido tiene como atributos:

numero de paraderos

distancia entre paraderos

micros: Lista con las micros en el recorrido.

“El constructor de Recorrido debe comenzar sin micros y

recibir el valor de sus otros atributos como par´

ametro”.

(67)

Simulaci´on Ejercicios

Simulaci´

on

La clase Recorrido tiene como atributos:

numero de paraderos

distancia entre paraderos

micros: Lista con las micros en el recorrido.

“El constructor de Recorrido debe comenzar sin micros y

recibir el valor de sus otros atributos como par´

ametro”.

¿Qu´

e pongo en el constructor?

¿Qu´

e par´

ametros debiera recibir?

(68)

Simulaci´on Ejercicios

Simulaci´

on

Las micros comienzan como una lista vac´ıa:

9 c l a s s R e c o r r i d o : 10 def _ _ i n i t _ _ ( s e l f ) : 11 s e l f . m i c r o s =[] 11 s e l f . m i c r o s =[] 12 s e l f . n u m e r o _ d e _ p a r a d e r o s = np 13 s e l f . d i s t a n c i a _ e n t r e _ p a r a d e r o s = dp 34

(69)

Simulaci´on Ejercicios

Simulaci´

on

Las micros comienzan como una lista vac´ıa:

9 c l a s s R e c o r r i d o :

10 def _ _ i n i t _ _ ( s e l f ) : 11 s e l f . m i c r o s =[]

El resto se reciben como par´

ametro:

9 c l a s s R e c o r r i d o : 10 def _ _ i n i t _ _ ( self , np , dp ) : 11 s e l f . m i c r o s =[] 12 s e l f . n u m e r o _ d e _ p a r a d e r o s = np 13 s e l f . d i s t a n c i a _ e n t r e _ p a r a d e r o s = dp 34

(70)

b) Para la clase Micro debes implementar un m´

etodo que

recalcula la velocidad de la micro como un entero al azar entre

100 y 900.

(71)

Simulaci´on Ejercicios

Simulaci´

on

Agrego el m´

etodo a Micro:

3 c l a s s M i c r o : 4 def _ _ i n i t _ _ ( s e l f ) : 5 s e l f . u l t i m o _ p a r a d e r o = 1 6 s e l f . d i s t a n c i a _ d e l _ p a r a d e r o = 0 7 s e l f . v e l o c i d a d = r a n d o m . r a n d i n t ( 1 0 0 , 9 0 0 ) 8 def r e c a l c u l a r _ v e l o c i d a d ( s e l f ) :

¿Qu´

e par´

ametros debiera recibir?

¿Qu´

e pongo en el c´

odigo?

(72)

Agrego el m´

etodo a Micro:

3 c l a s s M i c r o : 4 def _ _ i n i t _ _ ( s e l f ) : 5 s e l f . u l t i m o _ p a r a d e r o = 1 6 s e l f . d i s t a n c i a _ d e l _ p a r a d e r o = 0 7 s e l f . v e l o c i d a d = r a n d o m . r a n d i n t ( 1 0 0 , 9 0 0 ) 8 def r e c a l c u l a r _ v e l o c i d a d ( s e l f ) :

¿Qu´

e par´

ametros debiera recibir?

¿Qu´

e pongo en el c´

odigo?

(73)

Simulaci´on Ejercicios

Simulaci´

on

“recalcula la velocidad de la micro como un entero al azar entre

100 y 900”

... luego no necesito par´

ametros externos.

3 c l a s s M i c r o : 4 def _ _ i n i t _ _ ( s e l f ) : 5 s e l f . u l t i m o _ p a r a d e r o = 1 6 s e l f . d i s t a n c i a _ d e l _ p a r a d e r o = 0 7 s e l f . v e l o c i d a d = r a n d o m . r a n d i n t ( 1 0 0 , 9 0 0 ) 8 def r e c a l c u l a r _ v e l o c i d a d ( s e l f ) : 37

(74)

“recalcula la velocidad de la micro como un entero al azar entre

100 y 900”

... luego no necesito par´

ametros externos.

3 c l a s s M i c r o : 4 def _ _ i n i t _ _ ( s e l f ) : 5 s e l f . u l t i m o _ p a r a d e r o = 1 6 s e l f . d i s t a n c i a _ d e l _ p a r a d e r o = 0 7 s e l f . v e l o c i d a d = r a n d o m . r a n d i n t ( 1 0 0 , 9 0 0 ) 8 def r e c a l c u l a r _ v e l o c i d a d ( s e l f ) : 37

(75)

Simulaci´on Ejercicios

Simulaci´

on

¿C´

omo actualizo el valor de la velocidad?

¿Basta con velocidad = random.randint(100,900)?

Debemos

usar el self para cambiar el valor del atributo.

3 c l a s s M i c r o : 4 def _ _ i n i t _ _ ( s e l f ) : 5 s e l f . u l t i m o _ p a r a d e r o = 1 6 s e l f . d i s t a n c i a _ d e l _ p a r a d e r o = 0 7 s e l f . v e l o c i d a d = r a n d o m . r a n d i n t ( 1 0 0 , 9 0 0 ) 8 def r e c a l c u l a r _ v e l o c i d a d ( s e l f ) : 9 s e l f . v e l o c i d a d = r a n d o m . r a n d i n t ( 1 0 0 , 9 0 0 ) 38

(76)

Simulaci´on Ejercicios

Simulaci´

on

¿C´

omo actualizo el valor de la velocidad?

¿Basta con velocidad = random.randint(100,900)?

5 s e l f . u l t i m o _ p a r a d e r o = 1 6 s e l f . d i s t a n c i a _ d e l _ p a r a d e r o = 0 7 s e l f . v e l o c i d a d = r a n d o m . r a n d i n t ( 1 0 0 , 9 0 0 ) 8 def r e c a l c u l a r _ v e l o c i d a d ( s e l f ) : 9 s e l f . v e l o c i d a d = r a n d o m . r a n d i n t ( 1 0 0 , 9 0 0 ) 38

(77)

Simulaci´on Ejercicios

Simulaci´

on

¿C´

omo actualizo el valor de la velocidad?

¿Basta con velocidad = random.randint(100,900)?

Debemos

usar el self para cambiar el valor del atributo.

3 c l a s s M i c r o : 4 def _ _ i n i t _ _ ( s e l f ) : 5 s e l f . u l t i m o _ p a r a d e r o = 1 6 s e l f . d i s t a n c i a _ d e l _ p a r a d e r o = 0 7 s e l f . v e l o c i d a d = r a n d o m . r a n d i n t ( 1 0 0 , 9 0 0 ) 8 def r e c a l c u l a r _ v e l o c i d a d ( s e l f ) : 9 s e l f . v e l o c i d a d = r a n d o m . r a n d i n t ( 1 0 0 , 9 0 0 ) 38

(78)

c) Para la clase Recorrido deber´

as implementar tres m´

etodos.

i) Un m´

etodo agregar micro que agregue una micro en el

primer paradero del recorrido.

(79)

Simulaci´on Ejercicios

Simulaci´

on

Agregamos el m´

etodo:

11 c l a s s R e c o r r i d o : 12 def _ _ i n i t _ _ ( self , np , dp ) : 13 s e l f . m i c r o s =[] 14 s e l f . n u m e r o _ d e _ p a r a d e r o s = np 15 s e l f . d i s t a n c i a _ e n t r e _ p a r a d e r o s = dp 16 def a g r e g a r _ m i c r o ( s e l f ) :

¿Qu´

e par´

ametros debiera recibir?

¿Qu´

e pongo en el c´

odigo?

(80)

Agregamos el m´

etodo:

11 c l a s s R e c o r r i d o : 12 def _ _ i n i t _ _ ( self , np , dp ) : 13 s e l f . m i c r o s =[] 14 s e l f . n u m e r o _ d e _ p a r a d e r o s = np 15 s e l f . d i s t a n c i a _ e n t r e _ p a r a d e r o s = dp 16 def a g r e g a r _ m i c r o ( s e l f ) :

¿Qu´

e par´

ametros debiera recibir?

¿Qu´

e pongo en el c´

odigo?

(81)

Simulaci´on Ejercicios

Simulaci´

on

Debemos recibir una micro como par´

ametro:

11 c l a s s R e c o r r i d o : 12 def _ _ i n i t _ _ ( self , np , dp ) : 13 s e l f . m i c r o s =[] 14 s e l f . n u m e r o _ d e _ p a r a d e r o s = np 15 s e l f . d i s t a n c i a _ e n t r e _ p a r a d e r o s = dp 16 def a g r e g a r _ m i c r o ( self , m ) :

¿C´

omo agregamos la micro a la lista de micros?

¿Basta con micros.append(m)?

(82)

Debemos recibir una micro como par´

ametro:

11 c l a s s R e c o r r i d o : 12 def _ _ i n i t _ _ ( self , np , dp ) : 13 s e l f . m i c r o s =[] 14 s e l f . n u m e r o _ d e _ p a r a d e r o s = np 15 s e l f . d i s t a n c i a _ e n t r e _ p a r a d e r o s = dp 16 def a g r e g a r _ m i c r o ( self , m ) :

¿C´

omo agregamos la micro a la lista de micros?

¿Basta con micros.append(m)?

(83)

Simulaci´on Ejercicios

Simulaci´

on

Para obtener/modificar un atributo debemos usar el self.

11 c l a s s R e c o r r i d o : 12 def _ _ i n i t _ _ ( self , np , dp ) : 13 s e l f . m i c r o s =[] 14 s e l f . n u m e r o _ d e _ p a r a d e r o s = np 15 s e l f . d i s t a n c i a _ e n t r e _ p a r a d e r o s = dp 16 def a g r e g a r _ m i c r o ( self , m ) : 17 s e l f . m i c r o s . a p p e n d ( m ) 42

(84)

ii) Un m´

etodo avanzar micro que recibe una micro m y ajusta

la posici´

on de la micro m de acuerdo a lo que avanza en un

minuto, considerando la posici´

on actual, la velocidad y

considerando adem´

as que cuando una micro visita un paradero

no contin´

ua avanzando ese minuto. M´

as espec´ıficamente, sup´

on

que la micro est´

a ` metros m´

as adelante del paradero p y que v

es la velocidad actual. Si ` + v es mayor a la distancia entre

paraderos, entonces la nueva posici´

on de la micro es justo en el

paradero p + 1. De lo contrario, se ubicar´

a a ` + v metros m´

as

adelante del paradero p.

(85)

Simulaci´on Ejercicios

Simulaci´

on

Primero, creamos el m´

etodo:

11 c l a s s R e c o r r i d o : 12 def _ _ i n i t _ _ ( self , np , dp ) : 13 s e l f . m i c r o s =[] 14 s e l f . n u m e r o _ d e _ p a r a d e r o s = np 15 s e l f . d i s t a n c i a _ e n t r e _ p a r a d e r o s = dp 16 def a g r e g a r _ m i c r o ( self , m ) : 17 s e l f . m i c r o s . a p p e n d ( m ) 18 def a v a n z a r _ m i c r o ( s e l f ) :

¿Qu´

e par´

ametros debiera recibir?

¿Qu´

e pongo en el c´

odigo?

(86)

Primero, creamos el m´

etodo:

11 c l a s s R e c o r r i d o : 12 def _ _ i n i t _ _ ( self , np , dp ) : 13 s e l f . m i c r o s =[] 14 s e l f . n u m e r o _ d e _ p a r a d e r o s = np 15 s e l f . d i s t a n c i a _ e n t r e _ p a r a d e r o s = dp 16 def a g r e g a r _ m i c r o ( self , m ) : 17 s e l f . m i c r o s . a p p e n d ( m ) 18 def a v a n z a r _ m i c r o ( s e l f ) :

¿Qu´

e par´

ametros debiera recibir?

¿Qu´

e pongo en el c´

odigo?

(87)

Simulaci´on Ejercicios

Simulaci´

on

“Un m´

etodo avanzar micro que recibe una micro m”

11 c l a s s R e c o r r i d o : 12 def _ _ i n i t _ _ ( self , np , dp ) : 13 s e l f . m i c r o s =[] 14 s e l f . n u m e r o _ d e _ p a r a d e r o s = np 15 s e l f . d i s t a n c i a _ e n t r e _ p a r a d e r o s = dp 16 def a g r e g a r _ m i c r o ( self , m ) : 17 s e l f . m i c r o s . a p p e n d ( m ) 18 def a v a n z a r _ m i c r o ( self , m ) : 45

(88)

“Un m´

etodo avanzar micro que recibe una micro m”

11 c l a s s R e c o r r i d o : 12 def _ _ i n i t _ _ ( self , np , dp ) : 13 s e l f . m i c r o s =[] 14 s e l f . n u m e r o _ d e _ p a r a d e r o s = np 15 s e l f . d i s t a n c i a _ e n t r e _ p a r a d e r o s = dp 16 def a g r e g a r _ m i c r o ( self , m ) : 17 s e l f . m i c r o s . a p p e n d ( m ) 18 def a v a n z a r _ m i c r o ( self , m ) : 45

(89)

Simulaci´on Ejercicios

Simulaci´

on

“... ajusta la posici´

on de la micro m de acuerdo a lo que avanza

en un minuto, considerando la posici´

on actual, la velocidad y

considerando adem´

as que cuando una micro visita un paradero

no contin´

ua avanzando ese minuto.”

Es decir, si micro est´

a a l metro del paradero p, su velocidad es

v y la distancia entre paraderos es d ¿D´

onde estar´

a en el

siguiente minuto?

Si v + l < d, estar´

a a v + l metros de p.

Si v + l ≥ d, estar´

a a 0 metros de p + 1.

(90)

Simulaci´on Ejercicios

Simulaci´

on

“... ajusta la posici´

on de la micro m de acuerdo a lo que avanza

en un minuto, considerando la posici´

on actual, la velocidad y

considerando adem´

as que cuando una micro visita un paradero

no contin´

ua avanzando ese minuto.”

Es decir, si micro est´

a a l metro del paradero p, su velocidad es

v y la distancia entre paraderos es d ¿D´

onde estar´

a en el

siguiente minuto?

(91)

Simulaci´on Ejercicios

Simulaci´

on

“... ajusta la posici´

on de la micro m de acuerdo a lo que avanza

en un minuto, considerando la posici´

on actual, la velocidad y

considerando adem´

as que cuando una micro visita un paradero

no contin´

ua avanzando ese minuto.”

Es decir, si micro est´

a a l metro del paradero p, su velocidad es

v y la distancia entre paraderos es d ¿D´

onde estar´

a en el

siguiente minuto?

Si v + l < d, estar´

a a v + l metros de p.

Si v + l ≥ d, estar´

a a 0 metros de p + 1.

(92)

Simulaci´on Ejercicios

Simulaci´

on

Problema: ¿C´

omo obtengo l, v, d y p?

l: Distancia micro al ´

ultimo paradero.

p: ´

Ultimo paradero de la micro.

v: Velocidad micro.

d: Distancia entre paraderos.

p: m.ultimo paradero.

v: m.velocidad.

d: self.distancia entre paraderos.

(93)

Simulaci´on Ejercicios

Simulaci´

on

Problema: ¿C´

omo obtengo l, v, d y p?

l: Distancia micro al ´

ultimo paradero.

p: ´

Ultimo paradero de la micro.

v: Velocidad micro.

d: Distancia entre paraderos.

Son atributos de la micro m y del recorrido self:

l: m.distanca del paradero.

p: m.ultimo paradero.

v: m.velocidad.

d: self.distancia entre paraderos.

(94)

Simulaci´on Ejercicios

Simulaci´

on

Calculo nueva posici´

on y pongo condicionales:

11 c l a s s R e c o r r i d o : 12 def _ _ i n i t _ _ ( self , np , dp ) : 13 s e l f . m i c r o s =[] 14 s e l f . n u m e r o _ d e _ p a r a d e r o s = np 15 s e l f . d i s t a n c i a _ e n t r e _ p a r a d e r o s = dp 16 def a g r e g a r _ m i c r o ( self , m ) : 17 s e l f . m i c r o s . a p p e n d ( m ) 18 def a v a n z a r _ m i c r o ( self , m ) : 19 n u e v a _ p o s = m . d i s t a n c i a _ d e l _ p a r a d e r o + m . v e l o c i d a d 20 if( n u e v a _ p o s < s e l f . d i s t a n c i a _ e n t r e _ p a r a d e r o s ) : 21 # a j u s t o p o s i c i ´o n de la m i c r o 22 e l s e: 23 # L l e g o al pr ´o x i m o p a r a d e r o 48

(95)

Simulaci´on Ejercicios

Simulaci´

on

Calculo nueva posici´

on y pongo condicionales:

11 c l a s s R e c o r r i d o : 12 def _ _ i n i t _ _ ( self , np , dp ) : 13 s e l f . m i c r o s =[] 14 s e l f . n u m e r o _ d e _ p a r a d e r o s = np 15 s e l f . d i s t a n c i a _ e n t r e _ p a r a d e r o s = dp 16 def a g r e g a r _ m i c r o ( self , m ) : 17 s e l f . m i c r o s . a p p e n d ( m ) 18 def a v a n z a r _ m i c r o ( self , m ) : 19 n u e v a _ p o s = m . d i s t a n c i a _ d e l _ p a r a d e r o + m . v e l o c i d a d 20 if( n u e v a _ p o s < s e l f . d i s t a n c i a _ e n t r e _ p a r a d e r o s ) : 21 # a j u s t o p o s i c i ´o n de la m i c r o 22 e l s e: 23 # L l e g o al pr ´o x i m o p a r a d e r o

¿C´

omo modifico la posici´

on y paradero de la micro?

(96)

Modifico posici´

on de la micro:

11 c l a s s R e c o r r i d o : 12 def _ _ i n i t _ _ ( self , np , dp ) : 13 s e l f . m i c r o s =[] 14 s e l f . n u m e r o _ d e _ p a r a d e r o s = np 15 s e l f . d i s t a n c i a _ e n t r e _ p a r a d e r o s = dp 16 def a g r e g a r _ m i c r o ( self , m ) : 17 s e l f . m i c r o s . a p p e n d ( m ) 18 def a v a n z a r _ m i c r o ( self , m ) : 19 n u e v a _ p o s = m . d i s t a n c i a _ d e l _ p a r a d e r o + m . v e l o c i d a d 20 if( n u e v a _ p o s < s e l f . d i s t a n c i a _ e n t r e _ p a r a d e r o s ) : 21 m . d i s t a n c i a _ d e l _ p a r a d e r o = n u e v a _ p o s 22 e l s e: 23 m . d i s t a n c i a _ d e l _ p a r a d e r o = 0 24 m . u l t i m o _ p a r a d e r o += 1 49

(97)

Simulaci´on Ejercicios

Simulaci´

on

iii) Un m´

etodo simular minuto, que se encargue de simular un

minuto en la simulaci´

on: debe avanzar todas las micros,

eliminar las que llegan al ´

ultimo paradero y, finalmente,

recalcular la velocidad de cada micro para el pr´

oximo minuto.

Recuerda que puedes eliminar un elemento e de una lista lista

usando lista.remove(e).

(98)

Simulaci´on Ejercicios

Simulaci´

on

Creamos el m´

etodo:

11 c l a s s R e c o r r i d o : 12 def _ _ i n i t _ _ ( self , np , dp ) : 13 # ( . . . ) 14 def a g r e g a r _ m i c r o ( self , m ) : 15 # ( . . . ) 16 def a v a n z a r _ m i c r o ( self , m ) : 17 # ( . . . ) 18 def s i m u l a r _ m i n u t o ( s e l f ) : 51

(99)

Simulaci´on Ejercicios

Simulaci´

on

Creamos el m´

etodo:

11 c l a s s R e c o r r i d o : 12 def _ _ i n i t _ _ ( self , np , dp ) : 13 # ( . . . ) 14 def a g r e g a r _ m i c r o ( self , m ) : 15 # ( . . . ) 16 def a v a n z a r _ m i c r o ( self , m ) : 17 # ( . . . ) 18 def s i m u l a r _ m i n u t o ( s e l f ) :

¿Qu´

e par´

ametros debiera recibir?

¿Qu´

e pongo en el c´

odigo?

(100)

Simulaci´on Ejercicios

Simulaci´

on

“...debe avanzar todas las micros, eliminar las que llegan al

´

ultimo paradero y, finalmente, recalcular la velocidad de cada

micro para el pr´

oximo minuto”

Avanzar todas las micros.

Eliminar micros en ´

ultimo paradero.

Recalcular velocidades.

(101)

Simulaci´on Ejercicios

Simulaci´

on

“...debe avanzar todas las micros, eliminar las que llegan al

´

ultimo paradero y, finalmente, recalcular la velocidad de cada

micro para el pr´

oximo minuto”

¿Par´

ametros?

Ninguno

¿C´

odigo?

Avanzar todas las micros.

Eliminar micros en ´

ultimo paradero.

Recalcular velocidades.

(102)

Simulaci´on Ejercicios

Simulaci´

on

“...debe avanzar todas las micros, eliminar las que llegan al

´

ultimo paradero y, finalmente, recalcular la velocidad de cada

micro para el pr´

oximo minuto”

¿Par´

ametros? Ninguno

Eliminar micros en ´

ultimo paradero.

Recalcular velocidades.

(103)

Simulaci´on Ejercicios

Simulaci´

on

“...debe avanzar todas las micros, eliminar las que llegan al

´

ultimo paradero y, finalmente, recalcular la velocidad de cada

micro para el pr´

oximo minuto”

¿Par´

ametros? Ninguno

¿C´

odigo?

Avanzar todas las micros.

Eliminar micros en ´

ultimo paradero.

Recalcular velocidades.

(104)

“...debe avanzar todas las micros, eliminar las que llegan al

´

ultimo paradero y, finalmente, recalcular la velocidad de cada

micro para el pr´

oximo minuto”

¿Par´

ametros? Ninguno

¿C´

odigo?

Avanzar todas las micros.

Eliminar micros en ´

ultimo paradero.

Recalcular velocidades.

(105)

Simulaci´on Ejercicios

Simulaci´

on

¿C´

omo hago avanzar a todas las micros?

11 c l a s s R e c o r r i d o : 12 def _ _ i n i t _ _ ( self , np , dp ) : 13 s e l f . m i c r o s =[] 14 s e l f . n u m e r o _ d e _ p a r a d e r o s = np 15 s e l f . d i s t a n c i a _ e n t r e _ p a r a d e r o s = dp 16 def a g r e g a r _ m i c r o ( self , m ) : 17 # ( . . . ) 18 def a v a n z a r _ m i c r o ( self , m ) : 19 # ( . . . ) 20 def s i m u l a r _ m i n u t o ( s e l f ) : 53

(106)

Simulaci´on Ejercicios

Simulaci´

on

Podemos hacer un for sobre self.micros y llamar a

avanzar micro(...).

15 # ( . . . ) 16 def a v a n z a r _ m i c r o ( self , m ) : 17 # ( . . . ) 18 def s i m u l a r _ m i n u t o ( s e l f ) : 19 for m in s e l f . m i c r o s : 20 # L l a m a r a a v a n z a r _ m i c r o

¿C´

omo llamo a avanzar micro desde Recorrido?

¿Basta con avanzar micro(m)?

(107)

Simulaci´on Ejercicios

Simulaci´

on

Podemos hacer un for sobre self.micros y llamar a

avanzar micro(...).

11 c l a s s R e c o r r i d o : 12 def _ _ i n i t _ _ ( self , np , dp ) : 13 # ( . . . ) 14 def a g r e g a r _ m i c r o ( self , m ) : 15 # ( . . . ) 16 def a v a n z a r _ m i c r o ( self , m ) : 17 # ( . . . ) 18 def s i m u l a r _ m i n u t o ( s e l f ) : 19 for m in s e l f . m i c r o s : 20 # L l a m a r a a v a n z a r _ m i c r o

¿C´

omo llamo a avanzar micro desde Recorrido?

¿Basta con avanzar micro(m)?

(108)

Podemos hacer un for sobre self.micros y llamar a

avanzar micro(...).

11 c l a s s R e c o r r i d o : 12 def _ _ i n i t _ _ ( self , np , dp ) : 13 # ( . . . ) 14 def a g r e g a r _ m i c r o ( self , m ) : 15 # ( . . . ) 16 def a v a n z a r _ m i c r o ( self , m ) : 17 # ( . . . ) 18 def s i m u l a r _ m i n u t o ( s e l f ) : 19 for m in s e l f . m i c r o s : 20 # L l a m a r a a v a n z a r _ m i c r o

¿C´

omo llamo a avanzar micro desde Recorrido?

¿Basta con avanzar micro(m)?

(109)

Simulaci´on Ejercicios

Simulaci´

on

Para llamar a un m´

etodo desde dentro de una clase usamos

self.

11 c l a s s R e c o r r i d o : 12 def _ _ i n i t _ _ ( self , np , dp ) : 13 # ( . . . ) 14 def a g r e g a r _ m i c r o ( self , m ) : 15 # ( . . . ) 16 def a v a n z a r _ m i c r o ( self , m ) : 17 # ( . . . ) 18 def s i m u l a r _ m i n u t o ( s e l f ) : 19 for m in s e l f . m i c r o s : 20 s e l f . a v a n z a r _ m i c r o ( m ) 55

(110)

Simulaci´on Ejercicios

Simulaci´

on

¿C´

omo elimino las micros del ´

ultimo paradero?

11 c l a s s R e c o r r i d o : 12 def _ _ i n i t _ _ ( self , np , dp ) : 13 s e l f . m i c r o s =[] 14 s e l f . n u m e r o _ d e _ p a r a d e r o s = np 15 s e l f . d i s t a n c i a _ e n t r e _ p a r a d e r o s = dp 16 def a g r e g a r _ m i c r o ( self , m ) : 17 # ( . . . ) 18 def a v a n z a r _ m i c r o ( self , m ) : 19 # ( . . . ) 20 def s i m u l a r _ m i n u t o ( s e l f ) : 21 for m in s e l f . m i c r o s : 22 s e l f . a v a n z a r _ m i c r o ( m ) 56

(111)

Simulaci´on Ejercicios

Simulaci´

on

¿C´

omo elimino las micros del ´

ultimo paradero?

11 c l a s s R e c o r r i d o : 12 def _ _ i n i t _ _ ( self , np , dp ) : 13 s e l f . m i c r o s =[] 14 s e l f . n u m e r o _ d e _ p a r a d e r o s = np 15 s e l f . d i s t a n c i a _ e n t r e _ p a r a d e r o s = dp 16 def a g r e g a r _ m i c r o ( self , m ) : 17 # ( . . . ) 18 def a v a n z a r _ m i c r o ( self , m ) : 19 # ( . . . ) 20 def s i m u l a r _ m i n u t o ( s e l f ) : 21 for m in s e l f . m i c r o s : 22 s e l f . a v a n z a r _ m i c r o ( m )

... ¿C´

omo s´

e si una micro est´

a en el ´

ultimo paradero?

56

(112)

Simulaci´on Ejercicios

Simulaci´

on

Una micro est´

a en el ´

ultimo paradero si m.ultimo paradero es

igual a self.numero de paraderos.

11 c l a s s R e c o r r i d o : 12 def _ _ i n i t _ _ ( self , np , dp ) : 13 # ( . . . ) 14 def a g r e g a r _ m i c r o ( self , m ) : 15 # ( . . . ) 16 def a v a n z a r _ m i c r o ( self , m ) : 17 # ( . . . ) 18 def s i m u l a r _ m i n u t o ( s e l f ) : 19 for m in s e l f . m i c r o s : 20 s e l f . a v a n z a r _ m i c r o ( m ) 21 for m in s e l f . m i c r o s : 22 if( m . u l t i m o _ p a r a d e r o == s e l f . n u m e r o _ d e _ p a r a d e r o s ) : 23 # e l i m i n o m de la l i s t a de m i c r o s 57

(113)

Simulaci´on Ejercicios

Simulaci´

on

Una micro est´

a en el ´

ultimo paradero si m.ultimo paradero es

igual a self.numero de paraderos.

11 c l a s s R e c o r r i d o : 12 def _ _ i n i t _ _ ( self , np , dp ) : 13 # ( . . . ) 14 def a g r e g a r _ m i c r o ( self , m ) : 15 # ( . . . ) 16 def a v a n z a r _ m i c r o ( self , m ) : 17 # ( . . . ) 18 def s i m u l a r _ m i n u t o ( s e l f ) : 19 for m in s e l f . m i c r o s : 20 s e l f . a v a n z a r _ m i c r o ( m ) 21 for m in s e l f . m i c r o s : 22 if( m . u l t i m o _ p a r a d e r o == s e l f . n u m e r o _ d e _ p a r a d e r o s ) : 23 # e l i m i n o m de la l i s t a de m i c r o s

¿C´

omo elimino m?

57

(114)

Basta con self.micros.remove(m)

11 c l a s s R e c o r r i d o : 12 def _ _ i n i t _ _ ( self , np , dp ) : 13 # ( . . . ) 14 def a g r e g a r _ m i c r o ( self , m ) : 15 # ( . . . ) 16 def a v a n z a r _ m i c r o ( self , m ) : 17 # ( . . . ) 18 def s i m u l a r _ m i n u t o ( s e l f ) : 19 for m in s e l f . m i c r o s : 20 s e l f . a v a n z a r _ m i c r o ( m ) 21 for m in s e l f . m i c r o s : 22 if( m . u l t i m o _ p a r a d e r o == s e l f . n u m e r o _ d e _ p a r a d e r o s ) : 23 s e l f . m i c r o s . r e m o v e ( m ) 58

(115)

Simulaci´on Ejercicios

Simulaci´

on

¿C´

omo recalculo las velocidades?

3 c l a s s M i c r o : 4 # ( . . . ) 5 def r e c a l c u l a r _ v e l o c i d a d ( s e l f ) : 6 s e l f . v e l o c i d a d = r a n d o m . r a n d i n t ( 1 0 0 , 9 0 0 ) 7 8 c l a s s R e c o r r i d o : 9 # ( . . . ) 10 def s i m u l a r _ m i n u t o ( s e l f ) : 11 for m in s e l f . m i c r o s : 12 s e l f . a v a n z a r _ m i c r o ( m ) 13 for m in s e l f . m i c r o s : 14 if( m . u l t i m o _ p a r a d e r o == s e l f . n u m e r o _ d e _ p a r a d e r o s ) : 15 s e l f . m i c r o s . r e m o v e ( m ) 59

(116)

Simulaci´on Ejercicios

Simulaci´

on

Recorremos las micros y llamamos a recalcular su velocidad.

3 c l a s s M i c r o : 4 # ( . . . ) 5 def r e c a l c u l a r _ v e l o c i d a d ( s e l f ) : 6 s e l f . v e l o c i d a d = r a n d o m . r a n d i n t ( 1 0 0 , 9 0 0 ) 7 8 c l a s s R e c o r r i d o : 9 # ( . . . ) 10 def s i m u l a r _ m i n u t o ( s e l f ) : 11 for m in s e l f . m i c r o s : 12 s e l f . a v a n z a r _ m i c r o ( m ) 13 for m in s e l f . m i c r o s : 14 if( m . u l t i m o _ p a r a d e r o == s e l f . n u m e r o _ d e _ p a r a d e r o s ) : 15 s e l f . m i c r o s . r e m o v e ( m ) 16 for m in s e l f . m i c r o s : 17 # L l a m o a r e c a l c u l a r _ v e l o c i d a d 60

(117)

Simulaci´on Ejercicios

Simulaci´

on

Recorremos las micros y llamamos a recalcular su velocidad.

3 c l a s s M i c r o : 4 # ( . . . ) 5 def r e c a l c u l a r _ v e l o c i d a d ( s e l f ) : 6 s e l f . v e l o c i d a d = r a n d o m . r a n d i n t ( 1 0 0 , 9 0 0 ) 7 8 c l a s s R e c o r r i d o : 9 # ( . . . ) 10 def s i m u l a r _ m i n u t o ( s e l f ) : 11 for m in s e l f . m i c r o s : 12 s e l f . a v a n z a r _ m i c r o ( m ) 13 for m in s e l f . m i c r o s : 14 if( m . u l t i m o _ p a r a d e r o == s e l f . n u m e r o _ d e _ p a r a d e r o s ) : 15 s e l f . m i c r o s . r e m o v e ( m ) 16 for m in s e l f . m i c r o s : 17 # L l a m o a r e c a l c u l a r _ v e l o c i d a d

... ¿C´

omo llamo a recalcular velocidad?

(118)

Simulaci´on Ejercicios

Simulaci´

on

Lo llamo a trav´

es de la micro particular.

3 c l a s s M i c r o : 4 # ( . . . ) 5 def r e c a l c u l a r _ v e l o c i d a d ( s e l f ) : 6 s e l f . v e l o c i d a d = r a n d o m . r a n d i n t ( 1 0 0 , 9 0 0 ) 7 8 c l a s s R e c o r r i d o : 9 # ( . . . ) 10 def s i m u l a r _ m i n u t o ( s e l f ) : 11 for m in s e l f . m i c r o s : 12 s e l f . a v a n z a r _ m i c r o ( m ) 13 for m in s e l f . m i c r o s : 14 if( m . u l t i m o _ p a r a d e r o == s e l f . n u m e r o _ d e _ p a r a d e r o s ) : 15 s e l f . m i c r o s . r e m o v e ( m ) 16 for m in s e l f . m i c r o s : 17 m . r e c a l c u l a r _ v e l o c i d a d () 61

(119)

Simulaci´on Ejercicios

Simulaci´

on

Lo llamo a trav´

es de la micro particular.

3 c l a s s M i c r o : 4 # ( . . . ) 5 def r e c a l c u l a r _ v e l o c i d a d ( s e l f ) : 6 s e l f . v e l o c i d a d = r a n d o m . r a n d i n t ( 1 0 0 , 9 0 0 ) 7 8 c l a s s R e c o r r i d o : 9 # ( . . . ) 10 def s i m u l a r _ m i n u t o ( s e l f ) : 11 for m in s e l f . m i c r o s : 12 s e l f . a v a n z a r _ m i c r o ( m ) 13 for m in s e l f . m i c r o s : 14 if( m . u l t i m o _ p a r a d e r o == s e l f . n u m e r o _ d e _ p a r a d e r o s ) : 15 s e l f . m i c r o s . r e m o v e ( m ) 16 for m in s e l f . m i c r o s : 17 m . r e c a l c u l a r _ v e l o c i d a d ()

¿Es esto suficiente?

... S´ı.

(120)

Lo llamo a trav´

es de la micro particular.

3 c l a s s M i c r o : 4 # ( . . . ) 5 def r e c a l c u l a r _ v e l o c i d a d ( s e l f ) : 6 s e l f . v e l o c i d a d = r a n d o m . r a n d i n t ( 1 0 0 , 9 0 0 ) 7 8 c l a s s R e c o r r i d o : 9 # ( . . . ) 10 def s i m u l a r _ m i n u t o ( s e l f ) : 11 for m in s e l f . m i c r o s : 12 s e l f . a v a n z a r _ m i c r o ( m ) 13 for m in s e l f . m i c r o s : 14 if( m . u l t i m o _ p a r a d e r o == s e l f . n u m e r o _ d e _ p a r a d e r o s ) : 15 s e l f . m i c r o s . r e m o v e ( m ) 16 for m in s e l f . m i c r o s : 17 m . r e c a l c u l a r _ v e l o c i d a d ()

¿Es esto suficiente? ... S´ı.

(121)

Simulaci´on Ejercicios

Simulaci´

on

d) Implementa una funci´

on simular que reciba como

par´

ametros un n´

umero n de paraderos, la distancia d entre

paraderos y la cantidad mins de minutos que transcurren entre

la salida de una micro y la pr´

oxima. Esta funci´

on debe

imprimir el m´

aximo y el promedio de la cantidad de micros que

hubo en el recorrido. Cada iteraci´

on corresponde a un minuto,

y deber´

as simular por 12 horas. Inicialmente el recorrido

comienza con una micro en el primer paradero y se genera una

nueva micro en ese paradero cada mins minutos.

(122)

Simulaci´on Ejercicios

Simulaci´

on

¿D´

onde implemento la funci´

on simular?

1 i m p o r t r a n d o m 2 c l a s s M i c r o : 3 # ( . . . ) 4 c l a s s R e c o r r i d o : 5 # ( . . . ) 3 # ( . . . ) 4 c l a s s R e c o r r i d o : 5 # ( . . . ) 6 7 def s i m u l a r () : 63

(123)

Simulaci´on Ejercicios

Simulaci´

on

¿D´

onde implemento la funci´

on simular?

1 i m p o r t r a n d o m 2 c l a s s M i c r o : 3 # ( . . . ) 4 c l a s s R e c o r r i d o : 5 # ( . . . )

... en el c´

odigo principal:

1 i m p o r t r a n d o m 2 c l a s s M i c r o : 3 # ( . . . ) 4 c l a s s R e c o r r i d o : 5 # ( . . . ) 6 7 def s i m u l a r () : 63

(124)

Simulaci´on Ejercicios

Simulaci´

on

¿Qu´

e par´

ametros recibe?

1 i m p o r t r a n d o m 2 c l a s s M i c r o : 3 # ( . . . ) 4 c l a s s R e c o r r i d o : 5 # ( . . . ) 6 7 def s i m u l a r ( n , d , m i n s ) : 64

(125)

Simulaci´on Ejercicios

Simulaci´

on

¿Qu´

e par´

ametros recibe?

“... que reciba como par´

ametros un n´

umero n de paraderos, la

distancia d entre paraderos y la cantidad mins de minutos que

transcurren entre la salida de una micro y la pr´

oxima.”

1 i m p o r t r a n d o m 2 c l a s s M i c r o : 3 # ( . . . ) 4 c l a s s R e c o r r i d o : 5 # ( . . . ) 6 7 def s i m u l a r ( n , d , m i n s ) : 64

(126)

¿Qu´

e par´

ametros recibe?

“... que reciba como par´

ametros un n´

umero n de paraderos, la

distancia d entre paraderos y la cantidad mins de minutos que

transcurren entre la salida de una micro y la pr´

oxima.”

1 i m p o r t r a n d o m 2 c l a s s M i c r o : 3 # ( . . . ) 4 c l a s s R e c o r r i d o : 5 # ( . . . ) 6 7 def s i m u l a r ( n , d , m i n s ) : 64

(127)

Simulaci´on Ejercicios

Simulaci´

on

¿C´

odigo de la funci´

on?

“Esta funci´

on debe imprimir el m´

aximo y el promedio de la

cantidad de micros que hubo en el recorrido. Cada iteraci´

on

corresponde a un minuto, y deber´

as simular por 12 horas.

Inicialmente el recorrido comienza con una micro en el primer

paradero y se genera una nueva micro en ese paradero cada

mins minutos.”

(128)

¿C´

odigo de la funci´

on?

“Esta funci´

on debe imprimir el m´

aximo y el promedio de la

cantidad de micros que hubo en el recorrido. Cada iteraci´

on

corresponde a un minuto, y deber´

as simular por 12 horas.

Inicialmente el recorrido comienza con una micro en el primer

paradero y se genera una nueva micro en ese paradero cada

mins minutos.”

(129)

Simulaci´on Ejercicios

Simulaci´

on

odigo:

Crear un Recorrido y agregarle una Micro en el primer

paradero.

While que itere por 12 · 60 minutos.

Simular recorrido minuto a minuto.

Agregar una micro cada mins minutos.

Agregar variables que recuerden m´

aximo y promedio

micros en recorrido.

(130)

¿C´

omo creo un Recorrido con una micro en el paradero 1?

1 i m p o r t r a n d o m 2 c l a s s M i c r o : 3 def _ _ i n i t _ _ ( s e l f ) : 4 s e l f . u l t i m o _ p a r a d e r o = 1 5 s e l f . d i s t a n c i a _ d e l _ p a r a d e r o = 0 6 s e l f . v e l o c i d a d = r a n d o m . r a n d i n t ( 1 0 0 , 9 0 0 ) 7 # ( . . . ) 8 c l a s s R e c o r r i d o : 9 def _ _ i n i t _ _ ( self , np , dp ) : 10 s e l f . m i c r o s =[] 11 s e l f . n u m e r o _ d e _ p a r a d e r o s = np 12 s e l f . d i s t a n c i a _ e n t r e _ p a r a d e r o s = dp 13 def a g r e g a r _ m i c r o ( self , m ) : 14 s e l f . m i c r o s . a p p e n d ( m ) 15 # ( . . . ) 16 17 def s i m u l a r ( n , d , m i n s ) : 67

Referencias

Documento similar

Cuando las opresiones son tantas, cuando las injusticias se diversifican e intensifican, cuando los caminos para ser libres se obstruyen, cuando la casa es el lugar más peligroso

En este trabajo se propone un m´etodo para reconocer rostros de bajo costo computacional y robusto a cambios de iluminaci´on, postura y expresi´on facial. El m´etodo propuesto se

La conclusi´ on fue que para un n´ umero peque˜ no de par´ ametros (del orden de la decena), el m´ etodo simplex es hasta 4 veces m´ as r´ apido, obteniendo unos valores del m´

Se marca cada entrada de la tabla que se corresponde con una pareja (estado final, estado no final), porque todas esas parejas se corresponden con pares de estados distinguibles..

El m´etodo m´as sencillo para mantener la posici´on relativa de los segmentos durante los movimientos de apuntado y seguimiento del telescopio es utilizar alg´un tipo de sensor en

Godunov propuso un m´ etodo num´ erico aplicado a din´ amica de gases, donde la soluci´ on exacta de problema de valores iniciales del problema de Riemann presentaba una

A continuaci´ on se explican las primeras iteraciones, del algoritmo para un su- puesto problema de clasificaci´ on con 6 par´ ametros de entrada, 5 posibles clase de salida y que

Por ejemplo, si un instrumento, as´ı como el m´etodo de medida, se han dise˜ nado para que la incertidumbre sea lo suficientemente peque˜ na con respecto a los requerimientos de