![]() |
Simulacion pacientes emergencia hospital
:confused: Hola a todos... necesito realizar una simulacion de la emergencia de un hospital en delphi 7 con los siguientes requerimientos:
(1) Tiempo de llegada de los pacientes. (2) Tiempo de servicio. (3) Tiempo de espera para ser atendidos. (4) Tiempo que dura el paciente siendo atendido.. Quisiera saber si delphi cuenta con funciones que me ayuden en esta tarea (funciones que manejen distribuciones estadisticas)....Gracias por la ayuda.!! |
Hola RK2, supongo que ya has tenido en cuenta lo que te he dicho en el otro hilo.
Sólo paso por aquí para hacerte saber que Delphi no viene con esas funciones, eso es algo propio de la teoria de colas y deberás programarlo tu mismo/a. Como ya te había dicho, Delphi en cambio si viene con funciones que te pueden asistir a darle cuerpo a dichas funciones (vee la unidad Math) y además posee clases que ya tienen implementado el concepto de pilas, colas, listas. Recomiendo que si no encuentras una biblioteca que te saque de ese apuro que comiences diagramado en UML tu idea. A medida que te vayan surgiendo los problemas aquí me tienes para ayudarte. Yo tuve que hacer un sistema de simulación (como era a elección, opté por hacer uno sobre el negocio familiar). Pero como tenía prisa opté por traducir una biblioteca (Pascal) que nos suministró el profesor de cátedra a Delphi. Era requisito emplear esa biblioteca (aunque sea traducida). Lamentablemente no estoy en la posición de ofrecerte dicha biblioteca, ni que decir de mi trabajo. Espero que puedas entender, en mi universidad son exigentes en cuanto al plagio. Además para darte algo debo tener la autorización de mis compañeros (fue trabajo grupal), y de mi profesor. Si bien no usé POO en dicha ocasión no creo resulte demasiado complicado llevarlo así. Ahora sería útil que nos digas que tipo de sistema de tiempo usas: ¿Por eventos? Saludos, |
Cita:
Hola RK2... esto me suena como a Tarea..... me acuerdo que hace un par de años, en la Univ. me dieron un trabajo similar (me parece que era Simulación Artificial o algo parecido).... en donde tenia que simular cajas de supermercado y clientes... con colas de esperas, tiempos de atención y cosas por el estilo... me acuerdo que trabaje mucho con random(x)...(no me acuerdo si era así...)... lo hice en el delphi 2.. y me funco super... pero ahora no me acuerdo... Con respecto a tu pregunta... creo que si maneja.. y en el caso de que no maneje puedes crear tu propia fx....(si lo hace excel... en delphi tambien se puede...)... Creo que debes meterle mano al delphi y crear un poco de código.. y cuando tengas una duda específica plantearla con algo de código.... Salu2 y suerte..:p:D |
Por cierto, RK2, en otra ocasión he dejado ha disposición unas units que te pueden ser de utilidad. Son sobre algunos generadores de números aleatorios y de pruebas (como ser Kormorov-Smirnov y Chi-Cuadrado)
BlueSteel, ¿seguro que Delphi viene ya de fábrica con biblioteca sobre distribuciones estadísticas? Recuerda que el funcionamiento de aquellas simulaciones es más o menos así:
DistribExponencial es la función que devuelve un número dependiendo de algunos valores dependientes del dominio y que dan "forma" a la distribución. Y NumeroAletorio un valor obtenido desde un generador obviamente. En simulaciones no basta con emplear un simple Random, se necesita de varios generadores (uno para cada cosa a simular, con distintos valores semillas) por lo que el uso de Random queda corto. Yo tengo entendido que Delphi no tiene algo así, si en cambio posee funciones que asisten a ello. Saludos, |
Gracias...Delphius creo que soy el mas novato de todo el club; con relacion a mi tarea empesare a realizarla y conforme vayan surgiendo inconbenientes le padire ayuda...ok
|
Me estoy empezando a sentir bien, por que sucede que por mis alrededores no hay nadie que me ayude con delphi y mis tareas; todos mis compañeros usan visual foxpro en la uni.
Pero que bueno que existe el club delphi y miembros como ustedes dispuestos ha ayudar a los novatos como yo...! |
Aqui todos somos novatos, ni tampoco verdaderos genios.
No hay problema. Si tienes problemas con las distribuciones no dudes en consultar con tu profesor... y no temas recurrir a la biblioteca, hay libros sobre el tema y no muerden. No recuerdo bien el nombre de uno de los libros que he usado, si recuerdo que era un poquito viejo pero me sirvió mucho ya que explicaba y ofrecía la explicación y fórmula que emplea las distribuciones más usadas. Su autor era de apellido oriental... creo que era Shu, o Fu... o algo así. Te mentiría si recuerdo cual era el autor y el nombre del libro:(. San Google puede serte de aliado en esto (Excepto para la distribución Weibull que yo me maté en su tiempo investigando y encontré poco material confiable) pero en ocasiones lo que encuentres no es del todo confiable... es más, no me extraña que llegues a encontrar información ambigua. Creo, y doy por entendido que ya tienes estudiado más o menos cuales son las distrubuciones que debes emplear, con que valores y cuantos procesos debes aplicar. Si no es así, sugiero que armes un esquema visual sobre el problema y una vez que tengas bien armado y comprendido el problema y su modelo que te sientes y lo lleves a la práctica. Saludos, |
Hola Delphius
en cuanto a esto... Cita:
Cita:
Salu2 |
Disculpa Amigo,
veo que por apresurado no lei bien. Ya veremos los avances y/o dudas que tenga RK2; si es que el desea compartir con nosotros y el resto de la comunidad sus dudas e inquietudes. Saludos, |
Claro que si Delphius... de hecho ya estoy esquematizando el problema, y esta mañana entreviste un doctor experto en estadistica y que fue director de emergencia en un hospital de la republica dominicana.
En los proximos dias subire al foro los diagramas y el plantiamiento formal del problema para analizarlo entre todos ...ok esperando su colaboracion y acteptacion, claro esta.! |
No hay apuro RK2, no hay apuro.
Eso si, la nota la compartes con clubdelphi ¿no?:D No tiene que ser una consulta con un experto ¿o realmente lo ameritaba? ¿Tú escogiste el negocio? ¿O fue impuesto? Ten presente que a todo problema debes delimitarlo bien. Hasta que punto debes simular, que variables o factores considerar... el caso de una sala de emergencias es algo un tanto más complejo que el simple modelo de cajas de un supermercado... ¿Que tan real nos estás preparando al modelo? Digo... para saber a lo que nos vamos a enfrentar... Por ejemplo: ¿deseas simular como se satura una sala de urgencias en las fechas de San Valentín, Navidad, Año Nuevo? Esos 3 días son los más conflictivos, desgraciadamente:(. Como vez, tu modelo debe tener límites. Espero que estés consciente de que es posible que los procesos pueden correr en paralelo y no en secuencia. Bueno no digas, esperaré tus dudas y espero estar preparado para ayudarte. Saludos, |
Me recuerda a mi curso de Modelos y Simulacion, voy a revisar mis archivos antiguos a ver que encuentro
saludos |
Cita:
1- Datos del Paciente. 2- Medio por el que ingresa. 3- Condición en la que ingresa. 4- Hora de llegada. 5- Hora en que lo recibe el doctor. (Tiempo de espera) 6- Doctor que lo recibe.( general o especialista). 7- Datos recibidos por el doctor (Tiempo que duro la revisión). 8- Si todavía esta vivo, cobrar la cuenta. Saludos |
Amigo Carlos, ese el modo simple... aqui lo simple es complejo;). Yo actualmente me estoy imaginando por empezar algo así:
Código:
PacientesAhora, la realidad es un tanto más complicada... en ocasiones no habrá médicos, ni salas... y es posible que se recurrran a varios médicos para atender a un sólo paciente. Saludos, |
Hola
Para mi que estas viendo muchas series de televisión de emergencias medicas.:D Lo simple es simple, la vida es simple, los que nos la complicamos somos nosotros. Hacer un diagrama de una empresa, por que un hospital se maneja como tal, es simple, como la vida. Vamos amigo, el concepto de lo que plateas es un extracto de lo que coloque en mi intervención, solo que a ti te falto el cobro y le pusiste flores.:D:D Saludos |
Cita:
|
Cita:
Salud OS |
Y como cual sera ese bug?,a ver si entre todo lo corregimos :D
|
Hola
Aqui también hacen lo mismo, primero cobran y luego te atienden. Estos, mata sanos, como no saben lo que tienes, entonces te piden mas de la cuenta y te dicen, si sobra se lo devolvemos, es curioso, nunca sobra.:D Efectivamente, el punto 8 debe ser el primero, solo que si te ven cara de muerto te cobraran mas.:D;) Saludos |
Hola
Esto es sobre la distribución Gamma Devuelve la probabilidad de una variable aleatoria siguiendo una distribución gamma. Utilice esta función para estudiar variables cuya distribución podría ser asimétrica. La distribución gamma es de uso corriente en análisis de las colas de espera. Sintaxis DISTR.GAMMA(x;alfa;beta;acumulado) X es el valor en el que se desea evaluar la distribución. Alfa es un parámetro de la distribución. Beta es un parámetro de la distribución. Si beta = 1, DISTR.GAMMA devuelve la probabilidad de una variable aleatoria siguiendo una distribución gamma estándar. Acumulado es un valor lógico que determina la forma de la función. Si el argumento acumulado es VERDADERO, DISTR.GAMMA devuelve la función de distribución acumulativa; si es FALSO, devuelve la función de densidad de probabilidad. Saludos |
Buenas, muchos saben que estos temas me dejan "picando" mucho. No me pude resistir y quiero aportar un poco:
Distribución Normal (por aproximación): 1. Parámetros de entrada: 1.1. Media = Mean 1.2. Desvio Estandar = Std 2. Parámetros de salida: 2.1. valor a estimar [reales] = X 3. Algoritmo: 1. sum = 0 2. repetir 12 veces: 2.1. u = Aleatorio() 2.2. sum = sum + u 3. X = (Std * (sum - 6.0)) + Mean; Distribución Uniforme: 1. Parámetros de entrada: 1.1. Valor inferior = A 1.2. Valor superior = B 2. Parámetros de salida: 2.1. valor a estimar [reales] = X 3. Algoritmo: 1. u = Aleatorio() 2. X = A + u * (B - A) Distribución Exponencial: 1. Parámetros de entrada: 1.1. Media = Mean 2. Parámetros de salida: 2.2. valor a estimar [reales] = X 3. Algoritmo: 1. u = Aleatorio() 2. X = (-1) * Mean * ln(u) Por ahora tengo esas, que son las más comunes. Consideré bueno darlas a conocer ya que es algo fácil de obtener y conseguir, el vedadero corazón del problema es el "motor" de los generadores de eventos (si es que se emplea este método) y por consiguiente, el uso de las colas. Aleatorio() es una función que devuelve un número aleatorio. Como dije antes, lo más común, y optimo, es que existan muchos generadores. Y cada uno por consiguiente devolveré diferentes números, si se programa a dicha función para seguir un único generador el simulador no funcionará correctamente por lo que se deberán programar los algoritmos en función de la cantidad de generadores. Tal vez hacer que las funciones reciban como parámetro algún identificador del generador, de modo que se podría hacer algo como:
Siendo ahora, posiblemente, tener un DistExpo (una clase que implementa distribución exponencial) como el encargado de pasar el Nro a la función Aleatorio:
Bueno, para complicarlo alguito:D... en el ejemplo asumí que GeneratorList es una instancia de un TGeneratorList que tiene como una propiedad vectorial por defecto del tipo TGenerator. Este TGenerator implementa un método GetNumber encargado de devolver un número aletorio según algún algoritmo declarado (por ejemplo, el del un generador multiplicador mixto). Como consejo, par hacerlo más fácil, separemos el verdadero motor de simulación del problema. Saludos, |
Lo que pide el profe.
Saludos... hay les muestro lo que pide el profesor, y que hay que ajustarlo al problema que se quiere simular; ya estoy dandole forma al " muñeco",
y pronto le mostrare parte te de lo que el me pide, pero ya enfocado a mi simulacion. les doy las gracias a todos y cada uno de los que puedan aportar sus ideas y por que no su codigo...:-) |
Cita:
Saludos. |
ahora si ...
1 Archivos Adjunto(s)
discu;pen, hay esta...
|
Hola RK2, yo pensaba que el documento que nos enviaste daba a entender tus avances. Creo que estás mal interpretando nuestra generosidad (sobre todo la mia). No te vamos a hacer la tarea; más sabiendo que el nombre del archivo así lo demuestra.
Creo que con las cosas que he dicho y expuesto ya tienes una idea de como enfocar el trabajo. Si deseas recibir ayuda, que sea justa: tu expones tu dudas de forma puntual y aqui veremos de que modo ayudarte. ¿Avanzaste algo? ¿Que sistema de avance de tiempo o timing estás por emplear (o estás empleando? Recuerda que hay dos modos básicos de realizar el timing. Dependiendo de esto se te hará más o menos dificil armar una solución. Saludos, |
Pseudocodigo...
***obtener tiempo entre llegadas****
tiempo_entre_llegadas(n_pacientes)= tiempo_entre_llegadas_minimo+ RAND()*(tiempo_entre_llegadas_maximo - tiempo_entre_llegadas_minimo) *** *****tiempo de espera de pacientes**** tiempo_espera_pacientes(n_pacientes)=tiempo_inicio_servicio(n_pacientes) - tiempo_llegadas_pacientes(n_pacientes) suma=suma + tiempo_espera_pacientes(n_pacientes) promedio_tiempo_espera= suma /n_pacientes. **tiempo llegada*** tiempo_llegadas__pacientes((n__pacientes()= tiempo_llegadas__pacientes((n__pacientes(-1) + tiempo_entre_llegadas(n__pacientes() sumallegada=sumallegada + tiempo_llegadas__pacientes((n__pacientes() promedio_tiempo_llegada = sumallegada /n__pacientes. |
Cita:
And the question is....? A ver RK2, eres miembro desde hace ya un buen tiempo y tan sólo tienes 10 mensajes... por tener 10 mensajes no vamos a suponer que no sabes como funciona este foro. Deberías saber muy bien como viene la mano aquí. Lee la guia de estilo si tienes dudas. Saludos, |
hola a todos los que digitaron en este hilo ..
ya tengo todo esquematizado para empezar a programar mi simulacion, todos estos dias lo he utilizado para recojer datos y muestras de probabilidad con las cuales creare mi simulacion, a mas tardar mañana estare subiendo al club todos los detalles de como programare esta tarea, en delphi por supuesto, y con ayuda de ustedes si no es mucha molestia... gracias |
Cita:
La única cosa que sé es saber que nada sé; y esto cabalmente me distingue de los demás informáticos, que creen saberlo todo. |
Hola
Cita:
En el club hay muy buenas personas y con muchos conocimientos, según he podido ver en el tiempo que llevo en el club, y se que no tienen humos a pesar de su capacidad. Tampoco se demasiado sobre simulación. Si puedo darte una mano lo haré, tengo algunos conocimientos de estádistica y probabilidad. Salu2 |
Cita:
Si fué mi última actitud y manera de exponer las cosas, pues lo lamento. Puede que mis palabras hayan sido cortantes y con tendencia a un sentimiento de "superioridad"; si así te ha resultado, no fue esa la itención. Verás, por aquí vienen muchos estudiantes (me incluyo) y cada uno busca (o ha buscado) la manera de que al final le terminarámos haciendo la tarea. Por algo yo decía que prefería que expongas tus dudas puntuales. De este modo: 1. Nos focalizamos en ofrecerte consejos, guias y alternativas sobre el problema. 2. Te hacemos ser parte de la solución, de modo tal que tu mismo terminas encontrando la solución. Cita:
Me parece perfecto que tu nos muestre tu comprensión del problema, de este modo nos amoldaremos a tus avances. Por mi parte te ayudaré como guia o Tutor. En lo posible esquemáticamente (visualmente) para que tu reordenes tus ideas. Lo primero que buscaré es ofrecerte puntos de vista o alternativas. Te aviso que estaré fuera durante el Viernes (para mi todavía estamos en Jueves) y puede que regrese el sábado; No me arriesgaría a decir que Estaré, no se... quizás esté el Domingo. El asunto es que no voy a poder estar, pero tu tranquilo aquí habrá gente que te puede ir ayudando. Ni bien regrese y tenga tiempo pasaré por aquí. Admito que tendré que repasar un poco algunos conceptos de Modelos y Simulación. Tengo algunos apuntes a mano. Recuerda: dudas puntuales. Saludos, |
Hola
Amigo Delphius, no te cansas.......:rolleyes::eek: Luego dicen................., que difícil.:rolleyes: Bueno hay que tener en cuenta que el cambio de actitud se dio con un intervalo de unos minutos, tiempo suficiente para ir al baño y prensarse un H....:D:D Uhhffff.;) Saludos |
Cita:
he vuelto hace unos minutos... Admito que estoy un poco cansado (y eso que desperté al medio día) y ahora debo acostarme temprano ya que mañana debo hacer un viaje. Lamento decirlo pero voy a cambiar de profesión por unos días: agrimensor:(. Debo ayudar a mi padre a medir un terreno y hacer unos planos (al menos le voy a sacar unos pesos:D) ¿Cambio de actitud? Puede ser... es que NewDelphius está encerrado. Hoy no le he dado tiempo a que salga:D. Mejor no lo llamamemos:D:eek::p:D Saludos, |
Hola
Amigo estas muy joven, se nota que soy un viejo:D Me alegro que descanses un rato y mas que ayudes a tu padre.:) Saludos |
Cita:
Pero la ayuda no es porque me guste, me obligaron a que lo ayude:mad: porque no tiene cerca a nadie que lo ayude. Y digo yo... ¿que acaso no tiene otro hijo que está estudiando agrimensura? ¡Que se vaya a Tucuman a buscarlo y se vuelva a Rosario a medir!:D ¿Que hace un informático blanquito en medio de una zona húmeda, calurosa, al aire libre? ¡Pues quemarse! Ya amigo,... liberaste a NewDelphius:D Saludos, PD: Perdón... +1 |
Momento, que también van a desvirtuar este hilo, no entienden, no entienden...........:cool:
Salud OS |
Bueno, he vuelto de mis viajes, un tanto cansado y con una pierna muy dolorida pero en fin... entero.
Veo con un poco de tristeza porque RK2 no ha expuesto sus avances y/o dudas; puede que haya conseguido darle solución a sus problemas y no hubo necesidad de postear o que no haya tenido tiempo para postear... En fin, ya he vuelto y me gustaría poder conocer un poco sobre el esquema de RK2, al menos que pudieramos saber superficialmente de como ha venido la mano. Quien sabe... puede que a otros foristas les sea de ayuda. Saludos, |
| La franja horaria es GMT +2. Ahora son las 19:26:15. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi