Enriquerubio.net El blog del Dr. Enrique Rubio

9 marzo 2020

ALGORITMO . Ejemplos de modelos computacionales

Filed under: Ordenador — Enrique Rubio @ 19:56

ALGORITMO

Conjunto ordenado de operaciones sistemáticas que permite hacer un cálculo y hallar la solución de un tipo de problemas.
El manejo del ordenador es todavía difícil por lo menos para los mayores que aún tienen dificultad para el manejo de funciones complicadas en el PC, utilizan el ordenador a diario, pero no suelen salirse, de escribir cartas, ver el correo, ver películas y ya es más raro que utilicen, bases de datos u hojas de cálculo. Pero el ordenador ha venido para quedarse y con mayor o menor esfuerzo será la llave de la comunicación no en el futuro si no desde ya, porque los mayores estamos muy ansiosos de conocer en mayor profundidad las facultades de un PC.
Hace unos días junto a un Profesor egregio, aprendimos cómo utilizar el PC para reconocer la voz, nos costó Dios y ayuda, pero lo conseguimos. Entre escribir un largo documento o dictarlo al ordenador, existe una marcada diferencia y un gran ahorro de trabajo.
Sugiero, que se simplifique el uso del ordenador y podamos utilizar más sus posibilidades que nos beneficiarían, ahorran trabajo y al mismo tiempo nos enriquecerían.
Creo que es importante conocer con precisión los términos indispensables para el uso de estas máquinas.
Empezaremos por saber lo que es un algoritmo, fundamental e imprescindible para entender la programación de un ordenador.
El algoritmo lo conocemos desde tiempos inmemoriales, Conjunto ordenado de operaciones sistemáticas que permite hacer un cálculo y hallar la solución de un tipo de problemas. Siempre que pretendemos algo utilizamos una fórmula para conseguirlo. Una simple multiplicación tiene unos pasos precisos que permiten unos resultados exactos, y lo mismo cuando se hace un algoritmo para una programación en el ordenador, salvo que es más complicado y con informaciones más numerosas y concretas.

La palabra algoritmo viene del árabe, y se debe al matemático Al-Khwarizmi, que nació en la Edad Media en una de las zonas de lo que hoy se conoce como Uzbiekistán, en Asia central. Según los expertos en matemática, los algoritmos permiten trabajar a partir de un estado básico o inicial y, tras seguir los pasos propuestos, llegar a una solución. Cabe resaltar que, si bien los algoritmos suelen estar asociados al ámbito matemático (ya que permiten, por citar casos concretos, averiguar el cociente entre un par de dígitos o determinar cuál es el máximo común divisor entre dos cifras pertenecientes al grupo de los enteros), aunque no siempre implican la presencia de números.

Para hacer un algoritmo tiene que diseñarse de forma precisa.

Tiene que estar bien definido.
Tiene que ser preciso.
Tiene que ser finito.
La programación es adaptar el algoritmo al ordenador
El algoritmo es independiente según donde lo implemente.
Cada paso del algoritmo debe estar bien definido: Esto significa que la definición de un paso debe ser suficientemente clara, para que una persona pueda entenderla y realizarla. Si bien no se puede dar un criterio determinístico para decidir si un paso está bien definido, debemos apelar al sentido común para decidir que un paso está especificado sin ambigüedades.
Un algoritmo debe tener un principio y un fin: Un programa es un algoritmo escrito con un objetivo: conseguir un resultado. No tiene sentido crear un programa que espere ~ segundos (infinitos segundos) y luego escriba en pantalla «Hola Mundo!», del mismo modo que un algoritmo debe tener un principio bien definido (tampoco tiene sentido el algoritmo «haz nada, y luego escribe Hola Mundo!»)
:
Cada paso del algoritmo debe estar bien definido: Esto significa que la definición de un paso debe ser suficientemente clara, para que una persona pueda entenderla y realizarla. Si bien no se puede dar un criterio determinístico para decidir si un paso está bien definido, debemos apelar al sentido común para decidir que un paso está especificado sin ambigüedades.
Un algoritmo debe tener un principio y un fin: Un programa es un algoritmo escrito con un objetivo: conseguir un resultado.
Modelos computacionales[
Un modelo computacional es un modelo matemático en las ciencias de la computación que requiere extensos recursos computacionales para estudiar el comportamiento de un sistema complejo por medio de la simulación por computadora. El sistema bajo estudio es a menudo un sistema complejo no lineal para el cual las soluciones analíticas simples e intuitivas no están fácilmente disponibles. En lugar de derivar una solución analítica matemática para el problema, la experimentación es hecha con el modelo cambiando los parámetros del sistema en la computadora, y se estudian las diferencias en el resultado de los experimentos. Las teorías de la operación del modelo se pueden derivar/deducir de estos experimentos de computacionales.
Ejemplos de modelos de computacionales comunes son modelos de el pronóstico del tiempo, modelos del Earth Simulator, modelos de simulador de vuelo, modelos de plegamiento molecular de proteínas, y modelos de red neuronal.
Se considera a los algoritmos al conjunto de pasos ordenados, que permiten resolver un problema bajo una secuencia lógica, es decir, que tenga inicio y fin (sentido concreto).
Programas: Algoritmos para ser ejecutados por un ordenador
Un ordenador o computadora está, desde que se enciende hasta que se apaga totalmente, ejecutando un algoritmo. Por lo general, estos algoritmos, escritos para que los entienda una máquina, terminan siendo vagos y confusos para la mayoría de quienes no han estudiado programación. Una máquina no puede entender «escribe Hola Mundo!» porque no sabe lo que es «escribe» ni lo que es una letra o un espacio, ni lo que es una pantalla. En cambio, puede entender «mov eax, 0x23afb31» (escribir en el registro eax el número 0x23afb31), aunque nosotros no. Un ordenador es solo un circuito electrónico, no funciona a base de magia ni nada por el estilo.
Debido a lo dificil que es escribir en lenguaje máquina, e incluso en ensamblador, se crearon diferentes lenguajes de programación, más o menos parecidos al inglés actual y a cómo se redacta un algoritmo. Estos lenguajes proveen de cosas tan complejas para una máquina como los bucles for. Los compiladores se encargan de traducir esos ficheros al lenguaje ensamblador que corresponda, el ensamblador de traducirlos a lenguaje máquina y el enlazador de juntar todo ese código máquina en un solo archivo, el programa. Y el microprocesador, se encarga de ir encendiendo o apagando transistores según lo que le diga el código máquina. Es facil entender el lenguaje de alto nivel en comparacion al lenguaje maquina pero de la evolucion surgieron.
Modelos computacionales[
Un modelo computacional es un modelo matemático en las ciencias de la computación que requiere extensos recursos computacionales para estudiar el comportamiento de un sistema complejo por medio de la simulación por computadora. El sistema bajo estudio es a menudo un sistema complejo no lineal para el cual las soluciones analíticas simples e intuitivas no están fácilmente disponibles. En lugar de derivar una solución analítica matemática para el problema, la experimentación es hecha con el modelo cambiando los parámetros del sistema en la computadora, y se estudian las diferencias en el resultado de los experimentos. Las teorías de la operación del modelo se pueden derivar/deducir de estos experimentos de computacionales.
Ejemplos de modelos de computacionales comunes son modelos de el pronóstico del tiempo, modelos del Earth Simulator, modelos de simulador de vuelo, modelos de plegamiento molecular de proteínas, y modelos de red neuronal.
Se considera a los algoritmos al conjunto de pasos ordenados, que permiten resolver un problema bajo una secuencia lógica, es decir, que tenga inicio y fin (sentido concreto).
Programas: Algoritmos para ser ejecutados por un ordenador
Un ordenador o computadora está, desde que se enciende hasta que se apaga totalmente, ejecutando un algoritmo. Por lo general, estos algoritmos, escritos para que los entienda una máquina, terminan siendo vagos y confusos para la mayoría de quienes no han estudiado programación. Una máquina no puede entender «escribe Hola Mundo!» porque no sabe lo que es «escribe» ni lo que es una letra o un espacio, ni lo que es una pantalla. En cambio, puede entender «mov eax, 0x23afb31» (escribir en el registro eax el número 0x23afb31), aunque nosotros no. Un ordenador es solo un circuito electrónico, no funciona a base de magia ni nada por el estilo.
Debido a lo dificil que es escribir en lenguaje máquina, e incluso en ensamblador, se crearon diferentes lenguajes de programación, más o menos parecidos al inglés actual y a cómo se redacta un algoritmo. Estos lenguajes proveen de cosas tan complejas para una máquina como los bucles for. Los compiladores se encargan de traducir esos ficheros al lenguaje ensamblador que corresponda, el ensamblador de traducirlos a lenguaje máquina y el enlazador de juntar todo ese código máquina en un solo archivo, el programa. Y el microprocesador, se encarga de ir encendiendo o apagando transistores según lo que le diga el código máquina. Es facil entender el lenguaje de alto nivel en comparacion al lenguaje maquina pero de la evolucion surgieron.

Es un modelo matemático que se usa en las ciencias de la computación y que requiere extensos conocimientos de computación para estudiar el comportamiento de un sistema complejo por medio de la simulación por computadora.
El sistema bajo estudio es a menudo un sistema complejo no lineal para el cual las soluciones analíticas simples e intuitivas no están fácilmente disponibles. En lugar de derivar una solución analítica matemática para el problema, la experimentación es hecha con el modelo cambiando los parámetros del sistema en la computadora, y se estudian las diferencias en el resultado de los experimentos. Las teorías de la operación del modelo se pueden derivar/deducir de estos experimentos de computacionales.
Ejemplos de modelos de computacionales comunes son modelos de el pronóstico del tiempo, modelos del Earth Simulator, modelos de simulador de vuelo, modelos de plegamiento molecular de proteínas, y modelos de red neuronal.
El mismo ordenador desde que se conecta hasta que se paga, lo hace a través de un algoritmo y tienen que estar escritos para que lo entienda a máquina y son vagos y confusos para la mayoría de quienes no han estudiado programación.
Una máquina no puede entender «escribe viva tiberio !» porque no sabe lo que es escribe» ni lo que es una letra o un espacio, ni lo que es una pantalla. En cambio, puede entender una serie de órdenes que convierte su escrito en un lenguaje del entiendana la máquina. “ lenguaje máquina”
Debido a lo dificil que es escribir en lenguaje máquina, e incluso en ensamblador, se crearon diferentes lenguajes de programación, más o menos parecidos al inglés actual y a cómo se redacta un algoritmo. Estos lenguajes proveen de cosas tan complejas para una máquina como los bucles for. Los compiladores se encargan de traducir esos ficheros al lenguaje ensamblador que corresponda, el ensamblador de traducirlos a lenguaje máquina y el enlazador de juntar todo ese código máquina en un solo archivo, el programa. Y el microprocesador, se encarga de ir encendiendo o apagando transistores según lo que le diga el código máquina. Es facil entender el lenguaje de alto nivel en comparacion al lenguaje maquina pero de la evolucion surgieron.
Lenguaje de máquina
Cada tipo de microprocesador contiene un conjunto de instrucciones que realizan ciertas operaciones sobre una o más palabras de bits; las instrucciones van también codificadas en bits. No queremos hacer aquí una discusión sobre arquitectura de ordenadores, por lo que con esto debe valer por ahora.
Se entiende que escribir sólo con dos teclas, el 0 y el 1, es incómodo. Históricamente, a la hora de diseñar un algoritmo para que el ordenador ejecutara, se escribía mediante unas etiquetas memotécnicas; éste fue el origen del lenguaje ensamblador.

Por ejemplo quizás en una cierta arquitectura la instrucción de borrado de memoria (Memory Clear, en inglés) corresponda al código 010. Pronto surgieron programas que leían, siguiendo el ejemplo, MC, y lo sustituían por 010.
Lenguaje ensamblador
El código máquina tenía dos grandes inconvenientes para los programadores:
las instrucciones eran difíciles de recordar, ya que no guardaban relación con la operación que se está realizando.
puede haber, y de hecho hay, diferencias entre las instrucciones de un procesador a otro.
Todo esto ha llevado a «poner nombre» a las instrucciones de código máquina de manera que a una secuencia concreta de bits que realiza una operación se le pone un nombre sencillo que identifique la operación. Esta traducción a un lenguaje más sencillo para las personas resulta en una mayor comodidad para el programador, además el proceso de traducción inverso de lenguaje ensamblador a código máquina puede ser realizado por un sencillo programa.
Programación para seres humanos
Lenguajes de alto nivel
Sobre este lenguaje ensamblador inicial se fueron construyendo otros lenguajes de programación de más alto nivel; esto significa que ocultan ciertos aspectos de manera que el programador no se ha de preocupar sobre si en la máquina que quiere que se ejecute el algoritmo el MC corresponde a la instrucción 101 o 010. Se produce, por tanto, una abstracción de datos, muy deseable para poder utilizar el trabajo de otros para avanzar un paso más en vez de tener que «reinventar la rueda», como se suele decir. Estos textos en los que se codifican los algoritmos son los códigos fuente; siguen las reglas sintácticas de un determinado lenguaje de programación. Existen numerosos lenguajes de programación, y se utiliza uno u otro según sus características se adecúen más o menos a la resolución de nuestro problema.
Traductores e intérpretes
Tras la escritura del algoritmo, un compilador o un intérprete (otros programas) transformarán el texto en código máquina que el procesador es capaz de ejecutar.
Toda esta abstracción permite resolver problemas alejados de sumar números binarios, como pueden ser la consulta de esta misma enciclopedia o jugar a un videojuego en 3D.
Lenguajes interpretados vs. lenguajes compilados
Los lenguajes interpretados son como respuesta a la dificultad de manejo de los compilados. Un lenguaje compilado es sólo apto para un sistema operativo o formato de ejecutable (en GNU/Linux y Unix System V es ELF, en Windows o incluso en BSD es muy diferente), y es tedioso de manejar: para comprobar bugs o errores el computador debe:
Compilar cada uno de los ficheros de código.
Ensamblarlos en ficheros objeto.
Enlazar los ficheros objeto.
Volverlos a ensamblar.
Todo eso no es gran derroche de recursos para un ordenador medio actualmente, pero dura sus 10 o 15 segundos. En cambio, con un lenguaje interpretado, el programa intérprete analiza el fichero de código y lo va ejecutando en tiempo real, sin compilarlo ni ensamblarlo. Otra de las ventajas de los lenguajes interpretados es que son multiplataforma: un programa en Perl, por ejemplo, no debe ser compilado dos veces (una para Unix y otra para Windows). Con que haya diferentes versiones del intérprete en cada uno de esos ordenadores, específicamente compilados para ellos, basta.
Sus desventajas:
Consume muchos recursos de memoria, sobre todo RAM.
Se depende del intérprete: si no tienes instalado el intérprete que corresponda, no podrás ejecutar el programa.
Ejemplos de lenguajes interpretados son PHP, Perl, Python, Tcl/Tk, BASIC, LISP (en algunas de sus versiones)…

18 mayo 2019

INTELIGENCIA ARTIFICIAL 2

Filed under: General,Ordenador — Enrique Rubio @ 20:26

La utilidad de inteligencia artificial es todavía teórica, y aplicable sólo a países con alto poder adquisitivo.
Llevamos décadas de progreso en la salud mundial, pero muchos países de ingresos bajos y medios no están alcanzando sus Objetivos de Desarrollo Sostenible para la salud, lo que crea un sentido de urgencia para priorizar la salud en entornos con recursos limitados. No cabe duda de que el uso de la inteligencia artificial (I la) es cada vez más atractivo para la industria de la salud. Pero nuestro entusiasmo es todavía más aspiración que realidad.

En abril de 2019, Inteligencia Artificial en Salud Global , y la Fundación Rockefeller, en estrecha coordinación con la Fundación Bill y Melinda Gates, financiaron un trabajo, que analiza 27 casos de uso de inteligencia artificial en el cuidado de la salud.
Esta dividido en cuatro grupos clave:
1. salud de la población,
2. asistentes virtuales de pacientes
3. y personal de salud de primera línea,
4. y apoyo de decisiones clínicas de médicos.

Plantea la hipótesis de cómo las soluciones de AI podrían mejorar el acceso, la calidad y la eficacia de los sistemas de salud mundiales al tiempo que explican su madurez y viabilidad tecnológica.

Los desafíos más altamente volátiles que son la privacidad, la ética y la propiedad de los datos, están en línea con los debates recientes sobre regulación y política para la implementación de la tecnología de IA en la asistencia sanitaria. Para mitigar estos desafíos, las partes interesadas deberían ser responsables y transparentes, ya sea para apoyar la innovación, la interoperabilidad o el desarrollo de capacidades.
El informe establece el marco para un enfoque proactivo y estratégico para acelerar el desarrollo de un uso rentable de la IA en la salud mundial mediante la inversión en áreas clave relacionadas con la tecnología, específicas de cada caso.
Este informe describe un marco aspiracional pero pragmático para una mejor coordinación para la inversión de AI entre los donantes, los gobiernos y el sector privado, a la vez que aprovecha una visión futurista: la digitalización de la salud mundial. Debido a que la rentabilidad de estas soluciones de AI aún no se ha validado, el llamado a la inversión se siente algo prematuro.
Tradicionalmente, la comunidad mundial de la salud es un adoptador tardío de nuevas tecnologías. Por lo tanto, es imperativo que tengan un papel integral y activo en el diálogo desde el principio. Como este informe estipula con razón, la tecnología llegará allí, pero ¿seguirá el mundo?.

ENGLIST

1. Despite decades of progress in global health, many low-and middle-income countries are not achieving their goals of sustainable health development, creating a sense of urgency in prioritizing health in resource-constrained settings. The use of Artificial intelligence (AI) is becoming more and more attractive to the health industry. The enthusiasm that accompanies it remains uncomfortably situated somewhere between aspiration and reality.
2. The Global Health Artificial Intelligence report , published on April 1, 2019, was funded by USAID’s Center for innovation and Impact and the Rockefeller Foundation, in close coordination with the Bill and Melinda Gates Foundation. The report analyses 27 cases of use of artificial intelligence in health care and divides them into four key groups: population health, virtual patient assistants and front-line health personnel, and clinical decision support from physicians. It raises the hypothesis of how AI’s solutions could improve the access, quality and effectiveness of global health systems while explaining their maturity and technological viability. The identified challenges, the most highly volatile ones that are privacy, ethics and data ownership, are in line with recent debates on Regulation AND policy for implementing AI technology in assistance Health. To mitigate these challenges, stakeholders should be accountable and transparent, either to support innovation, interoperability, or capacity-building. The report establishes the framework for a proactive and strategic approach to accelerating the development of a profitable use of AI in global health through investment in key technology-related areas, specific to each case.
3. This report describes a aspirational but pragmatic framework for better coordination for AI investment among donors, governments and the private sector, while taking advantage of a futuristic vision: the digitization of global health. Because the profitability of these AI solutions has not yet been validated, the call for investment feels somewhat premature. Traditionally, the World health community is a belated adopter of new technologies. It is therefore imperative that they have an integral and active role in the dialogue from the outset. As this report rightly stipulates, the technology will come there, but will the world continue?
Copyright © 2019 Caiaimage/Rana Dias/Getty Images
Published: April 13, 2019
IDOI: https://doi.org/10.1016/S0140-6736 (19) 30814-1

8 enero 2017

CEREBRO Y EL ORDENADOR.

Filed under: FUNCIONES PSIQUICAS,Ordenador — Enrique Rubio @ 22:08

El Padre de la psicología evolutiva, Abraham Maslow formuló una teoría en que las necesidades humanas se han establecido de manera jerárquica y a medida que se van satisfaciendo las necesidades básicas, el ser humano desarrolla necesidades y deseos más elevados.
El hombre es el creador del ordenador, esta máquina tan útil y tan criticada que nos hace la vída más fácil y que sin duda alguna nos ha cambiado nuestra manera de vivir. Después de la revolución industrial, aparecido el ordenador.que revoluciono el mundo, y que modificara el futuro sin duda, para bien y también para mal.
La idea es conocer el ordenador que tiene funciones y localizaciones concretas en los parámetros que baraja, y compararlos con el cerebro.
Esto es enfrentarse con un monstruo de dos cabezas. “El cerebro y la mente”. Y “el Ordenador”. Donde de manera ilusooria podríamos decir que su equivalente es el hardware y el software
El proyecto de este trabajo, es utilizando la llamada pirámide de Maslow como expresión de la psicología evolutiva. Ver si es posible explicar por la evolución del ordenador que estamos viviendo, estandarizar funciónes cómo hace el cerebro. De las funciones elementales hasta la mente.
Es muy posible que partamos del error y esto no sea posible. Pero si es cierto que los ordenadores cuánticos que ya son una realidad podrán acercarnos a encontrar una analogía entre “el cerebro una máquina biológica de pensar” y” el ordenador una máquina mecánica pero que también piensa”.
Intentemos de entrada diferenciar las condiciones fundamentales que diferencian al cerebro y al ordenador.

Vamos hacer una síntesis en principio y después iremos desarrollando cada uno de los puntos.
1.- El cerebro es analógico y la computadora digital
2.- Al considerar que las neuronas tienen una actuación binaria, se pensó que tenían una acción lineal combinada. Pero esto es incierto. La memoria es de contenidos direcciónables. Es decir a través de conceptos cercanos. Mientras que la computadora se accede a la información de manera exacta
3.-El cerebro es paralelo mientras que la computadora el serial. La computadora tiene áreas concretas para memoria y otras funciones pero en el cerebro es todo es más complejo. Las neuronas que actúan el proceso de memoria están dispersas y no ubicadas en un lugar concreto
4.- El tiempo en el cerebro depende la actividad electroquímica, mientras que en el ordenador es eléctrica. La computadora posee un relevo y las señales actúan en un tiempo preciso.
5.- La memoria a corto plazo no es como la memoria RAM. La memoria a corto plazo estar relacionada el con información que nos llegan desde largo plazo. Mientras que la memoria RAM bueno ha colocado estado en una noche actúa en el ego tiempo que está en el disco duro.
6.-No se puede hacer una distinción en el cerebro entre software y hardware. Mientras que el computador esto es preciso. Decir que el cerebro es el a Hardware y la mente el software, no es posible, ya que todo cambió de la mente lleva un cambio en el cerebro. La mente emerge directamente del cerebro.
7.- La sinapsis es más compleja que el proceso eléctrico. Los impulsos nerviosos son electro químicos y caminan mucho más lentos.
8.- En el cerebro la memoria y su procesamiento se realizan en la misma zona mientra que en s una computadora, son cosa diferente en regiones diferentes.
9.- El cerebro es un sistema auto organizado, puede curarse y modificarse asimismo y realizar varias tareas al mismo tiempo. Mientras en ordenador cada pieza funciona por separado dividiendo las tarea.
10.- El cerebro tiene idea de la espacialidad y el tamaño del tamaño de los objetos y nos brinda esta información en cuestión de segundos. Mientras que el ordenador no tiene esta habilidad

Powered by WordPress