Condensado Simulacion Version c Sharp

Embed Size (px)

Citation preview

U.A.T.Simulacin de sistemas Pag Num. 1 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. UNIVERSIDAD AUTNOMA DE TAMAULIPAS SIMULACIN DE SISTEMAS ING. RAMN V. ROQUE HERNNDEZ, M.C. [email protected]@hotmail.com http:ffwww.geocities.comframonroque Descripcin general de la materia: La materia introduce al alumno en los conceptos y tcnicas de Simulacin por computadora mediante ejemplos practicos aplicables al mundo real. Contenido: Unidad !.- Teora de modelos y simulacin Simulacin !ntroduccin y Conceptos Usos, limitaciones y Areas de aplicacin de la simulacin La simulacin en la historia Simulador por computadora Simulacin como proceso experimental Resolucin analitica y simulacin Simulacin de montecarlo Etapas de una simulacin Sistemas ConceptosClasificacin de sistemas Nodelos Utilidad de los modelos Pasos para realizar un modelo Caracteristicas y clasificacin de los modelos La computadora en la simulacin de modelos Unidad !!.- Tcnicas de Simulacin en Lenguajes de Programacin {C#) Nociones del lenguaje Uso de numeros aleatorios para experimentos de simulacin !mplementacin de la Simulacin de Nontecarlo Diversos Proyectos de simulacin aplicada Unidad !!!.- Tcnicas de Simulacin en Paquetes Computacionales Paquetes Administrativos de uso General (Excel) Fundamentos de Excel Tcnicas de Simulacin utilizadas en Excel Proyectos de simulacin en Excel Paquetes Especializados Unidad !v.- Generadores de Nmeros pseudo-aleatorios Ntodos primitivos Congruencial Nixto y Congruencial Nultiplicativo Unidad v.- Pruebas Estadsticas para los nmeros pseudo-aleatorios Pruebas de los promedios y frecuencias. Forma de Evaluar: Asistencia, Tareas, Participacin, Practicas, Proyectos, Examenes Parciales y Ordinario. Alguna Bibliografa Recomendada:Simulacin: Un enfoque practico, Coss Bu, Ed. Limusa !SBN: 968-18-1506-8 Simulacin: Ntodos y Aplicaciones, David Rios !nsua, Ed. AlfaOmega !SBN: 970-15-0509-3 Simulacin,Sheldon N.Ross,Pearson Educacin!SBN : 970-17-0259-X U.A.T.Simulacin de sistemas Pag Num. 2 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. Caso de estudio POLAROID: Simulacin de sistemas para alcanzar el xito CuandoPolaroidCorporation,fabricantedelaconocidacamarainstantanea,disenaunnuevo proceso de manufactura, los ingenieros prueban el nuevo diseno por simulacin.Al simular cmo operaralalineadeensamble,losingenierosdePolaroidpuedenobtenerrespuestasapreguntas importantesantesdequelacompaniainviertatiempo,esfuerzoyrecursosfinancierosinstalando computadoras, cintas transportadoras, robots y otros equipos que forman la linea de ensamble. LacamaraPolaroidfuedesarrolladaenladcadadeloscuarentasporEdwinLand.Desde entonces,lainvestigacinyeldesarrollocondujeronalacreacindemodelosinnovadoresque cada vez tenian mas caracteristicas.Pero los productos revolucionarios, junto con los avances en tecnologia de produccin, requieren de nuevos procedimientos de fabricacin y ensamble. Lasimulacinesequivalenteaprobarlalineadeproduccinantesquestaexista.Sepuede verificar la velocidad de los procesos y vigilar el intercambio entre componentes clave.Durante la simulacin pueden aparecer desarrollos y resultados inesperados o no deseables que requieren de correcciones.Porejemplo,sibajociertascondicionesexisteelriesgodequelostransportes controlados por computadora choquen entre si, la simulacin descubrira la posibilidad de que esto ocurra.Asimismo,tambinseharaevidenteatravsdelasimulacinelriesgodequelos productos terminados sufran retrasos en la seccin de empaque. En Polaroid la informacin es un recurso muy poderoso.La industria con la que compite Polaroid seabocaaproporcionarelproductofotograficoadecuadoalmenorcosto.Aunquelosproductos dePolaroidestanprotegidosporpatentes,lacompaniadebevendersuscamarasconprecios competitivosalmismotiempoqueaseguraunbuenmargendegananciasparalafirma.Por ejemplo,sepuedenajustarlosnivelesexcesivosdeinventarioolaacumulacindepartespara obtener una mejor planificacin y control, pero esto solo es posible si se cuenta con la informacin correcta.Enunaindustriatancompetitivacomosta,cualquieroportunidadparamejorarla eficiencia en la manufactura aumentara el xito de Polaroid en el mercado. Hacetiempo,lasimulacinsignificabapilasdepapelqueconteniannumerosymasnumeros generados por una computadora, que indicaban promedios y desviaciones de los promedios entre otras cosas.En Polaroid todo esto ha cambiado.Los ingenieros utilizan computadoras de escritorio que muestran en forma visual los procesos y actividades de fabricacin.Los niveles de inventario mostradossobrelapantallacambianamedidaquesevanterminandolosproductos.Las actividades de ensamble son representadas por medio de tcnicas de animacin, no por los listados que caracterizaron en el pasado a la simulacin.Y ahora los gerentes pueden obtener con rapidez una idea con respecto a la forma en que operara la linea de produccin, sin necesidad de asesoria sobrecomointerpretarlosdatosestadisticosquedescribenelcomportamientodeunmodelo matematico en proceso. En el futuro la simulacin se trasladara a la planta de fabricacin.Herramientas faciles de emplear permitiran a los tcnicos de la planta hacer la simulacin correcta de lo que ocurre a su alrededor. El tipo de simulacin que ahora se emplea en Polaroid Corporation tendra cada vez mayor auge en la medida en que las computadoras y mtodos de analisis aumenten su capacidad y sofisticacin.El color y la animacin junto con software poderoso, permitiran describir de manera mas completa lainformacinsobrelossistemasantesqueestosseandesarrollados,hechoquetraebeneficios para todos. U.A.T.Simulacin de sistemas Pag Num. 3 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. UNIDAD I: Teora de Modelos y Simulacin Simulacin Cuando alguien tiene la responsabilidad de conducir un sistema dado, como por ejemplo: un banco, unaciudad,unsistemadetransporte,etc.,debetomarcontinuamentedecisionesacercadelas accionesqueejecutarasobreelsistema.Estasdecisionesdebensertalesquelaconducta resultante del sistema satisfaga de la mejor manera posible los objetivos planteados. Parapoderdecidircorrectamenteesnecesariosabercmoresponderaelsistemaanteuna determinada accin. Esto podria hacerse por experimentacin con el sistema mismo; pero factores de costos, seguridad y otros hacen que esta opcingeneralmente nosea viable. A fin de superar estos inconvenientes, se reemplaza el sistema real por otro sistema que en la mayoria de los casos esunaversinsimplificada.Esteultimosistemaeselmodeloautilizarparallevaracabolas experiencias necesarias sin los inconvenientes planteados anteriormente. Al proceso de experimentar con un modelo se denomina simulacin. Al proceso de disenar el plan deexperimentacinparaadoptarlamejordecisinsedenominaoptimizacin.Sielplande experimentacin se lleva a cabo con el solo objeto de aprender a conducir el sistema, entonces se denomina entrenamiento o capacitacin. Figura: Naneras de estudiar un sistema En este punto, es conveniente plantear las siguientes definiciones: Sistema: Conjunto de objetos o ideas que estan interrelacionados entre si como una unidad para la consecucin de un fin (Shannon, 1988). Tambin se puede definir como la porcin del Universo que sera objeto de la simulacin. Modelo: Un objeto X es un modelo del sistema Y para el observador Z, si Z puede emplear X para responder cuestiones que le interesan acerca de Y (Ninsky). Figura: Nodelo, Sistema, Observador U.A.T.Simulacin de sistemas Pag Num. + Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. Simulacin: Simulacin es el proceso de disenar un modelo de un sistema real y llevar a cabo experimentos con l, con la finalidad de aprender el comportamiento del sistema o de evaluar diversas estrategias para el funcionamiento del sistema (Shannon, 1988). Uso de la simulacin La simulacin es conveniente cuando: Noexisteunaformulacinmatematicaanaliticamenteresoluble.Nuchossistemasrealesno puedensermodeladosmatematicamenteconlasherramientasactualmentedisponibles,por ejemplo la conducta de un cliente de un banco. Existe una formulacin matematica, pero es dificil obtener una solucin analitica. Los modelos matematicos utilizados para modelar un reactor nuclear o una planta quimica son imposibles de resolver en forma analitica sin realizar serias simplificaciones. No existe el sistema real. Es problema del ingeniero que tiene que disenar un sistema nuevo. El diseno del sistema mejorara notablemente si se cuenta con un modelo adecuado para realizar experimentos. Los experimentos son imposibles debido a impedimentos econmicos, de seguridad, de calidad oticos.Enestecasoelsistemarealestadisponiblepararealizarexperimentos,perola dificultaddelosmismoshacequesedescarteestaopcin.Unejemplodeestoesla imposibilidad de provocar fallas en un avin real para evaluar la conducta del piloto, tampoco se puede variar el valor de un impuesto a para evaluar la reaccin del mercado. El sistema evoluciona muy lentamente o muy rapidamente. Un ejemplo de dinamica lenta es el problema de los cientificos que estudian la evolucin del clima. Ellos deben predecir la conducta futuradelclimadadaslascondicionesactuales,nopuedenesperaraqueuntornadoarrase unaciudadparaluegodarelmensajedealerta.Porelcontrario,existenfenmenosmuy rapidosquedebensersimuladosparapoderobservarlosendetalles,porejemplouna explosin. Limitaciones en la aplicacin de la simulacin Entre las posibles desventajas de la simulacin se pueden citar: El desarrollo de un modelo puede ser costoso, laborioso y lento. Existe la posibilidad de cometer errores. No se debe olvidar que la experimentacin se lleva a cabo con un modelo y no con el sistema real; entonces, si el modelo esta mal o se cometen errores en su manejo, los resultados tambin seran incorrectos. Nosepuedeconocerelgradodeimprecisindelosresultados.Porlogeneralel modeloseutilizaparaexperimentarsituacionesnuncaplanteadasenelsistemareal, porlotantonoexisteinformacinpreviaparaestimarelgradodecorrespondencia entre la respuesta del modelo y la del sistema real. U.A.T.Simulacin de sistemas Pag Num. 5 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. reas en que se aplica la simulacin Actualmente la simulacin presta un invaluable servicio en casi todas las areas posibles, algunas de ellas son: Procesosdemanufacturas:Ayudaadetectarcuellosdebotellas,adistribuir personal, determinar la politica de produccin. Plantasindustriales:Brindainformacinparaestablecerlascondicionesptimasde operacin, y para la elaboracin de procedimientos de operacin y de emergencias. Sistemas pblicos: Predice la demanda de energia durante las diferentes pocas del ano,anticipaelcomportamientodelclima,predicelaformadepropagacinde enfermedades. Sistemasdetransportes:Detectazonasdeposiblecongestionamiento,zonascon mayor riesgo de accidentes, predice la demanda para cada hora del dia. Construccin: Predice el efecto de los vientos y temblores sobre la estabilidad de los edificios,proveeinformacinsobrelascondicionesdeiluminacinycondiciones ambientalesenelinteriordelosmismos,detectalaspartesdelasestructurasque deben ser reforzadas. Diseo:Permitelaseleccinadecuadadematerialesyformas.Posibilitaestudiarla sensibilidad del diseno con respecto a parametros no controlables. Educacin: Esuna excelente herramienta para ayudar a comprender unsistema real debidoaquepuedeexpandir,comprimirodetenereltiempo,yademasescapazde brindar informacin sobre variables que no pueden ser medidas en el sistema real. Capacitacin:Dadoqueelriesgoyloscostossoncasinulos,unapersonapuede utilizar el simulador para aprender por si misma utilizando el mtodo mas natural para aprender: el de prueba y error. Optimizacin: Se emplea para determinar situaciones del proceso en las que se lograuna mejoria de rendimiento. Ademsen:Siniestros,catastrofes,diagnosis,fisica,quimica,matematicas,biologia, medicina. La Simulacin en la Historia La importancia de la Simulacin es evidente al considerar el impacto que tuvieron algunos eventos como: La Perestroyka: Estudios de simulacin efectuados en Rusia en las dcadas del 70 y 80convencieronalosdirigentesdelanecesidaddeplantearunfuertecambioenla economia de ese pais. LacadadelabolsadeNewYorken19SS:Lautilizacindeprogramasde simulacinporpartedeloscorredoresdelabolsacausunafalsainestabilidadque provoc la caida. El regreso del Apolo 13: La simulacin jug un rol fundamental en la determinacin del plan de emergencia. La nave retorn con xito a pesar de las graves averias. LosVoyagers:Graciasalasimulacinsepudieronestablecerlositinerariosptimos paraestasnavesconunminimoconsumodeenergiaaprovechandolaatraccin gravitacional de los planetas. ProyectoMonteCarlo:vonNewmanyUlam(19+5)emplearonsimulacinpara estudiar reacciones nucleares. Los modelos del planeta: Algunos plantean la posibilidad de un calentamiento global debidoalefectoinvernadero.Otrosplanteanlaposibilidaddeunenfriamientoy predicen una nueva era glaciar. U.A.T.Simulacin de sistemas Pag Num. 6 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. Capacitacin de tropas: En el operativo Tormenta del desierto" llevado a cabo en la guerracontra!rak,lastropasdetodaslasfuerzasestadounidensesqueparticiparon (fuerza area, marina y ejrcito) fueron entrenadas con simuladores. Capacitacinde policas: Se utiliza entornos virtuales para que el policia aprenda a conducirse en situaciones de riesgo. Simuladoresdevuelos:Fueunadelasprimerasaplicacionesdelossimuladores. Actualmente se utilizan para entrenar pilotos de aviones comerciales y de combate. El simulador por computadora Un simulador por computadora esta compuesto por las siguientes partes: Unmodelo:Esunmodelosimblico.Puedeserunconjuntodeecuaciones,reglas lgicas o un modelo estadistico. Elevaluador:Eselconjuntodeprocedimientosqueprocesaranelmodelopara obtenerlosresultadosdelasimulacin.Puedecontenerrutinasparalaresolucinde sistemas de ecuaciones, generadores de numeros aleatorios, rutinas estadisticas, etc. La interfaz: Es la parte dedicada a interactuar con el usuario, recibe las acciones del mismo y presenta los resultados de la simulacin en una forma adecuada. Esta unidad puedesertancomplejacomolacabinautilizadaenlossimuladoresdevuelos profesionales. La simulacin como proceso experimental Lasimulacindesistemasporcomputadoraestabasadaenunageneralizacindelconceptode experimentacin del mtodo cientifico, segun el cual en lugar de realizar los experimentos sobre elsistema real, se realizan sobre un modelo dinamico que lo representa, de manera que si el modelo esunarepresentacinvalidadelsistemaentonceslosresultadosdelaexperimentacinconel modelo pueden transferirse al propio sistema. Elmodelosedebeentendercomouninstrumentodeinvestigacinsometidoarevisincontinua para conseguir un refinamiento progresivo en la comprensin del sistema. Figura: Esquema del proceso experimental de la simulacin Lasimulacinylosexperimentosdesimulacinsonunaherramientadeanalisisdesistemasque responden a preguntas del tipo "que pasara si.?" . La simulacin por computadora es por lo tanto una tcnica en la que el investigador construye un modelo del sistema y realiza experimentos en una computadora sobre el modelo, interpretando los resultados en trminos del comportamiento del sistema objeto del estudio. U.A.T.Simulacin de sistemas Pag Num. 7 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. Resolucin analtica vs. Simulacin Algunos modelos simblicos pueden resolverse analiticamente. La ventaja de una solucin analitica esquedaunavisinintegralsobrelaconductadelsistema.variandosusparametrosesposible identificarfacilmentecambiosimportantesenelcomportamiento,detectarpuntoscriticosysacar conclusionesgeneralesparaeltipodesistemaanalizado.Porejemplo,ElareaEXACTAdeun circulo de radio r" puede ser facilmente calculada por la siguiente ecuacin: 2r Area = Sinembargo,nosiempreesposibleobtenerunasolucinanalitica,yaseaporlanaturalezadel modelo o de los experimentos que se desean realizar. En este caso, el modelo debera ser tratado poralguntipodemtodonumrico.Debidoaesto,elanalisisdelosresultadosesmascomplejo que el requerido por una solucin analitica. A continuacin se da un ejemplo de cmo obtener un valor APROX!NADO al area real de un circulo de radio r" utilizando la simulacin de NonteCarlo. Simulacin de Monte Carlo LasimulacindeNonteCarloesunmtodoqueempleanumerosaleatoriosuniformemente distribuidos en el intervalo [0,1| que es utilizado para resolver problemas donde la evolucin con el tiempo no es de importancia. A continuacin, se analizara un ejemplo para comparar una solucin analitica con una solucin obtenida por simulacin. Determinacin del rea de un crculo Cuando se desea calcular el area de un circulo de radio r = 10 cm no existen mayores problemas, yaquetantoelareaacomosuperimetroppuedenevaluarseanaliticamenteconlassiguientes frmulas: r pr a22== En este caso la solucin es a = 31+.16 cm2 y p = 62.83 cm. Sin embargo, cuando se desea determinar el area de una forma irregular, por ejemplo la superficie plana de Nxico, el problema debe necesariamente ser resuelto con un mtodo numrico; es decir, simulacin.LadeterminacindelareadelcirculoutilizandolasimulacindeNonteCarloimplicalasiguiente secuencia: 1. Crear un cuadrado de lado 2.r que encierre al circulo. 2. Colocar n puntos al azar dentro del cuadrado. 3. Asignar a c el numero de puntos que quedaron dentro del circulo. +. Como la probabilidad de colocar un punto dentro del circulo es igual al cociente del area del circulo dividida el area del cuadrado, el area del circulo se puede estimar en funcin del area del cuadrado (facilmente calculable) con: ) 4 (2rncAncAcuadrado circulo= = Figura: Determinacin del Area de un circulo y Determinacin del area de una figura compleja. U.A.T.Simulacin de sistemas Pag Num. 8 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. Es importante notar que para un determinado n, el resultado sera distinto cada vez que se realice lasimulacin.Esdecir,queelresultadoseraunnumeroaleatorio.Amedidaquenaumente,la varianza del resultado disminuira y el valor medio se aproximara a la solucin analitica. Para un n = 100,elresultadodeunasimulacines320cm 2;mientrasqueparan=10000,unresultadoes 313 cm2 . ElmismoprincipiosepuedeaplicarparafigurascomplejascomosemuestraenlaFigura2. Conociendolaescala,sepuedefijaruncuadradoarbitrarioycalcularelareadeNxico.Sin embargo,ladeterminacindelperimetrodelafiguraesunproblemademayormagnitudparael cual se necesita recurrir a la teoria de fractales. Etapas de una simulacin En el desarrollo de una simulacin se pueden distinguir las siguientes etapas: Formulacindelproblema:Enestepasodebequedarperfectamenteestablecidoel objeto de la simulacin. El cliente y el desarrollador deben acordar lo mas detalladamente posiblelossiguientesfactores:losresultadosqueseesperandelsimulador,elplande experimentacin, el tiempo disponible, las variables de inters, el tipo de perturbaciones a estudiar,eltratamientoestadisticodelosresultados,lacomplejidaddelainterfazdel simulador,etc.Sedebeestablecersielsimuladorseraoperadoporelusuarioosiel usuario slo recibira los resultados. Finalmente, se debe establecer si el usuario solicita un trabajo de simulacin o un trabajo de optimizacin. Definicin del sistema: El sistema a simular debe estar perfectamente definido. El cliente yeldesarrolladordebenacordardndeestaralafronteradelsistemaaestudiarylas interacciones con el medioambiente que seran consideradas. Formulacin delmodelo: Comienza con el desarrollo de un modelo simple que captura los aspectos relevantes del sistema real. Los aspectos relevantes del sistema real dependen de la formulacin del problema; para un ingeniero de seguridad los aspectos relevantes de un automvil son diferentes de los aspectos considerados por un ingeniero mecanico para elmismosistema.Estemodelosimpleseiraenriqueciendocomoresultadodevarias iteraciones. Coleccindedatos:Lanaturalezaycantidaddedatosnecesariosestandeterminadas por la formulacin del problema y del modelo. Los datos pueden ser provistos por registros histricos,experimentosdelaboratoriosomedicionesrealizadasenelsistemareal.Los mismosdeberanserprocesadosadecuadamenteparadarleselformatoexigidoporel modelo. Implementacindelmodeloenlacomputadora:Elmodeloesimplementado utilizando algun lenguaje de computacin. Existen lenguajes especificos de simulacin que facilitanestatarea;tambin,existenprogramasqueyacuentanconmodelos implementados para casos especiales. Verificacin: En esta etapa se comprueba que no se hayan cometidos errores durante la implementacin del modelo. Para ello, se utilizan las herramientas de debugging provistas por el entorno de programacin. Validacin:Enestaetapasecompruebalaexactituddelmodelodesarrollado.Estose llevaacabocomparandolasprediccionesdelmodelocon:medicionesrealizadasenel U.A.T.Simulacin de sistemas Pag Num. 9 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. sistema real, datos histricos o datos de sistemas similares. Como resultado de esta etapa puede surgir la necesidad de modificar el modelo o recolectar datos adicionales. Diseo de experimentos: En esta etapa se decide las caracteristicas de los experimentos a realizar: el tiempo de arranque, el tiempo de simulacin y el numero de simulaciones. No se debe incluir aqui la elaboracin del conjunto de alternativas a probar para seleccionar la mejor,laelaboracindeestalistaysumanejoestareadelaoptimizacinynodela simulacin. Debe quedar claro cuando se formula el problema si lo que el cliente desea es un estudio de simulacin o de optimizacin. Experimentacin: En esta etapa se realizan las simulaciones de acuerdo el diseno previo. Los resultados obtenidos son debidamente recolectados y procesados. Interpretacin: Se analiza la sensibilidad del modelo con respecto a los parametros que tienenasociadoslamayorincertidumbre.Siesnecesario,sedeberanrecolectardatos adicionales para refinar la estimacin de los parametros criticos. Implementacin:Convieneacompanaralclienteenlaetapadeimplementacinpara evitar el mal manejo del simulador o el mal empleo de los resultados del mismo. Documentacin: !ncluye la elaboracin de la documentacin tcnica y manuales de uso. Ladocumentacintcnicadebecontarconunadescripcindetalladadelmodeloydelos datos; tambin, se debe incluir la evolucin histrica de las distintas etapas del desarrollo. Esta documentacin sera de utilidad para el posterior perfeccionamiento del simulador. U.A.T.Simulacin de sistemas Pag Num. 10 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. Sistemas Un sistema es una seccin de la realidad que es el foco primario de un estudio y esta compuesto decomponentesqueinteractuanconotrosdeacuerdoaciertasreglasdentrodeunafrontera identificadaparaelpropsitodelestudio.Unsistemapuederealizarunafuncinquenoes realizableporsuscomponentesindividuales.Lafronteradelsistemasonsuslimites,loquelo separa del medio ambiente. El medio ambiente es todo lo que esta fuera del sistema. Los objetos o componentes que forman parte del sistema se denominan entidades {Elementos), por ejemplo: un auto esta compuesto por un motor, ruedas, carroceria, etc. Estas entidades poseen propiedadesdenominadasatributos{Propiedades,parmetros),quesefijaronduranteel diseno del sistema ya sea por el disenador o por la naturaleza del sistema, y se relacionan entre si a travs de relaciones o funciones. Estas relaciones pueden ser: Estticas o estructurales: un auto posee cuatro ruedas. Dinmicas o funcionales: un auto consume combustible si se enciende el motor. Losvaloresasumidosporlosatributosdelasentidadesenunmomentodadodeterminanel estado del sistema. El estado puede ser: Esttico {estacionario).- Si se mantiene constante en el tiempo Dinmico {transitorio).- Si evoluciona con el tiempo. Un sistema puede presentar los dos tipos de conductas en diferentes instantes de tiempo. Las variables involucradas en un sistema se clasifican en: Variables de entrada: Pueden ser: Manipulables (U).-Las que se fijan a voluntad. Por ejemplo, la posicin del pedal de unacelerador Nomanipulables(D).-Cuandodependendelmedioambientedelsistema.Por ejemplo, la velocidad del viento.Variablesdesalida{Y):Sonlasvariablesquesonmedidasotraspasanlafronteradel sistema. Variables internas: Son las variables del sistema que no son ni de entrada, ni de salida, ni parametros, pero se utilizan en procesos internos. Figura : variables de un sistema. Clasificacin de sistemas En funcin de su aleatoriedad, se clasifican en Deterministicos y Estocasticos: Determinstico:Sielsistemanocontieneningunelementoaleatorioesunsistema deterministico.Enestetipodesistema,lasvariablesdesalidaeinternasquedan perfectamentedeterminadasalespecificarlasvariablesdeentrada,losparametrosylas variablesdeestado.Esdecir,lasrelacionesfuncionalesentrelasvariablesdelsistema estan S!ENPRE perfectamente definidas. U.A.T.Simulacin de sistemas Pag Num. 11 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. Estocstico:Enestecasoalgunelementodelsistematieneunaconductaaleatoria. Entonces, para entradas conocidas no es posible asegurar los valores de salida. Un ejemplo de sistema estocastico es una maquina de un casino en la cual una misma accin (tirar la palanca) genera un resultado incierto (ganar o perder). Cuando un sistema deterministico esalimentadoconentradasestocasticas,larespuestadelsistema estambinestocastica. Por ejemplo, la temperatura ambiente es una variable estocastica que afecta la respuesta deuncalentadorelctrico.Enelmundoreal,lossistemassiempretienenelementos estocasticosyaseaporsupropianaturalezaoporquesonfenmenosnocomprendidos actualmente;porejemplo,auncavernicolalepodiaparecerquelaseclipseseran fenmenosaleatorios,hoysepuedenpredecir.Sinembargo,sepuedeconsideraraun sistemarealcomounsistemadeterministicosisuincertidumbreesmenorqueunvalor aceptado. En funcin del tiempo se clasifican en continuos y discretos: Continuo:Setieneunsistemacontinuocuandolasrelacionesfuncionalesentrelas variablesdelsistemaslopermitenqueelestadoevolucioneeneltiempoenforma continua (basta queunavariable evolucionecontinuamente). Natematicamente, el estado cambia en infinitos puntos de tiempo. Discreto:Se tiene un sistema discreto cuando las relacionesfuncionales del sistema slo permitenqueelestadovarieenunconjuntofinito(contable)depuntostemporales.Las causas instantaneas de los cambios de estados se denominan eventos.. En funcin de su interaccin con el medio ambiente se clasifican en abiertos y cerrados: Abierto: El sistema interactua con el medio ambiente y se ve afectado por l. Cerrado:Laconductadelsistemanoesfuncindelmedioenqueest.Estesistema puede ser trasladado a otro medio ambiente sin que se vea afectado. Enfuncindesuestabilidad,lossistemasseclasificanenestables,inestablesodeestabilidad critica: Estable:Sialsistemaseleaplicaunaperturbacinmomentanea(seintroduceuna "molestia"yluegoseelimina)yelsistemaluegodeciertotiempovuelveasuestado original, sera estable. Inestable:Sialsistemaseleaplicaunaperturbacinmomentanea,yelsistemasufre cambios que lo alejan cada vez mas de su estado original, se dice que es inestable. De estabilidad crtica: Si al sistema se le aplica una pequena perturbacin momentanea yelsistemasufrecambiosquehacenquenivuelvaasuestadooriginal,niquesealeje cada vez mas de l, se dice que tiene estabilidad critica o limite. Ejemplos: Estable !nestableEstabilidad Critica Un ejemplo de sistema en estado estable, es un pndulo en su posicin de reposo; en cambio, el pndulo invertido es un ejemplo de estado naturalmente inestable.U.A.T.Simulacin de sistemas Pag Num. 12 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. Modelado de sistemas Nodeladoeselprocesodeconstruccindeunmodelo.Unmodeloesunarepresentacindeun objeto,sistema,oidea,esunaabstraccindelarealidadquecapturalaesenciafuncionaldel sistema,coneldetallesuficientecomoparaquepuedautilizarseenlainvestigacinyla experimentacin en lugar del sistema real. Un modelo es un conjunto formado por otros dos conjuntos: Un conjunto de variables Un conjunto de relaciones entre las variables Usualmente, el propsito de un modelo es ayudar explicar, entender, describir, predecir o mejorar un sistema. Los modelos son utiles para: El pensamiento: Al construir un modelo necesariamente se debe ordenar y completar el conocimiento que del sistema real se posee. La comunicacin: Un modelo elimina la ambigedad del lenguaje para comunicarse con expertos. Elentrenamientoylainstruccin:Unmodelopuedeserutilizadoparaentrenarcon costoyriesgocasinulos.Porejemplo,lossubmarinosaescalautilizadosporlamarina alemanaparaentrenarensecretoantesdelasegundaguerramundial;otambin,el sistema de barcos a escalas utilizados actualmente en Francia para entrenar a los capitanes de barcos petroleros. La prediccin: Un modelo sirve para predecir la conducta del sistema real. Es el caso de losmodelosutilizadosparapredecir,mediantesimulacin,laevolucindelclimamundial. El modelo de la teoria de la relatividad predice, sin hacer una simulacin, que no es posible superar la velocidad de la luz. La experimentacin: La experimentacin con un modelo es barata y segura. Se emplea frecuentemente en el diseno de un sistema. Elmodeladoesunarte.Cualquierconjuntodereglasparadesarrollarmodelostieneunautilidad limitadayslopuedeservircomounaguiasugerida.Elartedemodelarconsisteenlahabilidad paraanalizarunproblema,resumirsuscaracteristicasesenciales,seleccionarymodificarlas suposicionesbasicasquecaracterizanalsistema,yluegoenriqueceryelaborarelmodelohasta obtener una aproximacin util. Pasos sugeridos para realizar un modelo 1.Establecer una definicin clara de los objetivos. 2.Analizar el sistema real. 3.Dividir el problema del sistema en problemas simples. +.Buscar analogias. 5.Determinar las variables de inters. 6.Escribir los datos obvios. 7.Escribirlasecuacionestericasoempiricasquedescribenlosfenmenospresentesy relacionan las variables de inters. 8.Si se tiene un modelo manejable, enriquecerlo. De otra manera, simplificarlo. Simplificar un modelo implica: Convertir variables en constantes. Eliminar o combinar variables. Agregar suposiciones mas potentes y restricciones. Restringir los limites del sistema. U.A.T.Simulacin de sistemas Pag Num. 13 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. Paraenriquecerloseprocededelaformacontraria.Duranteelprocesodemodeladosedebe alcanzar un equilibrio entre el grado de detalle y el riesgo de falta de exactitud. El mejor modelo, es el modelo mas simple que puede resolver el problema con el grado de exactitud requerido. Caractersticas de un buen modelo Facil de entender por parte del usuario. Dirigido a metas u objetivos. Sensato, en cuanto no de respuestas absurdas. Facil de manipular y controlar por parte del usuario. Es decir, debe ser sencillo comunicarse con el modelo. Completo, en lo referente a asuntos importantes. Adaptable, con un sencillo procedimiento para modificar o actualizar el modelo. Evolutivo, debe ser sencillo al principio y volverse mas complejo en el tiempo. Clasificacin de modelos Como ya fue planteado, un modelo es tambin un sistema; por lo tanto valen todas las definiciones y clasificaciones que se establecieron anteriormente. Debido a que un modelo es una simplificacin o abstraccin de un sistema real, no es necesario, salvo en los aspectos relevantes, que el modelo guarde una total correspondencia con el sistema real. Es posible realizar distintos tipos de clasificaciones de modelos. Por ejemplo segun la naturaleza del sistema o del uso que se vaya a dar al modelo. Un ejemplo de clasificacin de modelos es: Fsico.Enalgunoscasossepuedeconstruirunsistemafisicocuyocomportamiento represente el del sistema en estudio, por ejemplo un modelo a escala de un barco. Mental. Para mantener un vaso en equilibrio, el cerebro no precisa conocer la formulacin matematica de la ley de la gravitacin universal, sino que a partir de una cierta formulacin intuitiva se sirve de ella para efectuar el control del sistema. Grfico.Delmismomodopuedenserutilesgraficosquerepresentenelcomportamiento del sistema ante distintas situaciones. Matemtico.Enmuchassituaciones,elcomportamientodelossistemaspermitehacer uso de las leyes fisicas, quimicas, etc. que los gobiernan, con las que se puede elaborar el modelo del sistema preciso. Computarizado.UtilizandounlenguajeopaquetecomputacionalyaseadePropsito General o especifico de Simulacin. Existeunagrancantidaddetcnicasdemodelado,y,porelloesposibleconstruirunagran cantidaddemodelosparaunsistemadado.Enlasiguientefigurasemuestraundiagramacon algunas de las posibilidades de modelado mas comunes: U.A.T.Simulacin de sistemas Pag Num. 1+ Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. Los modelos tambin se pueden clasificar en: Experimentales{Decajanegra).-Sielmodeloqueseconstruyesloseorientaa reproducirlassalidasdelsistemarealsinintentarmodelarsucomportamientointerno; entonces, sera un modelo experimental o de caja negra. Modelosdebaseterica.-Sielmodelotambinintentareproducirlasrelaciones funcionales del sistema sera un modelo con base terica. Unmodelodecajanegrarequiereunagrancantidaddedatosparapodercalibrarlooajustarlo correctamente, y su rango de validez esta limitado a este conjunto de datos. En contraposicin, un modelo terico requiere una cantidad menor de datos y puede ser utilizado fuera del rango de los mismos ya que el rango de validez del modelo esta dado por la teoria utilizada y no por los datos. Unejemplosimplesepresentacuandosedeseadeterminarelespaciorecorridoporuncuerpo mvilavelocidadconstanteenfuncindeltiempo.Paraunavelocidaddada,sepuedeconstruir unagraficadeespaciovs.tiempoapartirdemedidasexperimentales.Estagraficaslopodra emplearseparaelcasoenquelavelocidaddelmvilseaidnticaaaquellaqueseutilizenlos experimentos. Ademas, slo proveera informacin para los tiempos que pertenezcan al intervalo de experimentacin. Estos problemas no se presentan si se utiliza un modelo terico simple: e = v.t; ni siquiera son necesarios los datos experimentales. La computadora en la simulacin de modelos de sistemas La masiva utilizacin de la informatica en la ensenanza y en el entorno industrial , la sorprendente y revolucionariaevolucindelosordenadorespersonalesencuantoatamano,coste,velocidad, software, etc. han ayudado sin lugar a dudas a que la simulacin por computadora sea hoy en dia la herramienta mas utilizada para realizar experimentos de simulacin de sistemas. Unprogramadesimulacindecomputadorasepuededefinircomounasecuenciade instrucciones que el usuario define para resolverunproblema que puede estar plasmado en unas ecuaciones que describen a un sistema previamente modelizado mediante dichas ecuaciones. La construccin de un modelo de simulacin ha pasado, de ser una labor reservada a especialistas en programacin, de dificil y costosa realizacin, basada en procesos batch y en una interpretacin de tediosos listados, a ser un ejercicio estructurado alrededor de la utilizacin de entornos cada vez mas amables y flexibles que permiten aprovechar la caracteristica mas destacable de la simulacin: la posibilidad de estudiar la evolucin dinamica de los sistemas a lo largo del tiempo. Hoyendiaexisteunamplioabanicodeposibilidadespararesolverestosproblemasconlos distintoslenguajesquepodemosutilizarparatraducirnuestrosmodelosenunacomputadoray posteriormenteresolverlosparaobtenerlasimulacindelcomportamientodelsistemamodelado. Podemosutilizarlenguajesdeprogramacingeneral,lenguajesespecificosparasimulacino paquetes de software de simulacin especialmente preparados para la misma. A la hora de elegir una herramienta u otra hay que tener en cuenta primeramente la velocidad de ejecucin de los programas y la utilizacin de recursos necesaria (memoria, procesadores, etc.). Lenguajes de programacin Haydistintosnivelesdelenguajes,enelmasbajonivelseencuentraellenguajemaquinacuyas instruccionesseescribenennotacinbinaria.Estelenguajeessindudaelmastediosoymenos practicodeutilizar.Enunnivelsuperiorseencuentranellenguajeensambladorqueutiliza instrucciones mnemnicas para representar dichas funciones. U.A.T.Simulacin de sistemas Pag Num. 15 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. LoslenguajesdealtonivelolenguajesdepropsitogeneraltalescomoC,Fortran,Basic,Cobol, Lisp,Algol,Pascal,etc.normalmentealejanalprogramadordelastareasdebajoniveldel computadorysuelenirapoyadosenunconjuntodelibreriasqueenelcasodelasimulacin facilitan mucho la tarea de modelizar los sistemas y reducen el tiempo de ejecucin del programa. Lenguajes de simulacin Los lenguajes de simulacin son similares a los lenguajes de programacin de alto nivel pero estan especialmentepreparadosparadeterminadasaplicacionesdelasimulacin.Suelenvenir acompanadosdeunametodologiadeprogramacinapoyadaporunsistemadesimbolospropios paraladescripcindelmodeloporejemplomediantediagramasuotrasherramientasque simplifican notablemente la modelizacin y facilitan la posterior depuracin del modelo. Entre estos lenguajesespecificospodemosnombrarlossiguientes:N!DAS,DYSAC,DSL,GASP,N!N!C, DYNANO,GPSS,S!NULA,CSSL,CSNP,ACSL,DARE-P,C-Simscript,SLAN,S!NAN,S!NNON, S!NSCR!PT-!!-5,ADA,GASP!v,SDL.Nuchosdeestoslenguajesdependendeloslenguajesde propsito general como es el caso de Slam o Siman que dependen de Fortran para las subrutinas. Ventajas de usar un lenguaje de simulacin: Nenor esfuerzo requerido para programar el modelo. Los bloques basicos de construccin del lenguaje son mucho mas simples de manipular. Facilitan la deteccin de errores, generacin de escenarios, manipulacin del modelo, etc. El usuario slo precisa conocer detalles de programacin relativos al producto. Desventajas de usar Lenguajes de Simulacin: Un lenguaje de Simulacin no permite desarrollar proyectos mas complejos, es decir, esta limitado a realizar algunas aplicaciones solamente. Ventajas de usar un lenguaje de propsito general: Unlenguaje de propsitogeneral apoyadocon librerias, permite afrontar problemas de la maxima complejidad y tamano pudiendo ser el programa altamente portable. Desventajas de usar Lenguajes de propsito general: Se requiere conocer de programacin, asi como saber !nterpretar los mensajes de error del entorno de desarrollo. En los anos sesenta se realizaban estudios de simulacin cuyos costos se median en anos-hombre y su duracin en meses. En los setenta aparecieron diversos lenguajes especificamente orientados a la simulacin tales como S!NSCR!PT, etc. La dcada de los ochenta supuso la adaptacin sobre PC de productos ya existentes y la aparicin de nuevos productos como S!NAN. Losnoventahanprotagonizadohastaahoraunaexplosindenuevosproductosdemanejomas intuitivo bajo entornos graficos como Windows. Es el caso de Simfactory o Simvox, por ejemplo. La evolucin de los ordenadores y del software comercial se dirige hacia sistemas que puedan ser manejados por personas no-especialistas, con maquinas cada vez mas potentes a menor coste. Las tcnicasorientadasalobjetoconducenaprogramasdeutilizacinmasintuitiva.Todoellonos sugiere un incremento considerable de la aplicacin de las tcnicas de simulacin. Sinembargo,apesardetodo,seestimaqueenelmercadonorteamericano,queeselmas desarrollado,slosetieneencuentalaaplicacindetcnicasdesimulacinenun30delos casosenlosquepodriaaplicarse,ydeesteporcentaje,sloenel10deloscasosseutiliza regularmente.EnEuropalascifrassonmenores,situandoseentornoal3,aexcepcinde !nglaterra donde dicho porcentaje se eleva al 15. U.A.T.Simulacin de sistemas Pag Num. 16 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. UNIDAD II SIMULACION DE SISTEMAS POR COMPUTADORAEN LENGUAJES DE PROGRAMACION Tipos de sistemas a Simular.- Determinsticos.-Sedicequeunsistemaesdeterministicosisurespuestaanteuna accinexteriorestadeterminadasiempredemaneraunivoca.Unsistemadeterministico tiene un comportamiento predecible exactamente, ya que se conocen sus parametros y el comportamiento de sus elementos. Estocsticos.-Unsistemaestocasticoesaquelcuyosparametrosqueloconstituyen poseenunavariabilidadsignificativa,comportandosealeatoriamente.Enestecaso,dichos parametrosovariablesaleatoriassemodelanentrminosprobabilisticosyseasumen ciertas condiciones sobre las funciones de probabilidad quedescriben su comportamiento. Dependiendodelamaneracomoseabordeelprocesodeconstruccin,elmodelodeunsistema deterministico puede ser deterministico o estocastico. Modelos determinsticos.- Unmodelodeterministicoquedareducidoaunaecuacinounconjuntodeecuacionesque describen el comportamiento del sistema de manera precisa. Generalmentelosmodelosdeterministicoscontienenecuacionesdiferenciales,yseutilizanpara describir sistemas que cambian a travs del tiempo.Sin embargo, no es necesario que un modelo contenga ecuaciones diferenciales para considerarlo deterministico. Lasimulacindemodelosdeterministicospuederesultartrivialparamuchosestudiososdela simulacin, llegando incluso a denominarlos evaluadores" en lugar de simuladores", sin embargo, su utilidad es muy reconocida por las personas involucradas en el estudio de sistemas fisicos como trayectorias, movimientos, etc. Modelos estocsticos.- Lasimulacindemodelosestocasticosseapoyaenlageneracindenumerosaleatorios.Cada numero generado sirve para simular un evento y tomar una decisin. Un numero aleatorio entre 0 y 1 debe ser: Uniformementedistribuido(conlamismaprobabilidaddequetodoslosnumerossean elegidos)Estadisticamente independiente (que un numero no tenga relacin con otro) Reproducible (que se pueda volver a generar). Losnumerosaleatoriospuedensergeneradosporcomputadoramediantesencillosalgoritmos.!nclusolamayoriadeloslenguajesdeprogramacinposeenfuncionesintegradaspara proporcionarlos con una simple llamada. Cuandolosnumerosaleatoriossegeneranconunalgoritmo,muchosautoreslosdenominanpseudoaleatoriosporserproductodeunareglapuramentedeterministica.Sinembargo,esta objecin puede ser superada si los numeros satisfacen ciertas pruebas de aleatoriedad. U.A.T.Simulacin de sistemas Pag Num. 17 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. NOTAS IMPORTANTES ACERCA DE LOS PROYECTOS DE SIMULACION POR COMPUTADORA EN LENGUAJES DE PROGRAMACION SePuedensimularsistemasdeterministicosyestocasticosutilizandolenguajesde programacin. Lasimulacincomputarizadadeunsistemasellevaacaboprimeroentendiendoelsistema a simular,luegorealizandounmodeloyposteriormente,implementandoloenunlenguajede programacin. Una vez escrito el programa en un lenguaje de programacin, se llevan a caboexperimentos, mediante los cuales se conocen los resultados. Los Experimentos de simulacin" se refieren a las ejecuciones (corridas) que se realizan con el programa en la computadora. Elprocesodesimulacinestocasticaarrojaestimacionesyresultadosaproximadosala realidad. Losresultadosdelexperimentodesimulacinylosresultadosdelsistemarealtiendenaser muycercanosconformeelnumerodeexperimentosdesimulacinseamayor(Esdecir,a mayor N, menor Error). Para simular un sistema estocastico se utilizan numeros aleatorios. Un numero aleatorio generado por computadora debe ser: Uniformemente distribuido (con la misma probabilidad de que todos los numeros sean elegidos) . Estadisticamente independiente (que un numero no tenga relacin con otro). Reproducible (que se pueda volver a generar). Un numero aleatorio generado, corresponde al resultado de algun evento o suceso. En C#.NET Una variable tipo Random" permite generar numeros aleatorios.Para declararla (una sola vez en el programa) se hace lo siguiente: System.Random r= new Random(); Paragenerarunnumeroaleatorioentre0y0.99999(Aproximadamente1),sehacelo siguiente:double numero = r.NextDouble(); Sepuedegenerarunnumaleatorioenteroentredosrangosdiferentesde0y1utilizandola formulaNumAleatorio=int{{RangoSuperior - RangoInferior + 1) * numero + RangoInferior) C#.NET simplifica esta frmula con la siguiente instruccin (siempre y cuando se haya declarado la variable r" como se indic anteriormente):int NumAleatorio = r.Next(RangoInferior, RangoSuperior+1); Se debe seguir la metodologia de un proyecto de simulacin para todos los proyectos a realizar, y ser muy cuidadoso al momento de realizar el modelo y la lgica del programa. Tambin es muy importante saber interpretar los resultados de los experimentos de simulacin.Es posible que una serie de experimentos bien realizados arroje resultados correctos pero mal interpretados que conduzcan a tomar decisiones equivocadas. U.A.T.Simulacin de sistemas Pag Num. 18 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. PRACTICAS DE LA MATERIA DE SIMULACION Pueden hacerse individualmente o en equipos de dos personas. Deben revisarse el avanceen el laboratorio por el maestro y anotadas en la lista para tomarse en cuenta para la calificacin. Posterioralarealizacindecadapracticasedebeentregaralmaestrounreporte impreso (O en medios electrnicos) que contenga: oPortada. oDescripcin de la practica (Brevemente en que consisti). oTeoria (Conceptos, mtodos, importantes para la realizacin de la practica). o!magen del programa ejecutandose. oDiagrama de flujo. oListado del programa. Los reportes pueden entregarse cualquier dia despus de la realizacin de la practica, pero siempre antes de presentar el examen parcial al que pertenecen. Laspracticaspuedenrealizarseutilizandocualquierlenguajedeprogramacin (Preferentemente C#.NET). U.A.T.Simulacin de sistemas Pag Num. 19 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. Proyecto numero 1.- Modelo determinstico Completar la lnea en blanco: Sistema a modelar_______________________________________ Estado (respuesta)del sistema (Estatico f Dinamico) _________________________ variablesdel modelo variables de Entrada ___________________________ variables de salida _____________________________ variables internas ______________________________ Tipo de modelo(DeterministicofEstocastico)________________________________ (Caja negra f Base terica)_________________________________ (FisicofNentalfGraficofNatematicofComputarizado) _____________ Elementos del simulador Nodelo_______________________________________ Evaluador ____________________________________ !nterfaz ______________________________________ Herramienta usada para simulacin (Lenguaje de programacinf Paquete) _______________________ (Uso General f Especifico de simulacin) _____________________ Etapas de la simulacin ______________________________________ Realizar Diagrama de Flujo y Progrema Modelo d = v * t Entradas (v, t ) Salida ( d ) Parametros de simulacin ( inicio, fin) U.A.T.Simulacin de sistemas Pag Num. 20 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. PROYECTO DE SIMULACION NUMERO 2:MODELO ESTOCASTICO ESTIMACION DE LAS PROBABILIDADES EN LANZAMIENTOS DE MONEDAS IntroduccinDeacuerdoalateoriadelaprobabilidad,sabemosqueenellanzamientodeunamonedasin cargar (es decir, con la misma probabilidad de que caiga un lado u otro) existe una probabilidad del 50 de que caiga cara y una probabilidad de 50 de que caiga cruz (.5 y .5). Esteresultadoseobtienedividiendo1f2(Unladoquenosinteresaobtenerentreeltotalde lados que es 2"). Siquisiramosverificarestaprobabilidadcon10lanzamientos,esperariamosqueelresultadode aproximadamente5lanzamientosseancaray5seancruz.Sinembargo,10esunnumeropequenode lanzamientos para verificarlo con poco margen de error; es decir, en 10 lanzamientos tal vez obtengamos 5 caras y 5 cruces, o bien 8 caras y 2 cruces, o 9 caras y una cruz, o cualquier otra combinacin. Sinembargo,conformeaumenteconsiderablementeelnumerodelanzamientos,seesperara obtener cara en la mitad de ellos y cruz en la otra mitad. Esto significa que la probabilidad de obtener cara o cruz sera muy cercana a .5 conforme el numero de lanzamientos se incremente. A mayor numero de iteraciones realizadas en un experimento con un modelo estocastico, el error de estimacin al usar simulaciones tiende a ser cero. Descripcin del programa RealizarunprogramaquepermitasimularN"lanzamientosdeunamonedaydeterminarla probabilidad de obtener cara o cruz en ese experimento de simulacin. ElnumeroNseraintroducidoporelusuario.Cadalanzamientoequivaleagenerarunnumero aleatorioentre0y1.Sielnumeroestaentre0y0.5considerarCara"comoresultado,delocontrario, considerar Cruz". Probabilidad de obtener cara = Numero de veces que se obtuvo cara" f N Probabilidad de obtener cruz = Numero de veces que se obtuvo cruz" f N Realizar pruebas con el programa y anotar los resultados obtenidos para N = 10, 100, 1000, 10000, 100000 lanzamientos. Procedimiento sugerido: 1.Obtener elNumero de lanzamientos N 2.!nicializar semilla aleatoria y contadores de cara y cruz en cero3.Hacer un ciclo de 1 a N con los pasos 3a y 3b a.Generar un numero aleatorio. b.Si el numero aleatorio es mayor o igual a 0.5, considerar CARA (Sumar uno al contador de Cara); de lo contrario considerar CRUZ (Sumar uno al contador de Cruz). +.Calcular la probabilidad de obtener cara y la probabilidad de obtener cruz. 5.!mprimir resultados U.A.T.Simulacin de sistemas Pag Num. 21 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. PROYECTO DE SIMULACION NUMERO 3: SIMULACION DE UN JUEGO DE AZAR CON REGLAS PRE-ESTABLECIDAS{APUESTAS Y VOLADOS) Se Desea simular un juego de azar que consiste en lanzar una moneda y apostar dinero en cada lanzamiento.Si se gana el volado, se gana la cantidad apostada, pero si se pierde el volado, se paga esa misma cantidad (de la apuesta). Antes de hacer el primer lanzamiento, se determina: Una cantidad inicial (con la que se comienza el juego). Una cantidad para apostar (Si se gana el volado, esta cantidad se suma a lo que se tiene, pero si se pierde el volado, esta cantidad se resta). La cantidad que se desea tener (Si se llega a esta cantidad, se deja de jugar). El juego termina cuando se llega a la cantidad deseada, en cuyo caso, se considera triunfo"; sin embargo,eljuegotambinpuedeterminarcuandoeljugadorpierdetodosudinero(Esdecir, llega a ceros), en este caso se considera Bancarrota". Realizarunprogramaquepermitasimularestejuego.Utilizarnumerosaleatoriospara determinareleventodellanzamiento.Sielnumerogeneradoesmenorque.5seganael volado, de lo contrario se pierde. Nostrarlasiguienteinformacinencadalanzamientohastaqueeljuegotermine:Elnumero aleatorio generado, Cuanto dinero se tiene y si gan o perdi en cada lanzamiento.Al final del programa especificar el numero de lanzamientos realizados, y si se lleg a la meta (Triunfo"), o bien si qued en ceros (Bancarrota"). U.A.T.Simulacin de sistemas Pag Num. 22 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. PROYECTO DE SIMULACION NUMERO 4 USO DE NMEROS ALEATORIOS PARA ESTIMARLA PROBABILIDAD DE GANAR EL LUCKY 7 POR PRIMERA VEZ ElLucky7esunodelosjuegosclasicosqueseencuentranenloscasinos.Consisteenunamaquinacon tresrodillosconnumerosimpresosdel0al9(cadauno),quegirandemaneraaleatoriaeindependiente cuandounapalancaesactivadaporeljugador.Aldetenerse,cadarodillomuestraunnumeroporuna ventanita. El jugador gana cuando los 3 rodillosmuestran el numero 7" por su respectiva ventanita. Suponga que cada numero tiene la misma probabilidad de aparecer por la ventanita al accionar la palanca. Realice un programa que muestre cuantos intentos son necesarios para ganar por primera vez unjuego en el lucky 7. Use tres numeros aleatorios independientes (Entre 0 y 9) para simular cada rodillo. Calcular tambin la probabilidad de ganar en cada simulacin:1 f numero de intentos. Nmeros aleatorios en el rango de 0 a 9.-Para las ocasiones en que se necesita generar numeros aleatorios en un rango distinto al de 0 a 1, como en este caso, que se requiere numeros entre 0 y 9 ,en C# se puede hacer lo siguiente: System.Random r = new System.Random();//Se Declara variable tipo Random int NA = r.Next(0,10); //Genera un num aleatorio entre 0 y 9 Rango!nferiorRangoSuperior + 1 El algoritmo para hacer el programa seria: 1.!nicializar el Numero de !ntentos en cero. 2.Hacer un ciclo hasta que X=7, Y = 7 y Z=7 a.Generar 3 numeros aleatorios diferentes X,Y,Z cada uno entre 0 y 9.b.!ncrementar 1 al Numero de !ntentos c.!mprimir los numeros en los 3 cuadros de texto d.Refrescar"los3cuadrosdeTextodelosnumerosaleatorios(Soloparaefecto visual). Esto puede hacerse con el mtodo REFRESH Ej.: txtX.Refresh( );3.Cerrar el ciclo (Regresar al paso 2) +.Calcular la Probabilidad de Ganar = 1 f Numero de !ntentos 5.!mprimirelNumerode!ntentosylaProbabilidaddeGanarenloscuadrosdetexto correspondientes. U.A.T.Simulacin de sistemas Pag Num. 23 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. PROYECTO DE SIMULACIN NUMERO 5 ESTIMACIN DEL AREA DE UN CIRCULO DE RADIO R MEDIANTE EL METODO DE MONTE CARLO El procedimiento matemtico consiste en: 1.Dividir al circulo en + partes y tomar solo una de ellas para calcular su area. Al final multiplicar este resultado por +. 2.Generar"n"puntos(coordenadas)X,Yaleatoriamentedentrodelcuadrado. (Numeros aleatorios entre 0 y r). 3.Determinar el numero "c" de puntos (X,Y) que quedaron dentro del semicrculo, mediante la siguiente evaluacin: Sir y x = +2 2, la coordenada (X,Y) esta dentro del circulo nccuadrado Asemicirc A=__ ( ) cuadrado Ancsemicirc A _ _

=( ) ( )2 2_ rncLncsemicirc A

=

=Entonces el area completa del circulo es cuatro veces el area del semicirculo: ( )24rnclo daDelCircu AreaEstima

= Analiticamente, El area del circulo es: 2r DelCirculo AreaExacta = Como el rea estimada es muy cercana al rea real del crculo (con un margen de error pequeo si el numero n de puntos generados es grande), DelCirculo AreaExacta lo daDelCircu AreaEstima entonces, una buena estimacin del numero P! seria: ( )

4nc La elaboracin del programa consiste en: 1. Pedir dos valores: N (Numero de puntos a colocar en el cuadrado) y R (Radio del Circulo). 2. Inicializar C en 03. Hacer un ciclo de 1 a N. 4. Generar dos coordenadas aleatorias X,Y dentro del cuadrado (Es decir, dos nmeros aleatorios entre 0 y r).5. Si se cumple la condicin RAIZCUADRADA( x^ 2 + y^2 ) = Terminacionservicio !nicioservicio = Tllegada Si no,!nicioservicio = Terminacionservicio e.Terminacionservicio = !nicioservicio + 25 f.Tesperacamion = !nicioservicio - Tllegada g.!mprimir Tentrellegadas, Tllegada, !nicioservicio, Terminacionservicio, Tesperacamion +.Fin U.A.T.Simulacin de sistemas Pag Num. 32 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. EJERCICIO DE REPASO Estimacin de probabilidades en el lanzamiento de dos dados Introduccin Siselanzarandosdados,todaslasposiblescombinacionesdenumerosobtenidasenel lanzamiento de ambos dados serian 36 en total: (1,1), (1,2), (1,3), (1,+), (1,5), (1,6), (2,1), (2,2), (2,3), (2,+), (2,5), (2,6), (3,1), (3,2), (3,3), (3,+), (3,5), (3,6), (+,1), (+,2), (+,3), (+,+), (+,5), (+,6), (5,1), (5,2), (5,3), (5,+), (5,5), (5,6), (6,1), (6,2), (6,3), (6,+), (6,5), (6,6) Supongamos que estamos interesados en conocer la probabilidad de obtener 2 numeros iguales (cualquiera) en el lanzamiento, es decir (1,1) (2,2) (3,3) (+,+) (5,5) o (6,6). Si ambos dados no estancargados(tienenlamismaprobabilidaddequecaigacualquieradesuslados),la probabilidad seria de 6 f 36= 0.1666 Ylaprobabilidaddequelasumadelosdosnumerosobtenidosenellanzamientoseasiete, tambinseriade6f36=0.1666yaquelasposiblescombinacionesparaobtenerun7serian (1,6) (2,5) (3,+) (+,3) (5,2) y (6,1)es decir, tambin 6 en total. Descripcin del programa Realizar un programa que permita simular N" lanzamientos de dos dados, y determinar: El numero de lanzamientos y la probabilidad de que los numeros obtenidos sean iguales.El numero de lanzamientos y la probabilidad de que la suma de ambos numeros sea 7 El valor de N" sera introducido por el usuario, y seusaran dosnumeros aleatorios entre 1y6 (uno para el numero obtenido por cada dado). Probabilidad de que Ambos Dados caigan igual = (Numero de veces que fueron iguales) f N Probabilidad de que la suma de ambos sea 7 = (Numero de veces que la suma fue 7) f N Realizarpruebasconelprogramayanotarlaprobabilidadobtenidaen10,100,1000,10000, 100000, 1000000 lanzamientos. verificar que a mayor numero de lanzamientos, la probabilidad obtenida tiende a ser .1666 en ambos casos (que los numeros sean iguales, o que su suma sea siete). U.A.T.Simulacin de sistemas Pag Num. 33 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. UNIDAD IIISIMULACION DE SISTEMAS POR COMPUTADORA EN PAQUETES COMPUTACIONALES Usando Hojas de clculo comerciales para realizar simulaciones. Son muchos los autores que han apostado por utilizar hojas de calculo para realizar simulaciones. Lapotenciadelashojasdecalculoresideensuuniversalidad,ensufacilidaddeuso,ensu capacidadpararecalcularvaloresy,sobretodo,enlasposibilidadesqueofrececonrespectoal analisis de escenarios (what-if analysis"). Conceptos bsicos para la simulacinde MODELOS DETERMINISTICOS en EXCEL. UsarExcelparalasimulacindemodelosdeterministicosimplicaelusoymanejodeceldasy formulas dentro de una hoja de calculo. LasformulasenEXCELseinicianconelsignodeigualyunparentesis,seguidosporcualquier operacion matematica permitida por EXCEL.Lasformulaspuedencontenernumerosconstantes,simbolos,parentesis,funcionesespeciales, etc. Conceptos bsicos para la simulacin de MODELOS ESTOCASTICOS en EXCEL. Excelesunpaquetecomercialmuypopular,queposeediferentesfuncionesintegradasque puedenutilizarseparaproyectosdesimulacin.LasultimasversionesdeExcelincorporan ademas,unlenguajedeprogramacinpropio:elvisualBasicforApplications,conelcuales posible crear autnticas aplicaciones de simulacin destinadas al usuario final. EnelmercadoexistendehechovarioscomplementosdeExcel(Add-!ns)especificamente disenadospararealizarsimulacindeNonteCarlo,siendolosmasconocidos:@Risk,Crystall Ball, !nsight.xla, SimTools.xla, etc. La funcin =ALEATORIO() Las hojas de calculo como Excel (y cualquier lenguaje de programacin estandar) son capaces de generar numeros pseudo-aleatorios provenientes de una distribucin uniforme entre el 0 y el 1. Estetipodenumerospseudo-aleatoriossonloselementosbasicosapartirdeloscualesse desarrolla cualquier simulacin estocastica por computadora. EnExcel,esposibleobtenerunnumeropseudo-aleatorio-provenientedeunadistribucin uniforme entre el 0 y el 1- usando la funcin =ALEATORIO{) LosnumerosgeneradosmediantelafuncinALEATOR!Otienendospropiedadesqueloshacen equiparables a numeros completamente aleatorios: 1. Cada vez que se usa la funcin ALEATOR!O, cualquier numero real entre 0 y 1 tiene la misma probabilidad de ser generado (de ahi el nombre de distribucin uniforme). 2.Losdiferentesnumerosgeneradossonestadisticamenteindependientesunosdeotros(es decir,elvalordelnumerogeneradoenunmomentodadonodependedelosgeneradoscon anterioridad). Lafuncin=ALEATOR!O()esunafuncinvoltildeExcel.Estosignificaquecadavezque pulsamoslateclaF9ocambiemosalgunodelosinputsdelmodelo,todaslasceldasdonde aparezca la funcin ALEATOR!O() seran recalculadas de forma automatica.Se pueden encontrar ejemplos del uso de ALEATOR!O en el propio menu de ayuda de Excel. U.A.T.Simulacin de sistemas Pag Num. 3+ Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. La funcin BUSCARV Buscaunvalorespecficoenunacolumnadeterminadamsalaizquierdadeunconjuntodeceldasy devuelve el valor en el mismo rengln de una columna especificada en la tabla. =BUSCARV( valor_buscado ; rango_en_donde_buscar ; columna_a_imprimir_si_se_encuentra ) La funcin SI Devuelve un valor si la condicin especificada es vERDADERO y otro valor si dicho argumento es FALSO. =SI( condicin; valor_si_verdadero ; valor_si_falso ) La Funcin CONTAR.SI Realiza la suma de las celdas dentro de un rango que cumplan con cierta condicin especificada. =CONTAR.SI (rango ; condicion) porejemplo,lainstruccin=CONTAR.S!(B1:B20;Cara")cuentatodaslasceldasentreel rango B1 y B20 que contengan la palabra Cara". El resultado es un numero entero. U.A.T.Simulacin de sistemas Pag Num. 35 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. PROYECTO DE SIMULACION NUMERO 11: SIMULACION DE UN MODELO DETERMINISTICO USANDO EXCEL Utilizar Excel para realizar la simulacin del modelo descrito en la practica #1: Distancia = velocidad * Tiempo Procedimiento Sugerido.- Nantener 3 columnas de datos: Una para velocidad, otra para Tiempo y una mas para Distancia. En la columna de velocidad", solamente utilizar la primera celda, pues este dato se mantendra constante durante la simulacin (evaluacin). Llenar la columna de Tiempo" con valores. En la columna Distancia" introducir la formula correcta que indique una multiplicacion entre la velocidad y el valor de Tiempo correspondiente. NOTA: Se utilizan signos de pesos en los nombres de las celdas para indicar a EXCEL que esa celda es F!JA, y que al copiar o mover su contenido, el nombre de esa celda no debe cambiarse. Copiar la formula a las demas celdas. Observar el comportamiento del modelo al cambiar el valor de la velocidad. U.A.T.Simulacin de sistemas Pag Num. 36 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. EJEMPLO DEL PROCEDIMIENTO PARA LA SIMULACION DE MONTECARLO DE VARIABLES DISCRETAS EN EXCEL PROYECTO 12 : REALIZAR EN EXCEL EL PROYECTO DE LAS CONSULTAS AL SERVIDOR !ntroducir la tabla del problema (variable Aleatoria, Frecuencia absoluta, Frecuencia Relativa, Frecuencia Relativa Acumulada).Los totales pueden introducirse manualmente, o calcularse con la funcin =SUNA(rango) Escribiraunlado,losrangosobtenidosyelnumerodeconsultasquecorrespondeacada rango. Enotrapartedelahojadecalculo,escribirdoscolumnasseguidas,unaparaelnumero aleatorio y otra para el numero de consultas que equivale a ese numero aleatorio. !ntroducir la funcin =ALEATOR!O() en la columna de Numero AleatorioCopiarelcontenidodelaceldaN"veceshaciaabajo.Puedeextender"conelmouse,la parte inferior izquierda de la celda hacia abajo, y se copiara el contenido automaticamente. !ntroducir la frmula =BUSCARv() En la columna Equivale a"como se muestra en el dibujo, y copiar el contenido de las celdas hacia abajo N" veces. NOTA:Comoelrangodeceldasusadasparalacomparacinsonsiemprelasmismas,se utiliza el signo $ para indicarle a EXCEL que no cambie ese rango cuando se copia la frmula a otras celdas.Elresultadodelasimulacineselpromediodelacolumnaquecontieneelnumerode consultas que corresponden a cadanumero aleatorio. U.A.T.Simulacin de sistemas Pag Num. 37 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. PROYECTO DE SIMULACION NUMERO 13: SIMULACION DEL LANZAMIENTO DE UNA MONEDA PARA ESTIMAR PROBABILIDADES UTILIZANDO EXCEL U.A.T.Simulacin de sistemas Pag Num. 38 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. PROYECTO DE SIMULACION NUMERO 14: SIMULACION DEL COMPORTAMIENTO DE UN SEMAFORO FISCAL USANDO EXCEL U.A.T.Simulacin de sistemas Pag Num. 39 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. EJERCICIO DEMOSTRATIVO {REPASO) SIMULACION DE LINEA DE ESPERA DE ATENCION A CAMIONES CON INCREMENTOS AL PROXIMO EVENTO U.A.T.Simulacin de sistemas Pag Num. +0 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. UNIDAD IV GENERACIN DE NUMEROS ALEATORIOS La importancia de los numeros aleatorios rectangulares (distribucin uniforme) radica en su uso paralosexperimentosdesimulacin.AlgunosautorescomoToucherhansugeridotresformas para obtener los numeros rectangulares: 1.Provisinexterna.-!mplicatenerlosnumerosaleatoriosenundispositivode almacenamiento secundario (disco duro, disquete, cinta, etc.)guardados en archivoso bases de datos, y tomarlos como entrada para el problema que se esta simulando. 2.Generacininternaapartirdeunprocesofsicoalazar.-!mplicautilizaralgun aditamentoespecialdelacomputadoradigitalcapazderegistrarlosresultadosdeun proceso aleatorio y ademas, reduzca esos resultados a sucesiones de digitos. 3.Generadoresmatemticos.-Esunodelosmasaceptados,implicalageneracinde numeros a travs de una relacin de recurrencia. Esimportantemencionarquehistricamente,enlosiniciosdesimulacinsetrabajconlos siguientes mtodos para generar numeros aleatorios: Mtodosmanuales.-Consistianenutilizardispositivosfisicostalescomoarrojardados, cartas,monedas,etc.oalguntipodedispositivofisicooelctricoqueseacapazdedar resultadosaleatoriosconigualdaddeprobabilidadesparaquelosnumerosaleatorios resultantes tengan una distribucin uniforme. Tablasdebiblioteca.-Nediantealgunodelosmtodosdescritosantes,lacorporacin Rand construy tablas de numeros aleatorios. La ventaja de las tablas era que las secuencias de numeros podian reproducirse, cosa que no ocurria con los mtodos manuales. Mtodosdecomputacinanalgica.-Seutilizarondispositivoselctricoscapacesde generar pulsos de secuencia aleatoria. De hecho, las tablas de la Rand fueron generadas asi, einclusovendianlastablasgrabadasencintamagnticaparaalimentarlacomputadora digital,loqueevidentementehaciamuylentalasimulacinporelproblemadelostiempos de acceso a la informacin de cinta. Mtodosdecomputacindigital.-Generacininternaporprocesosfisicos.Con aditamentos especiales se media, por ejemplo, el ruido trmico de un circuito en un circuito devalvulaselectrnicasdevacio,losresultadosobtenidosseregistrabanytraduciana sucesiones de digitos. Pero en este mtodo los resultados tampoco podian reproducirse y no eraposiblecomprobarloscalculosefectuados;paraversicumplianconlosrequisitosde aleatoriedad y distribucin uniforme; de manera que de una experiencia debian sacarse gran cantidaddedatos,losqueeranalmacenadosenlamemoriadelacomputadoraysela limitaba mucho. La alternativa fue la generacin de numeros pseudoaleatorios. Estos, en realidad son generados por mtodos matematicos deterministicos, por consiguiente con un mtodo deterministico. Se obtienennumeros que pasan todas las pruebas estadisticas concernientes a la aleatoriedad y a la distribucin pero en realidad son deterministicos, por eso el prefijo pseudo (=falso). Eldeterminismopermiteobtenerlamismasucesindenumeros,sicadavezqueseiniciala secuenciaselohaceconlasmismasentradasyconstantes.Tienelaventajadequepueden repetirselosexperimentosperotambinsignificaquedebecuidarsenoobtenerlamisma secuencia cuando no se lo desee. U.A.T.Simulacin de sistemas Pag Num. +1 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. !ndependientemente del mtodo que se utilice, losnumeros rectangulares deben poseer ciertas caracteristicasdeseablesqueasegurenoaumentenlaconfiabilidaddelosresultadosobtenidos en la simulacin. Tales caracteristicas son: Uniformemente distribuidos Estadisticamente independientes Reproducibles Periodo largo (Sin repeticin dentro de una longitud determinada de la sucesin) Generados a travs de un mtodo rapido Generados a travs de un mtodo que no requiera mucha capacidad de almacenamiento de la computadora. Finalmente,esnecesariosenalarquealgunosautorescalificanalosnumerosrectangulares generados a travs de relaciones de recurrencia como numeros pseudoaleatorios", por ser una sucesindedigitosgeneradamedianteunareglapuramentedeterministica.Sinembargo,esta objecin puede superarse, al menos parcialmente, al tomar el punto de vista un tanto practico de queunasucesinpuedeconsiderarsealeatoriasisatisfaceunciertoconjuntodepruebas estadisticas de aleatoriedad. Generadores de nmeros aleatorios uniformes Unalgoritmodecomputadoraquesirveparagenerarunasecuenciadenumerosaleatorioscon las caracteristicas citadas anteriormente es llamado generador de numeros aleatorios. Cualquier algoritmo generador de numeros aleatorios puede generar solamente un numero finito de enteros diferentes, despus de lo cual la secuencia vuelve a repetirse (De ahi que tambin se llamen generadores de numeros pseudoaleatorios). Mtodo de los medios cuadrados En la actualidad dej de utilizarse, pero histricamente fue muy interesante.Es un mtodo sencillo para usar cuando se quiere generar manualmente alguna secuencia. El mtodo consiste en tomar un numero de + digitos, elevarlo al cuadrado y tomar sus cuatro numeros centrales como el siguiente numero de la sucesin. Ejemplo: x0 = 2152(x0)2 = 0+63110+ x1 = 6311(x1)2 = 39828721 x2 = 8287(x2)2 = ............... Este mtodo se descart porque estadisticamente era poco satisfactorio. Hagase la prueba con el numero 2500. Generadores Congruenciales Lineales variosesquemashansidopropuestosparalageneracindelosnumerospseudoaleatoriosa travsderelacionesmatematicasderecurrencia.Actualmentecasitodaslascomputadoras incluyen en sus programas de biblioteca alguna variante de los mtodos congruenciales sugeridos por Lehmer en 1951.Los dos mtodos congruenciales mas populares son el congruencial mixto y el congruencial multiplicativo. U.A.T.Simulacin de sistemas Pag Num. +2 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. Congruencial Mixto Generaunasecuenciadenumerospseudoaleatoriosenlacualelprximonumero pseudoaleatorioesdeterminadoapartirdelultimonumerogenerado,esdecir,elnumero pseudoaleatorio Xn+1 es derivado a partir del numero pseudoaleatorio Xn La relacin de recurrencia para el generador congruencial mixto es: Xn+1 = (aXn+c) mod m Donde: X0 es la semilla (X0 > 0) a es el multiplicador (a > 0) c es la constante aditiva(c > 0) m es el mdulo o residuo de la divisin(m >X0 ,m > a ,m > c)m" representa el numero de valores diferentes que pueden ser generados. Losparametrosa,c,mdebenserelegidoscuidadosamenteparaasegurarunlargoperiodoy que la secuencia generada tenga buena propiedad de aleatoriedad y uniformidad.Para empezar el algoritmo se requiere de un valor inicial X0 llamado semilla. El algoritmo generara un entero entre 0 y m Ntesequesisenecesitaobtenerunnumeroentre0y1,bastadividircadanumerogenerado entre m (En caso de un periodo completo). Para obtener buenos resultados, tomar en cuenta lassiguientesconsideracionesen la seleccin de los parametros para el generador: X0 El valor de la semilla es irrelevante en trminos generales. aEntero !mpar, no divisible entre 3 o 5. Para garantizar un periodo completo: Generalmente 2K + 1 (elegir K >= 2) O Tambin10 K + 1 (elegir K >= 2)cPuede ser cualquier constante, pero para asegurar buenos resultados se debe seleccionar un Entero impar, relativamente primo a m mNumero primo mas grande posible pero menor que 216 o 1016 Ejemplo : Generador congruencial mixto Considerar un generador congruencial mixto con X0 = 5, a = 21, c = 3, m = 8 Xn+1 = (aXn+c) mod m X0 = 5 X1 = (21(5)+3) mod 8 = 4 X2 = (21(+)+3) mod 8 = 7 X3 = (21(7)+3) mod 8 = 6 X+ = (21(6)+3) mod 8 = 1 X5 = (21(1)+3) mod 8 = 0 X6 = (21(0)+3) mod 8 = 3 X7 = (21(3)+3) mod 8 = 2X8 = (21(2)+3) mod 8 = 5 X9 = (21(5)+3) mod 8 = 4 X10 = (21(+)+3) mod 8 = 7 Notar que el periodo del generador = m = 8 A partir de la iteracin numero 9 se obtienen numeros repetidos U.A.T.Simulacin de sistemas Pag Num. +3 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. Algunas recetas numricas eficientesde Generadores Congruenciales Mixtos de ciclo completo Limite en"m""a""c" 2 2060751061283 2 2178752111663 2 227875+211663 2 23607513661283 66559361399 11979+302531 2 2+1++0696730+1 29282+196173 5312517111213 2 251296017+12731 1+00015+12957 218701291+621 3110+6256571 13996820529573 2 262928212556173 81000+2117117 13++5628128+11 Cmo Generaba Visual Studio 6 los nmeros Aleatorios con la funcin RND ? Al invocar la funcin de generacin de numeros aleatorios, visual Studio 6 utiliza internamente un generador congruencial mixto de numeros aleatorios de la forma Xn+1 = (aXn+c) mod m Con los siguientes valores: X0 = 32780,a = 11+0671+85, c=12820163,m = 2'2+ Este proceso es totalmente transparente para el programador, y puede pensarse en las funciones degeneracindenumerosaleatorioscomosifueranfuncionalidadesencapsuladasdemanera eficiente para generar numeros aleatorios utiles en experimentos sencillos de simulacin.

U.A.T.Simulacin de sistemas Pag Num. ++ Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. Congruencial Multiplicativo El generador congruencial multiplicativo nace del generador congruencial mixto con c = 0. Tiene la forma Xn+1 = aXn mod m O bien, Xn = aXn-1 mod m Estosgeneradoressonmaseficientes(computacionalmentehablando)queloscongruenciales mixtos,yseleccionandoadecuadamentelosparametrosa",m"yx0"sepuedeobtener tambin un periodo completo. Para obtener buenos resultados, tomar en cuenta lassiguientesconsideracionesen la seleccin de los parametros para el generador: X0 !mpar, mayor que cero, de preferencia relativamente primo a m". Puede usarse 1. aRaiz primitiva de m", es decir:an mod m 1para n = 1,2.....m-2 Algunos autores recomiendan seleccionar a" comoa= 8t + 3 t" es cualquier entero. mNumero primo mas grande posible y siempre diferente de 2kk" es cualquier entero. Ejemplos: Un generador muy usado esXn = 75Xn-1 mod (231-1)tiene buenas propiedades aleatorias y es recomendado como un estandar minimo. Unestudiodegeneradoresmultiplicativosconm=231 -1quecomparsueficienciay aleatoriedad, recomienda los dos siguientes como mejores: Xn = +8271

Xn-1 mod (231-1) Xn = 69621

Xn-1 mod (231-1) Generadores Combinados 1.Si se tienen dos secuencias Xn , Yn de numeros aleatorios entre 0 y m-1, ambas pueden ser combinadas para obtener una tercera secuencia de la siguiente manera:Wn = (Xn + Yn) mod m Silasdossecuenciastienendiferentesperiodosysonobtenidaspordiferentes algoritmos, el periodo y la aleatoriedad pueden incrementar considerablemente. 2.Otra tcnica que se puede aplicar a estas dos secuencias Xn , Yn es el OR-Exclusivo.Esta tcnica es similar a la anterior, excepto que la suma es reemplazada por un Or-Exclusivo BitporBit.Sehademostradoqueestatcnicaaplicadaanumerosligeramente aleatorios puede ser usada para generar numeros con mayor aleatoriedad. Recomendaciones al implementar cualquier generador de numeros aleatorios Nousarvalorescero"paralasemilla.Aunquepuedefuncionarparaungenerador congruencial mixto, hace que los generadores multiplicativos tengan problemas. Nousesemillasaleatorias.Dehacerlo,lasimulacinnopuedeserreproducidayno pueden estudiarse adecuadamente sus caracteristicas. Noinventar"algoritmospropiosparagenerarnumerosaleatorios.Recordarque resultadosdificilesdepredecirnonecesariamentesonaleatorios.Esmejorusar operaciones simples cuya aleatoriedad pueda ser evaluada analiticamente. Reflexiones Finales Disenarnuevosgeneradorespareceunatareamuysimple;sinembargo,muchosgeneradores propuestosporexpertosestadisticoshansidoencontradosdeficientes.Porlotanto,esmejor usar un generador que ya haya sido extensamente probado en lugar de inventar uno nuevo. U.A.T.Simulacin de sistemas Pag Num. +5 Licenciatura en InformticaProf. Ing. Ramn V. Roque Hernndez, M.C. PROYECTO DE SIMULACION NUMERO 15: IMPLEMENTACION DE UN GENERADOR CONGRUENCIAL MIXTO DE NUMEROS PSEUDOALEATORIOS Consideraciones generales para el programa: El usuario introducira los valores de X0, a, c, m El programa desplegara los numeros generados en una lista Al final de la lista debe mostrarse el periodo del generador !ncluir los botones de Generar numeros aleatorios" para iniciar con el proceso, Limpiar valores" para quitar todos los datos de la pantalla y el botn Salir" para abandonar el programa. Procedimiento Sugerido (Botn Generar numeros aleatorios") 1.Obtener los valores de X0, a, c, m 2.!nicializar Periodo y NumAleatorioen ceros 3.NumAnterior = X0 +.Repetir mientras NumAleatorio X0 y Periodo