Pregunta

Hace mucho tiempo he desarrollado sistemas que utilizan un lenguaje Egeria sistema experto. Tenía una característica muy útil cuando las variables tenían tres valores, un mínimo, máximo y actuales. De esta manera la probabilidad de un valor en parte conocido podría calculado, con los resultados terminando como un rango. No puedo recordar la sintaxis, pero era algo como esto: -

A.Min = 1;
A.Max = 5;
A.Current= 4;
B.Min = 2;
B.Max = 4;
B.Current= 4;


A * B = {2, 20, 16}

Mi pregunta es, ¿qué es este enfoque llamado, y no cualquier idioma actuales ponerlo en práctica?

¿Fue útil?

Solución

las variables

Multi-valorada como los que usted describe se puede utilizar en la programación basada en restricciones. Para ver un documento reciente Radul y Sussman, "El arte de la la " propagador.

Mr. Radul presentado en CIT 2009 semana pasada. Dio un ejemplo de (lo que se podría considerar) las variables de varios valores que representan una aproximación probabilística a la "verdad". (Me disculpo de antemano por cualquier declaración falsa, no tengo notas.)

Considere un sistema que debe conciliar las lecturas de dos sensores térmicos. Supongamos además que las lecturas de cada sensor vienen con algún grado de incertidumbre: sensor A dice que la temperatura es entre A1 y A2, sensor B dice temp es entre B1 y B2. Si el sistema falla en el intento de calcular la temperatura? Tal vez la "verdad" se puede expresar en términos de la gama, donde las lecturas se superponen.

Otros consejos

Parece que, como un "enfoque", puede ser una especie de . Especialmente cuando usted describe que se utilice de manera probabilística.

Apéndice C del documento original en Yacc (publicado en el Volumen 2 del Manual del programador de UNIX para la versión 7, el papel es de fecha 31.07.1978) describe una 'una calculadora de escritorio que no coma flotante aritmética de intervalos'. Se utiliza intervalos con la notación '(min, max)' y aplicado aritmética basada en el rango. Lo que usted describe es una extensión de eso con el valor 'actual' también.

La mayoría de los lenguajes orientados a objetos podrían hacer esto con bastante facilidad utilizando clases.

En C ++, en particular, sería muy fácil de hacer una clase de plantilla que maneja esto para usted para cualquier tipo de base, por ejemplo.

No sé de ningún lenguajes que soportan esto como parte de la lengua de la base, sin embargo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top