Thomas S. Kuhn
En su obra, "La estructura de las revoluciones científicas", dice que paradigma es el "lente" con los que captamos el mundo, es decir es una interpretación de la realidad.
Estos aspectos indican que..
Paradigma puede ser un:
MODELO CONCEPTUAL | que guía un | PROCESO de DISEÑO | y determina un | FORMATO de PROGRAMASegún este Formato, el paradigma puede ser:
ORIENTADO a OBJETOS P O O
|
||
|
|
|
|
|
|
|
|
Componentes del POO: | |||
Clases |
Objetos |
Metodos |
Propiedades |
C L A S E S Una clase define un objeto y este a otro objeto. Ejemplo: La clase automotor, puede generar objetos tipo motos, coches, con elementos afines y una común: sirven para transportar carga. En lenguaje orientado a objetos
|
DEFINE CLASS nombreClaseDefinida ADD OBJECT nombreObjeto AS nombreClase WITH Propiedades PROCEDURE / FUNCTION Instrucciones . . . . . ENDPROC / RETURN ENDDEFINE
SUBCLASE:
Paradigma:
En los ojos del joven
arde la llama.
En los ojos del viejo
brilla la luz.
Víctor Hugo
O B J E T O S Posee:
|
(Num1 + Num2)print
Ejemplo: 2 + 3 * 4 es 20 y 2 +(3 * 4) es 14
M E T O D O S Puede ser:
|
FUNCIÓN y PROCEDIMIENTO |
La funciòn pueden requerir de valores que reciben desde el exterior (parámetros).
Ejemplo: Función de búsqueda:
FUNCTION EstaGrabado PARAMETER LegajoLeido YaEsta = .F. GO Top LOCATE FOR Taller.Legajo = AllTrim(LegajoLeido) IF Found() =MessageBox('Ya fué grabada esta ficha',0+64,legajo+' '+nombre) YaEsta = .T. MenuCambios.Hojas.Page1.BotonGuardar.Enabled = .F. ENDIF RETURN YaEsta
B) Procedimiento:
Subprograma que funciona independiente y que puede o no, recibir paràmetros.
Ejemplo:
PROCEDURE BotonBuscar.Click Set Near On Set Exact Off Buscado = Upper(AllTrim(ThisForm.ModNombre.Value)) GO Top LOCATE FOR Upper(Telf.Nombre) = Buscado IF Found() ThisForm.ModNombre.Visible = .F. ThisForm.ModDireccion.Visible = .F. ThisForm.ModTelefono.Visible = .F. ThisForm.BoxNombre.Visible = .T. ThisForm.BoxDireccion.Visible = .T. ThisForm.BoxTelefono.Visible = .T. ThisForm.CancelaBuscar.Visible = .F. This.Visible = .F. ThisForm.BotonBajas.Visible = .T. ThisForm.BotonAltas.Visible = .T. ThisForm.Modificacion.Visible = .T. Formulario.Refresh ELSE =MessageBox('No esta registrado',0+64,Buscado) ENDIF Set Exact On ENDPROCProcedimientos o funciones
DEFINE CLASS ContainerLeeFecha AS ContainerWilo HEIGHT = 100 ADD OBJECT RotDia AS Label WItd TOP=10, LEFT=80,Autosize=.T.,HEIGHT=10, FontBold = .T., Caption='DIA MES AÑO' ADD OBJECT BoxDia AS SpiDia ADD OBJECT BoxMes AS ComboMes ADD OBJECT BoxAno AS SpiAno ADD OBJECT DeterminarHoroscopo AS CommandButton WItd TOP=10, LEFT=250, CAPTION='Suerte', HEIGHT=55, Width=50, Picture='Ver.ico', ToolTipText='Aceptar estos datos',BackStyle=0 ADD OBJECT Cancelar AS Image WItd TOP=60, LEFT=80, Picture='Borrar.ico', ToolTipText='Limpiar los datos',BackStyle=0 PROCEDURE Init tdisForm.LeeFecha.DeterminarHoroscopo.Visible = .F. ENDPROC PROCEDURE BoxDia.LostFocus tdisForm.Caption='Selecciona el mes que naciste, luego ENTER' FormuWilo.LeeFecha.BoxMes.Visible = .T. ENDPROC PROCEDURE BoxMes.LostFocus tdisForm.Caption='Ahora el año que naciste, luego ENTER' FormuWilo.LeeFecha.BoxAno.Visible = .T. ENDPROC PROCEDURE BoxAno.LostFocus tdisForm.Caption='Click ..!! sobre el ojo para ver tu horóscopo' FormuWilo.LeeFecha.DeterminarHoroscopo.Visible = .T. FormuWilo.LeeFecha.DeterminarHoroscopo.SetFocus ENDPROC PROCEDURE DeterminarHoroscopo.Click FormuWilo.LeeFecha.VISIBLE=.F. DO MostrarSuerte ENDPROC PROCEDURE Cancelar.Click FormuWilo.LeeFecha.DeterminarHoroscopo.VISIBLE=.F. FormuWilo.LeeFecha.BoxDia.Value=1 FormuWilo.LeeFecha.BoxMes.Value='Ene' FormuWilo.LeeFecha.BoxAno.Value=2019 FormuWilo.LeeFecha.BoxDia.SetFocus ENDPROC ENDDEFINE
PROPIEDADES |
2) HEREDADAS:
Formadas en objetos antepasados: padre, abuelo.
Abarca:
Complejos:
En caso contrario dentro de tres niveles:
1) RAÍZ de JERARQUÍA:
Objeto superior único de la estructura (Raiz).
2) INTERMEDIO:
Ubicados bajo de la raíz, tiene descendientes y constituyen clases de objetos.
3) TERMINAL:
Objeto sin descendientes
2.- Jerarquía de partes:
De semántica: "parte de": Donde:
- Clase de objeto parte, pertenece a clase de objeto todo
- La parte es independiente de la existencia del todo.
- Eliminar todo, no siempre elimina parte
- Ausencia de una parte no implica la ausencia de todo.
Relaciòn JERARQUICA:
Bidireccional, donde un objeto situado encima, es padre de otro objeto.
Si un objeto es padre de otro, este último es hijo del primero.
Un objeto tiene un solo padre, pero puede existir un hijo con varios padres.
Relaciòn SEMANTICA:
Las propiedades y efectos dependen del significado y no de su posición en la organización.
Ejemplo: En un diccionario informatizado para obtener la definición de una palabra cualquiera.
- Las palabras son objetos y
- La jerárquia proviene de la estructura de conocimientos.
Ejemplo:
/ | VIDA: Ciencias: Biología y | Biológicas Medicina. | TEMA < MUNDO: Ciencias de: Matemáticas, | la naturaleza Física, | inerte Química y | Geología | | HOMBRE. Ciencias: Geografía, \ humanas Historia.
ACTIVIDADES |
Primario.Objeto.Propiedad = Valor
2) Establecimiento MULTIPLE
Asignar valores a cada una de las propiedades de varios objetos similares usando la sintaxis WITH... ENDWTH
Ejemplo: WITH MiFormulario.MiGrilla.Colum1 Width = 69 BackColor=RGB(255,255,255) ENDWITHLas propiedades del objeto pueden establecerse en tiempo de diseño o de ejecución.
Ejemplo: Caption (Etiqueta del objeto) Visible (Muestra u Oculta el objeto) Enabled (Habilita el objeto) Left (Absisa del Objeto Top (Ordenada del objeto) ForeColor(Color del texto) Value (Valor del Objeto) . . . y muchos otros..!!!
Primario . Objeto . Metodo:
Invoca el métodos para activar la tarea a cumplir el objeto.
Para convocar al objeto, dispones la referencia:
ABSOLUTA:
Convoca al objeto que no esta presente, algo así: "Que Leo Messi.. meta un gol !",
al objeto invocado se proporcionar su jerarquía completa de contenedor.
Ejemplo: ConjuntoForm.Form1.BotonComando1
RELATIVA:
Si Leo Messi està frente tuyo, solo le diras
"Vos, meté un gol !", abreviando la identificación del objeto a manipular, con THIS o THISFORM.
Ejemplo: Case.This.Value=1
ADD OBJECT en el comando DEFINE CLASS.
Ejemplo: DEFINE CLASS ClaseCreada As ClaseBase Add Object ObjetoAdicionado1 As ObjetoBase1 With Propiedades Add Object ObjetoAdicionado2 As ObjetoBase2 With Propiedades Add Object ObjetoAdicionado3 As ObjetoBase3 With Propiedades ........... END Define
ADDOBJECT dentro de un PROCEDURE:
PROCEDURE NombreProcedimiento This.AddObject(ObjetoAdicionado1, ObjetoBase1) This.AddObject(ObjetoAdicionado2, ObjetoBase2) This.AddObject(ObjetoAdicionado3, ObjetoBase3) ............... ENDProcEn esta opción los objetos se pegan en tiempo de ejecución.
Responde a eventos activados por el sistema, o por el usuario, tales como:
********************************************* * ACTIVAR MENU DE ABM ********************************************* PROCEDURE Modificar.Click DO ActivarPantallaPrincipal ThisForm.Caption = 'BASE DE DATOS: SELECCIONA UNA OPCION' ThisForm.VerSuerte.Visible=.F. ThisForm.LogoUTN.Visible=.F. This.Visible=.F. ThisForm.MenuPrincipal.Visible=.T. ENDPROC ********************************************* * VISUALIZAR CONTAINER DE INGRESO DE FECHA ********************************************* PROCEDURE VerSuerte.MouseMove PARAMETER a, b, c, d, e DO ActivarPantallaPrincipal ThisForm.Caption = 'INGRESA EL DIA QUE NACISTE, luego ENTER' ThisForm.Modificar.Visible=.F. ThisForm.LogoUTN.Visible=.F. This.Visible=.F. ThisForm.LeeFecha.Visible=.T. ENDPROC
PROCEDIMENTAL Activa con Llamadas a conjuntos de secuencias de Procedimientos, así, el Programa principal pasa datos individuales en cada llamada. Resultado final son datos al termino del programa procesado en: a) Serie b) Paralelo: b.1- Asincronico: Cooperación de procesos paralelos b.2- Sincrónico: Procesos simples aplicados simultáneamente a muchos objetos. Por la forma de procesar datos, este Paradigma:
2.- GENERA NUEVOS DATOS
En este enfoque existen Paradigmas:
|
||||
Input -> | Unidad | <-> CONTROL | Aritmética | | Ouput <- | Lógica | <-> MEMORIA
Paradigma:
Inteligente no es el que
dice lo que piensa,
es el que piensa lo que dice.!
( Anonimo )
Paradigma Procedimental:
Programacion
Ejemplo en lenguaje C: Manejo de matrices
///////////////////////////////////////////// // Manejo de matrices // Wilo Carpio ///////////////////////////////////////////// #include < stdio.h> #include < conio.h> #include < iostream.h> void main() { int i,j,n,m; int matriz[30][30]; clrscr();//limpio la pantalla cout \n \ t \ t Wilo Carpio: C++ MANEJO DE MATRICES NUMERICAS \ n ; cout \t INDICA LOS DATOS DE LA MATRIZ: A(n,m) \ n; cout Nro de Filas de la matriz: n = ;cin n; cout Nro de Columnas de la matriz: m = ;cin m; ///////////////////////////////////////////// // Carga del valor de cada elemento ///////////////////////////////////////////// cout \n\t DIGITA EL VALOR DE CADA ELEMENTO \n; for(i=1;i=n;i++) { cout Fila i \n; for(j=1;j=m;j++) { cout A( i , j ) = ;cin matriz[i][j]; } } ///////////////////////////////////////////// // Mostrar por pantalla los datos cargados ///////////////////////////////////////////// cout \n\t ELEMENTOS DE LA MATRIZ CARGADA \n; for(i=1;i=n;i++) { for(j=1;j = m;j++) { coutA( i,j )= matriz[i][j] | ; } cout\n; } getch();//espera que presione una tecla }
HEURÍSTICO Opera algorítmos inteligentes Requiere: - Profundo conocimiento del problema y su operatoria. - Reglas de lógica o heurísticas que detectan acciones. - Inteligencia Artificial, de Ingeniería del Conocimiento Caracteristicas:
|
||||
Programación Heurística:
Búsca soluciones a problemas computacionales complejos:
Cómo se genera y que efectos produce minimizar el tiempo de búsqueda.
Considera información del problema, como:
- Heurística simple, bajo consumo de memoria, alta velocidad de búsqueda.
- Especificar problemas para generar una o múltiples soluciones.
- Heurísticas codificadas con cualquier lenguajes de programación.
El lenguaje heurístico usa heurísticas, como conclusiónes del razonamiento humano y "reglas de buena lógica".
- Búsca metas a problemas no algorítmicos, o algoritmos que generan explosión combinatoria (Ej: damas, ajedrez)
- Aproxima soluciones a problemas con funciones de evaluación de tipo heurístico.
- Poda estrategias de programas.
- Ser lenguaje conversacional, de interacción con el programador para procesar el problema.
- Tratamiento simbólico para problemas que precisan tratamiento heurístico y estructura simbólica.
- Funciones para modelar heurísticas de módulos independientes.
- Alternativas adecuadas a determinadas circunstancias.
El algoritmo heurístico usa procedimientos:
De búsqueda de soluciones óptimas a bajos costos operativos.
- Sin garantizar la optimización de las soluciones generadas.
- Sin determinar la distancia a la solución óptima.
Que dan forma a la configuración del problema mediante:
- Representación del modelo de su estructura.
- Estrategias de búsqueda y métodos de resolución.
Ejemplo 1:
Optimizar la provisión de caña de azúcar a ingenios azucareros.
En este problema, son factores de decisión:
- Distancia y estado de caminos entre cargaderos con los ingenios.
- Costo unitario del medio de transporte.
- Precio de venta de la caña de cada proveedor.
- Precio de compra que paga cada ingenio, etc.
- La cantidad de alternativas de solución a evaluar serían:
Alternativas Nº Ingenios Nº Cargaderos 1=1! 1 1 2=2! 2 2 6=3! 3 3 24=4! 4 4 120=5! 5 5 720=6! 6 6Tucumán tiene 14 ingenios azucareros, con 14 cargaderos tendríamos factorial de 14.
Heurístico METODOS DE BUSQUEDA |
Mientras Not Vacia(lista_nodos) estado_actual = lista_nodos.primero; Si EstadoFinal(estado_actual) entonces Terminar; Sino lista_reglas = ReglasAplicables (estado_actual); Mientras NOT Vacia(lista_reglas) estado_sucesor = AplicarRegla (lista_reglas); lista_nodos = lista_nodos + [estado_sucesor]; Fin Mientras; Fin Sino; Fin Mientras;
Pseudo-código de este algoritmo recursivo, incialmente es llamado con el estado_inicial:
Función Buscar (estado_actual) devuelve Boolean Comienzo Si EstadoFinal(estado_actual) entonces Devolver TRUE; Sino exito = FALSE; lista_reglas = ReglasAplicables (estado_actual); Mientras NOT exito AND NOT Vacia(lista_reglas) estado_sucesor = AplicarRegla (lista_reglas); exito = Buscar (estado_sucesor); Fin Mientras; Devolver exito; Fin Sino; Fin Buscar;
DECLARATIVO No describe pasos para procesarla. Señala propiedades, ecuaciones y reglas. |
||||
Caracteristicas: Almacena valores intermedios en variables. - Determina el nro de orden de evaluación de calidad solución. - No prueba que el valor logrado sea el resultado esperado. - Codifica sus programas en lenguajes declarativos: |
||||
PROGRAMACIóN:
a)FUNCIONAL:
- Basado en la evaluación de funciones matemáticas.
b)LOGICA:
- Describe relaciones sobre un conjunto de datos.
- Logra conclusiones desde premisas validas, a partir de reglas de deducción.
Paradigma:
Demostrado adecuadamente
un error puede llevarnos a
conclusiónes correctas!!
( Wilucha )
Programación Demostrativa
Capta aspectos similares de objetos y a partir de ellos generaliza similitudes para resolver los nuevos casos.
Especifica la solución mediante ejemplos, para que el sistema generalice la solución para otros casos.
A partir de sus demostraciones, generaliza una o mas soluciones.
Para esto, puede:
DESVENTAJAS:
No se conoce cuándo el programa funciona correctamente.
- Algun programa trabaja bién con datos de prueba, pero que falla con otros.
- La capacidad de inferencia es limitada, tanto que el usuario debe guiar el proceso.
Paradigma:
Hay ciertos defectos
que bién manejados
brillan más que la misma virtud !
(Rochefocauld)
<
IMPERATIVO Algoritmo + Datos = Programa - Un programa en memoria, se ejecuta secuencialmente. - Efectúa cálculos con datos de tal memoria. Asocia datos para cálculos, con direcciones de memoria. - Transforma datos almacenados. - El resultado es el valor final de la variable. |
Usa para los cálculos, estructuras de control de flujos de datos:
|
Input -> | Unidad | <-> CONTROL | Aritmética | | Ouput <- | Lógica | <-> MEMORIA
La Celda de memoria ( variable ):
Almacena datos en la memoria de celdas donde guarda valores de variables.
Las celdas tienen nombre (concepto de variable) que las referencian.
Estos producen efectos de lado y definiciones de alias, que manejan el concepto de celda de memoria.
Los cálculos intermedios modificaran tales celdas, variables o estructuras de datos del estado actual del problema.
Para simplificar se usa abstracciones tipo registros, array y otros tipos.
Las Asignaciones:
Cada valor calculado es almacenado o asignado a la celda, de manera de actualizar el valor grabado.
La asignacion es registrada en una celda. Con el formato:
expresión1:=expresión2
REPETICION
Ejemplo 1: Para:
Un argumento y resultado de la función, pueden ser otra función.
La programació funcional opera como modelo de computación "cálculo lambda", Ejemplo:
Paradigma:
Su modelo es un sistema
Moto(X), Valioso(veloz), Es-padre(veloz, padre(cometa)).
Robert Kowalski crea este Paradigma, sobre estas cláusulas, como subconjunto de la Lógica de Predicados de 1er orden.
2) Solución:
- Si L vacía -> la rama termina en éxito; si no, volver al paso 2.
El algoritmo termina cuando se han recorrido todas las ramas
Para evaluar se define una meta, luego se prueba si se ajusta a un hecho o se deduce de alguna regla.
El Paradigma Lógico crea reglas, mediante:
En síntesis:
Lógica + Control + Estructuras de datos = Programa
Donde :
ESTRUCTURA DE DATOS:
Paradigma Lógico: Programación Paradigma
Y para el cruel que me arranca
- BASADO EN REGLAS: - LÓGICA: - FUNCIONAL: - HEURÍSTICA: De estos aspectos surgen los grandes Paradigmas conceptuales del siglo XX. Así, nace con:
- Darwin: La Teoría de la Evolución.
- Fourier: La "Entropia" en su "Nueva Ciencia del Calor" y el concepto de "flecha del tiempo".
Paradigma es concepto o heurística intangible, mientras que lenguaje es su materialización en forma de códigos operacionales. Tal confusión llevo, Floyd a clasificar los Paradigmas, de acuerdo a la capacidad de expresión, en 3 categorías.
1) ParadigmaS que soportan PROGRAMACION DE BAJO NIVEL:
2) Paradigmas que soportan PROGRAMACION DE ALTO NIVEL:
3) Paradigmas que soportan DISEÑO de ALGORITMOS:
- BASADO EN REGLAS: - LÓGICA: - FUNCIONAL: - HEURÍSTICA: - MODIFICADAS: CON EFECTO DE LADO: - Orientado a Objetos.
- NO MODIFICADAS: SIN EFECTO DE LADO: EJEMPLO: Algoritmo + Estructura de datos = Programa
- Paradigma FUNCIONAL: Funciones + Estructura de datos = Programa
- Paradigma LOGICO: Lógica + Control de datos = Programa
- Paradigma ORIENTADO A OBJETO: - Paradigma HEURISTICO: - Revisa conceptos de la ciencia, su producción, impacto social, conexiones con la filosofía.
Para Kuhn la historia representa el color del cristal con el que debe mirarse toda la filosofía de la ciencia.
La historia de la ciencia muestra, de acuerdo con Kuhn, que a lo largo de su evolución las distintas disciplinas
En forma paralela a este concepto cíclico de la evolución de las ciencias, Kuhn introdujo también la famosa idea del "Paradigma",
Kuhn usó el término "Paradigma" con otras acepciones distintas lo que contribuyó a hacerlo un poco confuso.
De acuerdo con el esquema de Kuhn, los ciclos a que están sometidas las ciencias a través de la historia
En ese periodo puede haber varias escuelas de pensamiento compitiendo pero sin que alguna de ellas prevalezca sobre las demás.
Los ejemplos de Kuhn para ilustrar el sentido de Paradigma son la astronomía ptolemaica, la "nueva" química de Lavoisier,
De acuerdo con Kuhn, un Paradigma está formado por la amalgama de una teoría y un método,
- Durante el periodo de "ciencia normal" los investigadores no se dedican a avanzar
Lo que se pone a prueba no es la teoría o hipótesis general, como quiere Popper,
Durante el periodo de "ciencia normal" los resultados incompatibles con el Paradigma prevalente
- Sólo cuando se alcanza un nivel intolerable de anomalías es que el Paradigma se abandona y se adopta uno
A la ciencia que se realiza durante el periodo en que ocurre este cambio, de un Paradigma por otro,
Kuhn comparó al cambio de Paradigmas del periodo de "ciencia revolucionaria" con un "cambio de Gestalt",
- La inconmensurabilidad del Paradigma antiguo con el nuevo determina que sus respectivos partidarios hablen distintos idiomas,
Frecuentemente, otra diferencia significativa entre los científicos que patrocinan los dos Paradigmas en conflicto,
Esta diferencia generacional no sólo se suma al bloqueo en la comunicación,
Estas ideas de Kuhn se oponen de manera más o menos frontal al esquema hipotético-deductivo de la ciencia de Popper
- Obviamente, Kuhn no está hablando de la lógica del descubrimiento científico
sino más bien de la psico-sociología de la ciencia.
En cambio, mientras Popper postula que el cambio de una teoría científica por otra proviene de la falsificación de la primera
- El concepto del crecimiento de la ciencia según Kuhn es muy distinto del postulado clásicamente,
En vista de que la inconmensurabilidad de los Paradigmas entrante y saliente impiden que se aproveche toda la
- ¿Por qué es que la empresa detallada antes [la ciencia] avanza continuamente,
- ¿Por qué es el progreso una propiedad reservada
Las respuestas más comunes a estas preguntas han sido refutadas en este ensayo,
- Quien haya leído a Kuhn sabe que un solo repaso de sus textos es generalmente insuficiente
Kuhn exige meditación seria sobre lo que dice, con la consecuencia que el lector que medita
Por lo menos, eso es lo que todavía me pasa a mí con Kuhn (¡y con muchos otros autores!)
- No es diferente en calidad del progreso en otros campos, pero la ausencia habitual de grupos competitivos
- Después de examinar el papel de la educación científica en las culturas occidentales,
¿Por qué es el progreso una concomitante universal de las revoluciones científicas?
Una vez más tenemos mucho que ganar si preguntamos qué otra cosa podría provenir de una revolución.
- ¿podrá tal grupo decir alguna vez que su triunfo no representa un progreso?
Si lo hubiera sería como aceptar que ellos estaban equivocados y que sus oponentes tenían la razón.
Por lo menos, para ellos el resultado de la revolución debe ser el progreso,
- Kuhn examina el papel fundamental que desempeña la comunidad científica como árbitro de lo que es la ciencia y de su calidad,
Kuhn identifica a la Europa de los últimos cuatro siglos como el origen de la mayor parte del conocimiento científico que poseemos actualmente,
Ofreciéndoles a tales sujetos, soluciones aceptables a la mayor parte de los miembros de los distintos grupos
La pequeña cofradía de científicos establece sus propias reglas del juego,
Este episodio solamente ha ocurrido una vez en toda la historia universal,
En La estructura, Kuhn incluye un párrafo en donde señala con claridad el mecanismo de crecimiento de la ciencia
- No será aceptado por los científicos a menos que se convenzan de que se cumplen dos importantes condiciones:
En primer lugar, el nuevo Paradigma debe parecer resolver algún problema importante y
En segundo lugar, el nuevo Paradigma debe garantizar la conservación de una parte relativamente grande de la capacidad
La novedad por sí misma no es un desideratum de las ciencias, pero sí lo es en muchos otros campos creativos.
De esto resulta que, aunque los nuevos Paradigmas rara vez o nunca poseen todas las capacidades de sus predecesores,
- Finalmente según Kuhn, podemos concluir que a pesar de la inconmensurabilidad de los Paradigmas en competencia,
y de que el cambio de uno por otro durante las revoluciones científicas se parece más a una conversión religiosa que a una acción racional.
Paradigma
Donde:
-
-
El programa imperativo efectua su tarea iterando secuencias de pasos elementales.
Ejecuta repetidamente una secuencia de pasos elementales.
Imperativo
P R O G R A M A C I Ó N
Sus características son:
Tiene un "Tipo" que representa sus propiedades.
- Interno del computador es representado por valores de las variables
- Externo es representado por las entradas y salidas a dispositivos.
- Permite control extensivo sobre el orden de ejecución de los enunciados en el programa.
- Los mecanismos usuales son: secuencia, selección, repetición e invocación de rutinas.
- Tiene 4 niveles de jerarquía: bloques, rutinas, paquetes (módulo o tareas) y programas.
- Cambia el valor almacenado (estado actual) en una dirección (localidad) de memoria del computador.
- El "estado" y "localidad" vienen del modelo del computador para el lenguaje imperativo.
Programa: a:=b+c
b:=b+1
Estado 0: a=2
b=3
c=4
Modificacion: a:=b+c
Estado 1: a=7
b=3
c=4
Modificacion: b:=b+1
Estado 2: a=7
b=4
c=4
Ejemplo 2: Cálculo del modulo entre 2 números
función mod (x, y: enteros) : entero
inicio
z := x
mientras z >= y hacer
z := z - y
finmientras
devolver z
fin
Errar es humano, pero para
enrredar las cosas en grande
hace falta una computadora
con muchas funciones..!!
( Wilucha )
Ej: Programa FUNCIONAL en Pseudolenguaje:
siguiente ( x ) : int [ 10 ] -> int [ 10 ] =
{ xi = xi + 1; i = 0 .. 9 };
cuadrado ( x ) : int [ 10 ] -> int [ 10 ] =
{ xi = xi * xi; i = 0 .. 9 };
cuadrado ( siguiente ( [ 1,2,3,4,5,6,7,8,9,0 ] ) )
Programación Funcional
Basado en funciones matemáticas, para:
- Aplicar operaciones sobre algunos argumentos.
- Obtener un valor de función para esos argumentos.
- Argumentos y resultado, son constantes numéricas. Ejemplo:
f(x) = x2 + x,
con el argumento constante entera 2:
La función f de potencia cuadrada, y de suma, genera:
f(2) = 22 + 2 = 6 como valor de la función.
O incluso la misma, por recursividad.
que:
donde:
a.1) x : Define el parámetro o argumento formal.
a.2) B : Representa el cuerpo de la función. Por tanto: f(x) = B.
Aplica alguna de las funciones creadas, sobre un argumento real (A);
b.1) Resultado de sustituir las ocurrencias del argumento formal (x),
b.2) Que aparezcan en el cuerpo (B) de la función, con el argumento (A). Es decir: (lx.B)
( lx . ( x + 5 ) ) 3,
indica que en x + 5,
debe sustituirse el valor de x por 3.
Se encontro su valor cuando ya no es posible reducir la función.
Tendrá la consistencia de regresar el mismo valor para los mismos argumentos.
En los ojos del joven
arde la llama.
En los ojos del viejo
brilla la luz.
( Víctor Hugo)
LÓGICO
Lógica + EstructuraDeDatos = Programa
-Reglas base para deducir metas desde hechos conocidos.
-Seleccion, tipo "búscar 1ro en profundidad" (BackTracking).
El cual:
-Para elegir una regla, selecciona la 1ra que encuentra.
- Si conduce a un punto muerto, selecciona la 2da.
- Así hasta que hayan sido probadas todas las alternativas.
Codifica sus programas en lenguaje LÓGICO:
El sistema busca la solución, usando:
- Hechos o asertos y reglas para representar la información.
- Deducciones que generen nuevos hechos, partiendo de componentes lógicos y secuencias de control del sistema.
- Automatiza así la corrección del programa.
- Verificación de transformaciones, evaluadas partiendo de metas.
- Pruebas que se ajustan a hechos o deducen de alguna regla, sus antecedentes se convierten en nuevas metas.
- No describe como debe resolverse el problema.
Plantea en términos de reglas lógicas:
- La lógica de solución de problemas es una modelización a través de un conjunto de fórmulas.
- Hay al menos una interpretación que es modelo de dichas fórmulas y que es la especificación del problema.
- Asume la definición de asertos o hechos (Ej: Pity es padre) y reglas para deducir nuevos hechos
Ej: para todo y, Si y es padre, y es masculino; luego se deduce que Pity es masculino.
Empieza definiéndo una meta y probando que se ajusta a un hecho o deduce de alguna regla.
- Tal meta se deduce de una regla si todos sus antecedentes verifican con la transformación existente.
- Tales antecedentes seran nuevas metas que deben equipararse con hechos o resolverse vía otras reglas.
- El proceso termina cuando todas las sub_metas han sido probadas.
- La solución final resulta de aplicar los resultados intermedios obtenidos a las variables de la meta inicial.
En aplicaciones vinculados con:
Inteligencia Artificial: Sistemas informáticos que simulan el funcionamiento del pensamiento humano.
Sistema Experto: Imita el comportamiento de un experto humano. Mediante:
- "Base de Conocimiento": Base de datos con información de estructura lógica.
- Herramienta para comprender las preguntas.
- "Motor de Inferencias": Para encontrar la respuesta correcta examinando la base de datos.
Procesamiento de Lenguaje Natural: En el lenguaje humano:
- Trata de dividir el lenguaje en partes.
- Relaciona y trata de comprender su significado.
Lógico
E S T R U C T U R A
- Variables (A, B, X),
- Constantes (Cayo, 2, Moto) y
- Funciones cuyos argumentos son términos (f(x), padre(Cayo)).
- Hechos o reglas formadas por varios antecedentes (conjunción) y un consecuente.
- Consecuente: antecedente1, antecedente2.
- La disyunción se representa añadiendo reglas.
- Casado( x, y )
- SI esposo( y , x ) o
- esposa( x , y )
Los símbolos de predicados deben ser iguales y con el mismo número de argumentos.
Si no, termina en error: Por cada término de ambos predicados puede suceder:
- Si un término es variable y el otro es cualquier término sin esa variable, se sustituye la variable por el término.
- Si los dos términos son constantes con el mismo valor, ya están unificados.
- Si el valor es distinto se termina con fallo.
- Si los términos son funciones, deberán llamarse igual y tener el mismo número de argumentos.
- - Se aplica recursivamente el algoritmo a los argumentos de la función.
- Si no se cumple ningún caso, se termina con fallo.
Parte de una lista L de objetivos O1 O2 ... On..
1) Selección:
- Seleccionar un objetivo Oi por orden de aparición
- Seleccionar una cláusula Rj por orden de aparición.
- Renombrar sus variables.
- Si el consecuente de Rj puede unificarse con Oi, se crea una nueva rama
- Realizando sustituciones necesarias;
- Si no se puede unificar la rama termina en fracaso.
Oi se sustituye en L por el antecedente de Rj.
A todas las cláusulas de L se les aplica sustituciones de unificación.
O hechos de reglas lógicas establecidas apriori que generen conclusiones para deducir nuevos hechos.
Ejemplo:
- Para el aserto Pity es padre:
- Para todo y, Si y es padre, y es masculino,
- Se puede deducir que Pity es masculino.
- Si la transformación es verificada por sus antecedentes, entonces:
- - Estos se convierten en nuevas metas a equipararse con hechos o resolver por otras reglas.
El proceso:
- Termina cuando todas las sub-metas han sido probadas.
- La solución final aplica a las variables de la meta inicial, los resultados intermedios obtenidos.
Para seleccionar reglas, se requiere:
- Buscar en profundidad con un algoritmo de BackTracking ó método de resolución.
- Cuando requiere elegir una regla, selecciona la 1ra que encuentra.
- Si la regla elegida conduce a un punto muerto, selecciona la 2da.
- Así hasta que hayan sido probadas todas las alternativas.
- Ejecución: Meta que intenta probarse a partir de los hechos y reglas.
- Aplicación de reglas por backtracking: Método de resolución.
- Soporte de la información Lista.
- Lógica: Asertos y reglas.
- Control: Mecanismo de resolución.
- Estructuras de datos: Constantes, variables y listas.
- Un programa lógico se configura como un conjunto de hechos( asertos o proposiciones ) y
- De reglas lógicas previamente establecidas.
- Genera conclusiones a partir de preguntas o cuestiones lógicas.
- Tales hechos o asertos y reglas permiten deducir nuevos hechos. Por ejemplo:
LOGICA: Constituida por
HECHOS:
Establecen relaciones entre objetos. Ejemplo:
Chita es amiga de Tarzan
OBJETOS: Chita y Tarzan
RELACION: amiga
REGLAS LOGICAS:
Expresan que un hecho depende de otros hechos. Ejemplo:
X es el abuelo paterno de Y si
X es el padre de Z
Z es el padre de Y
CONTROL:
Mediante estrategias para investigar las cuestiones lógicas.
Ejemplo:
estrategia de búsqueda “ primero en profundidad”
Son los elementos de la base de conocimiento y cuestiones lógicas.
Ejemplo: variables, listas, constantes, etc.
El Lenguaje PROLOG:
Es nativo y es capaz de pensar, sacar conclusiones, emitir juicios e incluso comprender las palabras escritas y orales.
Dotado de un motor de inferencia que búsca en su base de hechos, es lenguaje de programación declarativa; donde:
- El programador declara los objetos del dominio.
- El programador declara en forma de lógica formal las relaciones entre tales objetos.
- A partir de esos datos, PROLOG aplicando lógica, infiere consecuencias.
Cultivo una rosa blanca
..en julio, como en enero
para el amigo sincero
que me da su mano franca..!!
el corazón con que vivo,
cardo ni ortiga cultivo;
..cultivo una rosa blanca..!
José Martí
CLASES de
PARADIGMAS
De aplicación en ingeniería del conocimiento para desarrollar sistemas expertos, con reglas de producción del tipo if tden.
Entorno de programación conversacional, deductivo, simbólico y no determinista apoyada en asertos y reglas lógicas.
Entorno de programación interpretativo, funcional y aplicativo, de formato funcional.
Aplican heurísticas de visualización, búsqueda y métodos de solución. Pueden ser Programación:
- Paralela
- Orientado a Objetos
- Basado en Restricciones
- Basado en Flujo de Datos
de la teoría de
PARADIGMAS
Basado en la dinámica de Newton, caracterizada por:
- Dotado de explicaciones simplistas,
- Desarrollos de leyes deterministas,
- Fundamentos en modelos ideales,
- Usar el método analítico.
- La búsqueda de unidades fundamentales.
- Estudio del comportamiento de conjunto, por ensamble de sus partes.
Para resolver un problema, el Paradigma se codifica en lenguaje compatible con él y capaz soportar los mismos conceptos del Paradigma.
Tal compatibilidad que confunde al Paradigma y lenguaje de programación, mezcla paradigma con su herramienta de proceso,
pero un mismo Paradigma puede ser soportado por más de un lenguaje. Por ello, destacamos que:
Operan como los componentes internos del computador, mediante lenguajes de 2da generación, como BASIC, FORTRAN o COBOL,
- Emulaban al LENGUAJE ENSAMBLADOR, accediendo a sus componentes del hardware.
- No soportaban algoritmos con procedimientos, funciones, variables, ni punteros, listas, pilas, colas o árboles con asignación dinámica de memoria.
Usan lenguajes orientados a objetos, cuyo pionero es PROLOG, superado por la potencia de Delphi o C#.NET, o Basic.NET, o J#.NET, etc.
Con lenguajes de 3ra generación manejan procedimientos, funciones, variables y punteros para la asignación dinámica de memoria.
Con Delphi o C#, o C++, o Basic, etc. puedes generar programas que operan bases de datos sin digitar ni una línea de código.
Asimilables a los siguientes tipos de PROGRAMACIÓN:
De aplicación en ingeniería del conocimiento para desarrollar sistemas expertos, con reglas de producción del tipo if tden.
Entorno de programación conversacional, deductivo, simbólico y no determinista apoyada en asertos y reglas lógicas.
Entorno de programación interpretativo, funcional y aplicativo, de formato funcional.
Aplican heurísticas de visualización, búsqueda y métodos de solución. Pueden ser Programación:
- Paralela
- Orientado a Objetos
- Basado en Restricciones
- Basado en Flujo de Datos
De acuerdo al tipo de solución aplicada pueden existir las categorías:
Solución => Paradigma
PROCEDIMENTAL => PROCEDIMENTAL
DEMOSTRATIVA => DEMOSTRATIVO
DECLARATIVA => DECLARATIVO
La solución PROCEDIMENTAL U OPERACIONAL:
Determina cada etapa para construir la solución y describe cómo obtener un resultado a partir de un estado inicial.
Usa lenguajes de 1ra a 3ra generación, cuyas variables se relacionan con direcciones de memoria, mediante técnicas:
Actualiza iterando datos y direcciones de memoria de variables, registra múltiples asignaciones hasta lograr el resultado.
Sus tipos son Paradigma:
- Imperativo.
Crean continuamente nuevos datos.
Resuelve problemas aplicando PROGRAMACION por EJEMPLO o DEMOSTRATIVA:
donde el programador resuelve programas similares,
y generaliza soluciónes, por medio de simulación o por inferencias.
Para enseñar a la máquina a dividir, pueden proponerse algunos ejemplos
Ejemplo: 2/1 = 2
Ejemplo: 2/2 = 1
La máquina infiere que la división requiere fraccionar el digito anterior a la barra en tantas partes como indica el posterior a dicha barra.
Ejemplo: Si preguntas:
Pregunta: 2/0, las respuestas de la maquina pueden ser:
Indefinido: Si se la dota de cierto conocimiento matemático.
No se: Que demostraría el gran sentido común de la máquina
Dígito 2: Porque fraccionar algo en ninguna parte, deja a ese algo inalterado.
- Paradigma IMPERATIVO: Procedimental con efecto de lado, representado por la arquitectura de Von Neumman.
Estructura de las
Revoluciones Científicas
(Thomas Kuhn)
- "Modelo que guía las investigaciones en áreas del conocimiento y
que son sustituidos por otros nuevos mediante verdaderas revoluciones científicas".
A través de este cristal, resultan las dos características:
El "relativismo" y a la "irracionalidad", que revelan la relación de las ideas de Kuhn con el método científico.
han pasado por uno o más ciclos bifásicos, que llama "ciencia normal" y "revolución"
que fué la teoría general o conjunto de ideas aprobadas y sostenidas por una generación o un grupo coherente de científicos contemporáneos.
En publicaciones posteriores, Kuhn sustituyó el término "Paradigma" por otros dos, "matriz disciplinaria" y "ejemplar",
con objeto de ganar precisión, pero como para nuestros fines tal precisión no es necesaria, seguiré usando el término Paradigma.
se inician por una etapa más o menos prolongada de "preciencia" o periodo "pre-paradigmático",
durante el cual se colectan observaciones casi al azar, sin plan definido y sin referencia a un esquema general
Sin embargo, poco a poco un sistema teórico adquiere aceptación general, con lo que surge el primer Paradigma de la disciplina.
la óptica corpuscular de Newton, o la dinámica aristotélica.
que juntos constituyen casi una forma especial de ver al mundo, sin embargo, el estado ontológico del Paradigma kuhniano no es claro,
se trata de una entidad curiosa, algo camaleónica y hasta acomodaticia, de la que a veces se oye hablar
como si fuera algo real y con existencia independiente.
"Una vez establecido el Paradigma, la etapa de "preciencia" es sustituida por un periodo de "ciencia normal",
caracterizado porque la investigación se desarrolla de acuerdo con los dictados del Paradigma prevalente,
o sea que se siguen los modelos que ya han demostrado tener éxito dentro de las teorías aceptadas...".
Los siguientes aspectos son la sintesis de la propuesta de Kuhn:
el conocimiento sino a resolver problemas o "acertijos" dentro de la estructura del Paradigma correspondiente.
sino la habilidad del hombre de ciencia para desempeñar su oficio,
en vista de que si sus resultados no son compatibles con el Paradigma dominante,
lo que está mal no es la teoría sino los resultados del trabajo del investigador.
se acumulan progresivamente en forma de anomalías, en lugar de usarse como argumentos para forzar el cambio
de la teoría por otra u otras que las expliquen.
nuevo que satisfaga no sólo los hechos explicados por el Paradigma anterior sino también todas las anomalías acumuladas.
Kuhn la llama "ciencia revolucionaria".
Pero es precisamente en su análisis de este cambio donde Kuhn introdujo una de sus ideas más revolucionarias
históricamente no ha sido un proceso racional, entre otras razones porque los distintos Paradigmas son inconmensurables,
lo que no significa que sean incompatibles, sino simplemente que no son comparables entre sí.
y hasta con una conversión religiosa.
o sea que los mismos términos tengan diferentes significados, lo que dificulta o imposibilita la comunicación entre ellos.
el saliente y el entrante, es la edad promedio de cada grupo:
muchos de los partidarios del Paradigma que se abandona son individuos mayores,
mientras que la mayoría de los devotos del nuevo Paradigma son jóvenes.
sino que también contribuye a la irracionalidad del cambio,
que culmina cuando fallecen los últimos miembros del grupo de científicos partidarios del Paradigma saliente,
con lo que se legaliza la hegemonía del Paradigma entrante y se inicia un nuevo periodo de "ciencia normal".
al mismo tiempo que postulan otro, que podría llamarse histórico-cíclico
(Popper lo llama, con toda justicia, relativismo histórico).
Pero Kuhn y Popper coinciden en pasar por alto los mecanismos de generación de las hipótesis aunque el
primero las atribuye a la intuición estimulada por la acumulación progresiva
de anomalías y el segundo nada más a la intuición
y el mayor poder explicativo de la segunda, o sea que se trata de un proceso lógico y racional,
Kuhn insiste en que la historia muestra que el rechazo de una teoría científica
y su sustitución por otra ha obedecido mucho más a fuerzas irracionales e ilógicas,
más relacionadas con factores sociológicos que con principios racionales.
como puede sospecharse al contemplar el resultado de sus ciclos de ciencia normal acumulación de anomalías,
revolución con cambio de Paradigmas, ciencia normal, etc.,
información acumulada durante el periodo de ciencia normal anterior a la revolución,
que termina por cambiar un Paradigma por otro.
Kuhn tiene plena conciencia de esto, por lo que el último capítulo de La estructura se titula
"El progreso por medio de revoluciones" y en él se pregunta:
- como no lo hacen, digamos, el arte, la teoría política, o la filosofía?
casi exclusivamente para las actividades que llamamos ciencia?
de modo que conviene concluirlo preguntándonos si podemos encontrar otras que las sustituyen.
para capturar todas sus ideas y comprender todos sus alcances además de lecturas repetidas.
no siempre llega a la misma conclusión que el autor sobre un mismo párrafo.
pero acepto que seguramente se trata de un problema personal.
Kuhn propone que en los periodos de ciencia normal, el progreso científico:
que cuestionen mutuamente sus respectivos fines y estándares facilita la percepción del progreso de una comunidad científica normal.
destacando que en las humanidades la consulta de los textos originales es mucho más frecuente que en las ciencias,
Kuhn se pregunta:
Las revoluciones terminan con la victoria total de uno de los dos campos opuestos,
y se encuentran en una posición excelente para asegurarse de que los miembros futuros
de su comunidad acepten la historia anterior a ellos de la misma manera.
que es lo que caracteriza a las civilizaciones derivadas de la Grecia helénica;
gracias a su tolerancia y apoyo a grupos de sujetos interesados en resolver problemas específicos del comportamiento de la naturaleza.
y sin interés primario en reclutar opiniones favorables de las autoridades oficiales de su tiempo
(rey, papa, dictador, sultán, primer ministro, sátrapa o presidente), o del pueblo en general.
al margen de intereses ideológicos o políticos, y se da el imperial y legítimo hijo de regirse exclusivamente por ellos.
y ni siquiera como una corriente ininterrumpida de desarrollo sino más bien como una serie de episodios más o menos breves,
a veces infelices y otras veces afortunados, con largos intervalos sujetos a la hegemonía de la sinrazón.
en los periodos de "ciencia revolucionaria"; hablando del cambio de un Paradigma por otro, Kuhn dice que el nuevo Paradigma:
generalmente reconocido, que no se ha podido resolver de ninguna otra manera
para resolver problemas concretos que la ciencia ha alcanzado a través de sus predecesores.
generalmente conservan una gran parte de los aspectos más concretos de los triunfos previos
y además siempre permiten soluciones adicionales a otros problemas concretos.
El nuevo Paradigma está obligado a garantizar la preservación de mucho de lo aprendido en los periodos previos de ciencia normal,
lo que permite el crecimiento de la ciencia.
Hay hombres que de su ciencia
tienen la cabeza llena
Hay sabios de todas mentas
Mas digo sin ser muy ducho
Que es mejor que aprender mucho
El aprender cosas buenas..!!
José Hernández
IMPRESOS
Cada paradigma requiere un:
Programación |
||
Lenguaje |
||
Lenguaje |
||
Lenguaje |
||
Lenguaje |
||
Lenguaje |
Paradigma
Y para el cruel que me arranca
Cultivo una rosa blanca
..en julio, como en enero
para el amigo sincero
que me da su mano franca..!!
el corazón con que vivo,
cardo ni ortiga cultivo;
..cultivo una rosa blanca..!
José Martí
Te espero en: wilocarpio@gmail.com
Esta page está en: www.wilocarpio.com
11/11/2018