Caja de herramientas de inteligencia artificial para la academia y la investi...
Unidad 1
1.
2. ¿CÓMO IDENTIFICAR UN PROBLEMA?
No podemos llegar a la solución satisfactoria de un
problema si no hacemos primero el esfuerzo por
conocer razonablemente dicho problema. El punto de
partida para solucionar un problema es identificarlo
adecuadamente.
Un problema no es la ausencia de una solución y por
tanto su definición no debe hacerse anotando la falta
de algo, sino las manifestaciones negativas de un
estado.
Generalmente los problemas se hacen evidentes por
sus expresiones o manifestaciones externas, por la
forma como afectan a una comunidad. Un problema se
refiere a una situación que denota
inconveniencia, insatisfacción, o un hecho negativo.
3. 1.1. IDENTIFICAR EL PROBLEMA
¿QUÉ ES UN PROBLEMA?
La determinación del problema es una operación mediante la cual se especifica claramente y
de un modo concreto sobre qué se va a realizar la investigación. Es el punto inicial de la
cadena: Problema- Investigación- Solución; por tanto, determinará toda la posterior
proyección de la investigación se debe tener en cuenta:
El problema, responde al ¨ POR QUE¨, de la Investigación lo podemos definir como la
situación propia de un objeto, que provoca una necesidad en un sujeto, el cual desarrollará
una actividad para transformar la situación mencionada.
El problema es objetivo en tanto es una situación presente en el objeto; pero es subjetivo,
pues para que exista el problema, la situación tiene que generar una necesidad en el sujeto.
Cualquier problema científico es consecuencia del desconocimiento de la existencia, en una
esfera de la realidad, de elementos y relaciones de dicha realidad objetiva. El planteamiento
del problema científico es la expresión de los límites del conocimiento científico actual que
genera la insatisfacción de la necesidad del sujeto.
4. 1.1. IDENTIFICAR EL PROBLEMA
ANALISIS DE LOS PROBLEMAS
Se sugiere la elaboración del Árbol de Problemas, para cada problema
detectado en la Fase anterior.
Descripción del Problema: ¿Cómo se manifiesta el problema? Las
manifestaciones constituyen los hechos visibles y cuantificables que permiten
constatar o corroborar la existencia del problema. Éstas surgen al responder la
pregunta ¿Cuáles son los hechos que permiten verificar la existencia del
problema?
Causas: Se explica el origen del problema. Para ello conviene responder a la
siguiente pregunta: ¿Cuáles son los hechos, situaciones o factores que
producen los resultados insatisfactorios que denominamos manifestaciones? El
número de causas varía de un problema a otro, lo importante es que las
causas sean las suficientes y necesarias para explicar el problema.
Consecuencias: Los hechos o situaciones que describen el impacto que genera el problema sobre otros
problemas, se les denomina consecuencias. La identificación de las consecuencias de un problema, permite ratificar
o validar la importancia del mismo.
Involucrados: Se describen las personas afectadas por el problema y en algunos casos los causantes del mismo.
5. 1.2. ANÁLISIS DEL PROBLEMA
Cuando un usuario plantea a un programador un problema que resolver mediante
su ordenador, por lo general ese usuario tendrá conocimientos más o menos amplios
sobre el dominio del problema, pero no es habitual que tenga conocimientos
de informática. Por ejemplo, un contable que necesita un programa para llevar la
contabilidad de una empresa será un experto en contabilidad (dominio del problema),
pero no tiene por qué ser experto en programación.
Del mismo modo, el informático que va a resolver un determinado problema puede ser un
experto programador, pero en principio no tiene por qué conocer el dominio del
problema; siguiendo el ejemplo anterior, el informático que hace un programa no tiene
por qué ser un experto en contabilidad.
Por ello, al abordar un problema que se quiere resolver mediante un ordenador, el
programador necesita de la experiencia del experto del dominio para entender el
problema. Al final, si se quiere llegar a una solución satisfactoria es necesario que:
El problema esté bien definido con el máximo detalle
Las especificaciones de las entradas y salidas del problema, deben ser descritas también en
detalle:
¿Qué datos son necesarios para resolver el problema?
¿Qué información debe proporcionar la resolución del problema?
6. 1.3. ELABORAR ALGORITMOS DE LA
SOLUCIÓN DEL PROBLEMA
Un algoritmo consiste en una especificación clara y concisa de los pasos necesarios
para resolver un determinado problema, pero para poder diseñar algoritmos es
necesario disponer de una notación, que llamaremos ‘notación algorítmica’, que
permita:
Describir las operaciones puestas en juego (acciones, instrucciones, comandos,...)
Describir los objetos manipulados por el algoritmo (datos/informaciones)
Controlar la realización de las acciones descritas, indicando la forma en que estas se
organizan en el tiempo
Para poder describir cualquier tipo de acción de las que intervienen en un
algoritmo, diversos autores proponen el uso de un conjunto de construcciones
lógicas (secuencia, decisión e iteración) con las que es posible escribir
cualquier programa. Lo que sigue a continuación es la descripción de las diferentes
construcciones disponibles para el diseño de algoritmos.
7. 1.4. ELABORAR DIAGRAMAS DE FLUJO
DE LA SOLUCIÓN DEL PROBLEMA
Los diagramas de flujo son una manera de representar visualmente el flujo de datos a travéz de
sistemas de tratamiento de información. Los diagramas de flujo describen que operaciónes
y en que secuencia se requieren para solucionar un problema dado.
Un diagrama de flujo u organigrama es una representación diagramática que ilustra la
secuencia de las operaciones que se realizarán para conseguir la solución de un problema.
Los diagramas de flujo se dibujan generalmente antes de comenzar a programar el código
frente a la computadora. Los diagramas de flujo facilitan la comunicación entre los
programadores y la gente del negocio. Estos diagramas de flujo desempeñan un papel vital
en la programación de un problema y facilitan la comprensión de problemas complicados y
sobre todo muy largos. Una vez que se dibuja el diagrama de flujo, llega a ser fácil escribír
el programa en cualquier idióma de alto nivel. Vemos a menudo cómo los diagramas de
flujo nos dan ventaja al momento de explicar el programa a otros. Por lo tanto, está
correcto decir que un diagrama de flujo es una necesidad para la documentación mejor de
un programa complejo.
8. 1.4. ELABORAR DIAGRAMAS DE FLUJO
DE LA SOLUCIÓN DEL PROBLEMA
Los Diagramas de flujo se dibujan generalmente usando algunos símbolos estándares; sin
embargo, algunos símbolos especiales pueden también ser desarrollados cuando séan
requeridos. Algunos símbolos estándares, que se requieren con frecuencia para diagramar
programas de computadora se muestran a continuación:
9. 1.4. ELABORAR DIAGRAMAS DE FLUJO
DE LA SOLUCIÓN DEL PROBLEMA
Inicio o fin del
programa
Pasos, procesos o líneas de
instruccion de programa de
computo
Operaciones de entrada y
salida
Toma de desiciónes y Ramificación
10. 1.4. ELABORAR DIAGRAMAS DE FLUJO
DE LA SOLUCIÓN DEL PROBLEMA
Conector para unir el flujo a otra parte
del diagrama
Conector de pagina
Líneas de flujo
Display, para mostrar datos
Envía datos a la impresora
11. 1.5. CREAR PSEUDOCÓDIGO DE LA
SOLUCIÓN DEL PROBLEMA
Muchas veces, en los libros de texto y publicaciones científicas relacionadas con la
informática y la computación numérica, se utilizan pseudocódigo en la descripción
de algoritmos, de manera que todos los programadores puedan entenderlo, aunque
no todos conozcan el mismo lenguaje de programación. Generalmente, en los libros
de texto, hay una explicación que acompaña la introducción que explica las
convenciones particulares en uso. El nivel de detalle del pseudocódigo puede, en
algunos casos, acercarse a la de formalizar los idiomas de propósito general.
Un programador que tiene que aplicar un algoritmo específico, sobre todo uno des
familiarizado, generalmente comienza con una descripción en pseudocódigo, y luego
"traduce" esa descripción en el lenguaje de programación meta y lo modifica para
que interactúe correctamente con el resto del programa. Los programadores
también pueden iniciar un proyecto describiendo la forma del código en
pseudocódigo en el papel antes de escribirlo en su lenguaje de programación.
12. 1.6. PRUEBA DE ESCRITORIO DE LA
SOLUCIÓN DEL PROBLEMA
La prueba de escritorio es una
herramienta útil para entender
que hace un determinado
algoritmo, o para verificar que un
algoritmo cumple con la
especificación sin necesidad de
ejecutarlo. Básicamente, una
prueba de escritorio es una
ejecución ‘a mano’ del
algoritmo, por lo tanto se debe
llevar registro de los valores que
va tomando cada una de las
variables involucradas en el
mismo.