Anda di halaman 1dari 20

INTRODUCCIÓN A LA PROGRAMACIÓN DE LOS SISTEMAS INTELIGENTES

HENRY ALEJANDRO CACERES


COD. 084900232018

ANDRES CAMILO VARELA


COD. 084900462018

JUAN DAVID GUZMAN


COD. 084900292018

JUAN CAMILO TOBON


COD. 084900442018

GERMAN HERNANDEZ RENGIFO

MAGISTER EN DIRECCIÓN ESTRATÉGICA EN TECNOLOGÍAS DE LA


INFORMACIÓN, INGENIERO DE SISTEMAS

INSTITUTO DE EDUCACIÓN A DISTANCIA (IDEAD)

INGENIERÍA DE SISTEMAS

PROGRAMACIÓN DE SISTEMAS INTELIGENTES

IBAGUÉ - TOLIMA

2018
INTRODUCCIÓN

Para adentrar al conocimiento de las nuevas tecnologías, que ya no se basan en crear objetos que
realizan una actividad en particular mediante el uso de un listado ordenado de opciones, sino que
puedan ser capaces de aprender el comportamiento de la persona que lo utiliza y ser autónomos
para cumplir ciertas funciones. Esas características son contemporáneas, que deben ser estudiadas
y comprendidas para entender su verdadero potencial, por ello, los conceptos expuestos a
continuación, brindan una explicación concisa. Con el propósito de mejorar la percepción del
alcance de los temas relacionados con los sistemas inteligentes y su beneficio en la utilización
cotidiana.
OBJETIVOS

General

Comprender la diferenciación de los conceptos de sistemas inteligentes.

Específicos

 Crear conocimiento detallado de los sistemas inteligentes.

 Comprender el campo de acción de la computación inteligente.

 Percibir un lenguaje de alto nivel.

 Conocer una plataforma que integra y permite el desarrollo de inteligencia automática.


INTRODUCCIÓN A LA PROGRAMACIÓN DE LOS SISTEMAS INTELIGENTES

Anteriormente y en la actualidad la palabra inteligente se ha venido desenfocando de lo


que en realidad es, ya que a cualquier instrumento u objeto que realice una actividad autónoma le
es llamado sistema inteligente y no es el caso debido a que muchos de estos no cumplen con tres
características muy importantes que son calidad, innovación y sostenibilidad; esto es lo que en
gran parte se constituye un sistema inteligente.

Para efectos de entendimiento de este concepto, se hizo necesario abordar los


planteamientos propuestos por Yepes Piqueras, V. (2017). Este término presenta, como no podía
ser de otra forma, numerosas interpretaciones y tantas más aplicaciones. Es un concepto que se
asocia al diseño digital, a las tecnologías de la información y de la comunicación, la inteligencia
artificial, la prefabricación, los drones, la robotización y automatización, a la innovación y a la
sostenibilidad, entre otros muchos conceptos. Por eso no es correcto denominar algunos sistemas
inteligentes solo porque automatizan las actividades diarias, se debe tener en cuenta la agilidad de
ese sistema, su función principal enfocada en ser innovadora y de calidad.

¿Qué son los sistemas inteligentes?

Es un organismo o ente que, con el paso del tiempo, aprende dependiendo de su


codificación y entorno, acumulando experiencia y que es usada en nuevas situaciones que se le
irán presentando cada vez que avance. En sí, buscan crear posibles soluciones para un problema o
una necesidad, pero no es dar soluciones al azar sino saber identificar características importantes
como la innovación, agilidad, sostenibilidad, calidad y confiabilidad; todo esto es lo que define un
buen sistema inteligente el cual ayuda y brinda soluciones optimas que den por solucionado el
problema.

Para Olmos Pineda, I. (2018). Otra definición bien puede ser: es un programa de
computación que cuenta con características y comportamientos parecidos a los de un humano o
animal, es decir, que cuenta con la capacidad de decidir por sí mismo qué acciones realizará para
alcanzar sus objetivos basándose en sus percepciones, conocimientos y experiencias acumuladas.

Existe un método que es muy efectivo a la hora de aplicar un sistema inteligente el cual es
método constructivo (nuevos productos y nuevos procedimientos constructivos) el objetivo
primordial de este es; mejorar la eficiencia del negocio o proceso, la calidad, una muy importante
que es la satisfacción del cliente, el desempeño medioambiental, la sostenibilidad y cumplimiento
de las reglas y plazos para dicho sistema.

¿Qué es computación inteligente?

De acuerdo con Aguilar, J. (2018). Señala que es la “metodología que frecuentemente es


diseñada para emular uno o más aspectos de los sistemas biológicos o sociales, con el fin de
reproducir sus comportamientos”.

Asimila al ser humano respecto a las decisiones cotidianas que se afrontan y necesitan una
respuesta lógica, entonces es aquí donde se aplica la computación inteligente ya que toma
decisiones sensatas en un entorno impreciso e incierto como lo haría un humano.

Se enfoca en desarrollar e implementar un software para la solución de problemas


utilizando el lenguaje de programación, sistema operativo y arquitecturas adecuadas al entorno
necesario Aplicando el método científico como medio para resolver problemas de las ciencias de
la computación que le permitan comprobar hipótesis sobre comportamientos algorítmicos.

¿Qué es Python?

Para efectos de entender las características y conceptos básicos de Python, nos remontamos
a las ideas planteadas por Severance, C. (2015). Aprender a escribir programas no es una tarea
fácil, pero “es una actividad gratificante y creativa” a la hora de resolver problemas difíciles de
análisis. En nuestra vida diaria nos encontramos rodeados de máquinas o (computadores) hasta
teléfonos móviles que son utilizados como “asistentes personales” capaces de ocuparse de muchas
labores por nosotros. Un programador se encarga de operar un sistema y un conjunto de
aplicaciones en el hardware para así al final tener un asistente personal digital bastante útil y capaz
de ayudarnos a hacer distintas labores diferentes.

La gran cantidad de memoria y rapidez de los equipos hoy en día serían más que útiles si
todos aprendiéramos su lenguaje, comunicarnos con la máquina, así como nos comunicamos con
otras personas. Podríamos pedirle al equipo que realizase un montón de tareas que por lo general
suelen ser repetitivas y aburridas para nosotros.

Normalmente antes de empezar a aprender un lenguaje de programación para desarrollar


software, se necesita aprender acerca de cómo están construidos los equipos:

 La Unidad Central de Procesamiento (o CPU) es quien interpreta las instrucciones de


un programa informático mediante la realización de las operaciones básicas aritméticas,
lógicas y de entrada/salida del sistema.

 La Memoria Principal se usa para almacenar la información que la CPU necesitará


enseguida. La memoria principal es casi tan rápida como la CPU. Pero la información
almacenada en la memoria principal desaparece cuando el equipo se apaga.

 La Memoria Secundaria se utiliza también para almacenar información, pero es mucho


más lenta que la memoria principal.

 Dispositivos de Entrada y Salida son simplemente la pantalla, teclado, ratón, micrófono,


altavoces, touchpad, etc. Son todos los aparatos que utilizamos para interactuar con el PC.

Por ello Python es un lenguaje de programación de alto nivel, con aplicaciones en


numerosas áreas, incluyendo desarrollo web, scripting, computo, científico e inteligencia artificial.
A su vez, es un lenguaje interpretado, lo que significa que cada línea es ejecutada mientras es
introducida.

Variables y expresiones. Una de las características más importantes de un lenguaje de


programación, es la capacidad de manipular variables. Una variable es un nombre que se refiere a
un valor y una sentencia de asignación se encarga de crear nuevas variables y darles un valor, por
ejemplo:

>>> mensaje = 'Y ahora algo completamente diferente'


>>> n = 17

>>> pi = 3.1415926535897931

Los programadores generalmente elijen nombres claves para las variables que tengan
sentido y documenten para qué se usa esa variable. Estos nombres pueden ser largos, pueden tener
tanto letras como números, pero no comenzar con un número. Se pueden utilizar letras mayúsculas,
pero lo ideal es comenzar los nombres de las variables con letra minúscula.

Sentencias. Una sentencia es una unidad de código que el intérprete de en este caso “Python”
puede ejecutar. Cuando se escriben sentencias en un modo interactivo, el intérprete la ejecuta y
muestra el resultado. Un script normalmente contiene una secuencia de sentencias. Si hay más de
una sentencia, los resultados aparecen de uno en uno según se van ejecutando las sentencias. Por
ejemplo, el siguiente script:

print 1

x=2

print x

produce la salida

Operadores y operandos. Representan cálculos como ejemplo la suma o la multiplicación Los


valores a los cuales se aplican esos operadores reciben el nombre de operandos. Los operadores +,
-, *, /, y ** realizan sumas, restas, multiplicaciones, divisiones y exponenciación.

Expresiones. Una expresión es una combinación de valores, variables y operadores. Un valor por
sí mismo se considera una expresión, y también lo es una variable, así que las siguientes
expresiones son todas validas (asumiendo que la variable x tenga un valor asignado) por ejemplo:

17

x + 17
Operador Modulo. El operador módulo trabaja con enteros y obtiene el resto de la operación
consistente en dividir el primer operando por el segundo. En Python, el operador módulo es un
signo de porcentaje (%). La sintaxis es la misma que se usa para los demás operadores.

Comentarios. Los comentarios son más útiles cuando documentan características del código que
no resultan obvias. Es razonable asumir que el lector puede descifrar qué es lo que el código hace;
es mucho más útil explicarle por qué.

Expresiones booleanas. Las expresiones booleanas son aquellas que puede ser verdadera (True)
o falsa (False). True y False son valores especiales que pertenecen al tipo bol (booleano); no son
cadenas.

Un ejemplo usando el operador ==, que compara dos operandos y devuelve True si son
iguales y False en caso contrario:

>>> 8 == 8

True

>>> 12 == 20

False

El operador == es uno de los operadores de comparación; los demás son:

x != y # x es distinto de y

x>y # x es mayor que y

x<y # x es menor que y

x >= y # x es mayor o igual que y

x <= y # x es menor o igual que y

x is y # x es lo mismo que y

x is not y # x no es lo mismo que y


Operadores lógicos. En los operadores lógicos existen tres tipos and (y), or (o), y not (no). El
significado semántico de estas operaciones es similar a su significado en inglés. Por ejemplo,

x >7 and x <15 es verdadero solo cuando x es mayor que 7 y menor que 10.

n%4 == 0 or n%9 == 0 es verdadero si cualquiera de las condiciones es verdadero, es decir,


si el número es divisible por 4 o por 9.

Finalmente, el operador not niega una expresión booleana, de modo que not (x >y) es
verdadero si x >y es falso; es decir, si x es menor o igual que y.

Ejecución condicional. Para algunos programas siempre vamos a necesitar la capacidad de


comprobar condiciones y cambiar el comportamiento del programa de acuerdo con ellas. Las
sentencias condicionales nos proporcionan esa capacidad. La forma más sencilla es la sentencia if:

if x > 0:

print 'x es positivo'

Ejecución alternativa. La sentencia if es la ejecución alternativa, en la cual existen dos


posibilidades y la condición determina cuál de ellas será ejecutada, Tomaremos un pequeño
ejemplo:

if x%4 == 0:

print 'x es par'

else:

print 'x es impar'

Si al dividir x por 4 obtenemos como resto 0, entonces sabemos que x es par, y el programa
muestra un mensaje a tal efecto. Si esa condición es falsa, se ejecuta el segundo conjunto de
sentencias.

Condicionales encadenados. Son condicionales complejas en las que intervengan varias


funciones condicionales dentro de una misma fórmula. Se dice que están anidadas cuando una
función forma parte de la condición o acción de la primera. Además de la función IF, se pueden
encadenar o anidar diversas funciones.
Condicionales anidados. Las estructuras condicionales nos permiten ejecutar una sentencia a
partir de una condición, si ésta condición se cumple, entonces se ejecuta la sentencia en el
programa, en caso de no cumplirse dicha condición, se puede hacer otra condición en el programa
para que se cicle, marque error y vuelva a solicitar la información hasta que se cumpla la
condición, de no validarse la condición en la que los datos ingresados sean correctos o que no
cumplan con la condición establecida en el programa

Captura de excepciones usando try y except. Existen estructuras de ejecución condicional dentro
de Python para manejar este tipo de errores esperados e inesperados, llamadas “try / except”. La
idea de try y except es que, si se sabe que cierta secuencia de instrucciones puede generar un
problema, sea posible añadir ciertas sentencias para que sean ejecutadas en caso de error. Estas
sentencias extras (el bloque except) serán ignoradas si no se produce ningún error.

Depuración. Los “trace back” muestra cuando se produce un error contienen un montón de
información, pero pueden resultar abrumadores. Las partes más útiles normalmente son: Qué tipo
de error se ha producido, y donde ha ocurrido. En general, los mensajes de error te dicen donde se
ha descubierto el problema, pero a menudo no es ahí exactamente donde se ha producido.

Llamadas a funciones. Es cuando se hace una llamada a una función específica la relación entre
los parámetros reales y los formales y ejecuta la función. Los parámetros se asocian normalmente
por posición, aunque, opcionalmente, también se pueden asociar por nombre. Si la función tiene
parámetros formales por omisión, no es necesario asociarles un parámetro real. La llamada a una
función devuelve un resultado que ha de ser recogido, bien asignándolo a una variable del tipo
adecuado, bien integrándolo en una expresión.

Funciones internas. Pueden ser usadas sin necesidad de tener que definirlas previamente. Los
creadores de Python han escrito un conjunto de funciones para resolver problemas comunes y las
han incluido en Python para que las podamos utilizar. Se deben tratar los nombres de las funciones
internas como si fueran palabras reservadas (es decir, evita usar “Max” como nombre para una
variable), además estas funciones no se limitan a buscar en cadenas. Pueden operar con cualquier
conjunto de valores

Funciones de conversión de tipos. Lo que hacen las funciones de conversión de tipos es que
convierten valores de un tipo a otro.
La función int toma cualquier valor y lo convierte en un entero, si puede, o se queja si no
puede:

>>> int ('2')

>>> int ('Hola')

Value Error: invalid literal for int (): Hola

int puede convertir valores en punto flotante a enteros, pero no los redondea; simplemente
corta y descarta la parte decimal:

>>> int (7.99999)

>>> int (-5.3)

-5

Funciones matemáticas. Es un módulo matemático (math), que proporciona la mayoría de las


funciones matemáticas habituales, donde el objeto modulo contiene la función y variables
definidas en el módulo. Para acceder a una de esas funciones, es necesario especificar el nombre
del módulo y el nombre de la función, separados por un punto (también conocido como período).
Este formato recibe el nombre de notación punto.

Añadiendo funciones nuevas. Es una función específica el nombre de una función nueva y la
secuencia de sentencias que se ejecutan cuando esa función es llamada. Una vez definida una
función, se puede reutilizar una y otra vez a lo largo de todo el programa.

Definición y usos. Las definiciones de funciones son ejecutadas exactamente igual que cualquier
otra sentencia, pero su resultado consiste en crear objetos del tipo función. Las sentencias dentro
de cada función son ejecutadas solamente cuando se llama a esa función, y la definición de una
función no genera ninguna salida.

Flujo de ejecución. En el flujo de ejecución siempre comienza en la primera sentencia del


programa. Las sentencias son ejecutadas una por una, en orden de arriba hacia abajo. Las
definiciones de funciones no alteran el flujo de la ejecución del programa, pero recuerda que las
sentencias dentro de una función no son ejecutadas hasta que se llama a esa función.

Parámetros y argumentos. los argumentos son asignados a variables llamadas parámetros,


ejemplo de una función definida por el usuario que recibe un argumento:

def muestra_dos_veces(bruce):

print bruce

print bruce

Esta función asigna el argumento a un parámetro llamado bruce. Cuando la función es


llamada, imprime el valor del parámetro (sea este lo que sea) dos veces.

Funciones productivas y funciones estériles. Las funciones estériles pueden mostrar algo en la
pantalla o tener cualquier otro efecto, pero no devuelven un valor. Si intentas asignar el resultado
a una variable, obtendrás un valor especial llamado None (nada).

Las funciones bien diseñadas a menudo resultan útiles para otros muchos programas. Una
vez que has escrito y depurado una, puedes reutilizarla. Dividir un programa largo en funciones te
permite depurar las partes de una en una y luego ensamblarlas juntas en una sola pieza, al crear
una función nueva te da oportunidad de dar nombre a un grupo de sentencias, lo cual hace a tu
programa más fácil de leer, entender, y depurar.

La sentencia (while). A las personas en general se les dificulta automatizar tareas repetitivas o
realizarlas varias veces sin errores ya que el agotamiento u otras variables pueden afectar el
proceso mientras que las maquinas no, ellas pueden automatizar procesos repetitivos sin ningún
problema y sin errores.

Bucles. Un ejemplo muy claro para los programadores es la constatación de que las instrucciones
del champú: “Enjabone, aclare, repita”, son un bucle infinito, ya que no existe una variable que
diga cuantas veces deba ejecutarse el proceso por ende este estará trabajando sin fin alguno.

Finalizar iteraciones con (continue). Cuando se está en un bucle es necesario terminar con la
iteración actual y pasar a la siguiente de forma rápida. En un problema como este se puede utilizar
la sentencia (continue) para saltar a la siguiente iteración sin terminar la ejecución del bucle.
Bucles definidos usando (for). Es sin duda también un ciclo sin fin, pero este para terminar debe
cumplir una condición, por ejemplo; seguir el ciclo hasta que se digite la palabra fin, esa condición
ya nos da una salida del bucle que fue definido.

Diseños de bucles. Es muy usual usar un bucle for o while para buscar atreves de una lista de
elementos y ubicarnos en los datos como el valor más grande o el más pequeño de los datos que
estamos revisando.

Cadenas. Es una secuencia de caracteres. En los cuales se puede acceder de uno en uno con el
operador corchete.

Len. Es utilizado para obtener la longitud de una cadena, es una función interna que devuelve el
número de caracteres de una cadena.

El operador in. Es un operador booleano el cual realiza la función de tomar dos cadenas y
devolver true (verdadero) si la primera aparece como subcadena dentro de la segunda.

Métodos de cadenas. Las cadenas son un claro ejemplo de objetos en Python. Es decir que
contiene tanto datos (la misma cadena) como métodos, son funciones las cuales se construyen
dentro de los propios objetos. Python tiene una función muy útil la cual es (dir) que lista os métodos
disponibles para un objeto. Otra función es (type) la cual muestra el tipo de cualquier objeto y (dir)
muestra los métodos disponibles.

Instalación. A finales de 2016 se produjo el lanzamiento de Python 3.6, para su instalación


debemos:

1. Desde el sitio oficial, descargar el instalador Python 3.6 de 32 o 64 bit para Windows.
2. Se inicia la instalación ejecutando el archivo. Si es necesario, confirmar permisos de
administrador.

3. Una vez iniciado el instalador, en la ventana activar las casillas de las opciones: Install
launcher for all users (recommended) y Add Python 3.6 to PATH. Después, seleccionar
la opción Install Now.

4. A continuación, después de unos segundos de espera, comenzará el proceso de


instalación de Python.
5. Una vez que ha concluido el proceso de instalación hacer clic en el botón “Close”.

6. Para probar Python acceder a la línea de comandos ejecutando símbolo del sistema
“CMD”. Después, escribir "Python" y dar “Enter” para iniciar el entorno interactivo de
Python, siendo posible la introducción de comandos Python.

¿Qué es Anaconda Distribution?

Primero que todo se sabe que es la recopilación de código abierto que abarca una cadena
de conceptos, librerías y aplicaciones delineados para el desarrollo con Python y así mismo es una
distribución de Python que trabaja como un administrador de ambientes, un delegado de paquetes
y que tiene una colección en aumento de paquetes de código abierto.

Anaconda Distribution se constituye en 4 soluciones tecnológicas, todas estas se instalan


de forma automática y en un procedimiento muy sencillo: Anaconda Navigator, Anaconda Project,
Las librerías de Ciencia de datos y Conda.
Como lo manifiestan en Anaconda Distribution: La suite más completa para la ciencia de
datos con Python (2018). Se describen:

Características de Anaconda Distribution. Esta suite para la ciencia de datos con


Python cuenta con una gran cantidad de características entre las que podemos resaltar las
siguientes:

 Libre, de código abierto, con una documentación bastante detallada y una gran
comunidad.

 Multiplataforma (Linux, macOS y Windows).

 Permite instalar y administrar paquetes, dependencias y entornos para la ciencia de datos


con Python de una manera muy sencilla.

 Ayuda a desarrollar proyectos de ciencia de datos utilizando diversos IDE como Jupyter,
JupyterLab, Spyder y RStudio.

 Cuenta con herramientas como Dask, numpy, pandas y Numba para analizar Datos.

 Permite visualizar datos con Bokeh, Datashader, Holoviews o Matplotlib.

 Una gran variedad de aplicaciones relacionadas con el aprendizaje de máquina y los


modelos de aprendizaje.

 Anaconda Navigator es una interfaz gráfica de usuario GUI bastante sencilla, pero con
un potencial enorme.

 Puede gestionar de manera avanzada paquetes relacionados a la Ciencia de datos con


Python desde la terminal.

 Brinda la posibilidad de acceder a recursos de aprendizaje más avanzados.

 Elimina problemas de dependencia de paquetes y control de versiones.

 Está equipado de herramientas que permiten crear y compartir documentos que contienen
código con compilación en vivo, ecuaciones, descripciones y anotaciones.

 Permite compilar Python en código de máquina para una ejecución rápida.


 Facilita la escritura de complejos algoritmos paralelos para la ejecución de tareas.

 Cuenta con soporte para computación de alto rendimiento.

 Los proyectos son portables, lo que permite compartir proyectos con otros y ejecutar
proyectos en diferentes plataformas.

 Simplifica de manera acelerada la implementación de proyectos de ciencia de datos.

Instalación. Antes de realizar la instalación de anaconda es necesario tener Python 3.6 en


el equipo.

1. Dependiendo de la arquitectura y clase de sistema operativo, se descarga el archivo.

2. Luego de descargar el archivo se ejecuta, presionar “next” y aceptar los términos y


condiciones.

3. Marcar si la instalación solo será para el usuario actual o para los demás que existan en
el PC.
4. Indicar la carpeta de destino de la instalación y presionar “next”.

5. Esperar a que finalize la instalación y ejecutar Anaconda.


CONCLUSIONES

 La temática sobre sistemas inteligentes aborda un gran número de definiciones, que se


basan de acuerdo con diferentes puntos de vista.

 El material de estudio es de fácil acceso y con una cantidad amplia de resultados, tanto
documentación escaneada de libros físicos como blogs, páginas web y repositorios.

 Los sistemas inteligentes serán la vanguardia del futuro que se avecina.

 Los futuros ingenieros de sistemas se desempeñarán mayormente en la computación


inteligente, con apoyo de suite como anaconda y lenguajes de programación como Python.
REFERENCIAS

 Sistemas inteligentes El blog de Víctor Yepes. (2017). Recuperado de


http://victoryepes.blogs.upv.es/tag/sistemas-inteligentes/

 Iván Olmos Pineda (2018). Recuperado de


https://www.cs.buap.mx/~iolmos/ia/Sesion1_Introduccion.pdf

 Sistemas inteligentes: definición y concepto. (2018). Recuperado de


https://g9tics.wordpress.com/2011/11/06/sistemas-inteligentes-definicion-y-concepto/

 José Aguilar (2018). Recuperado de http://www.ing.ula.ve/~aguilar/actividad-


docente/Seminario/transparencias/rna1.pdf

 Severance, C. (2015). Python para informáticos. Ann Arbor: Charles Severance.

 Instalación de Python, p. (2018). Instalación de Python, paso a paso. Recuperado de


https://python-para-impacientes.blogspot.com/2017/02/instalar-python-paso-paso.html

 Anaconda Distribution: La Suite más completa para la Ciencia de datos con Python. (2018).
Recuperado de https://blog.desdelinux.net/ciencia-de-datos-con-python/

 Solis, J., & perfil, V. (2018). Como instalar Anaconda en Windows 10 para programar en
Python. Recuperado de http://cicutp.blogspot.com/2017/12/como-instalar-anaconda-en-
windows-10.html

Anda mungkin juga menyukai