Domanda

Molto tempo fa ho sviluppato sistemi utilizzando Egeria, un linguaggio di sistema esperto.Aveva una funzionalità davvero utile in cui le variabili avevano tre valori, minimo, massimo e corrente.In questo modo è possibile calcolare la probabilità di un valore parzialmente noto, con i risultati che finiscono in un intervallo.Non ricordo la sintassi, ma era qualcosa del genere: -

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


A * B = {2, 20, 16}

La mia domanda è questa: come si chiama questo approccio e qualche linguaggio attuale lo implementa?

È stato utile?

Soluzione

Le variabili multivalore come quelle che descrivi possono essere utilizzate nella programmazione basata su vincoli.Per un articolo recente vedere Radul e Sussman, "L'arte del propagatore".

Sig.Radul ha presentato la scorsa settimana all'ILC 2009.Ha fornito un esempio di (cosa si potrebbe considerare) variabili multivalore che rappresentano un'approssimazione probabilistica alla "verità".(Mi scuso in anticipo per eventuali false dichiarazioni, non ho appunti.)

Considera un sistema che deve riconciliare le letture di due sensori termici.Supponiamo inoltre che le letture di ciascun sensore presentino un certo grado di incertezza:il sensore A dice che la temperatura è compresa tra A1 e A2, il sensore B dice che la temperatura è compresa tra B1 e B2.Il sistema dovrebbe fallire nel tentativo di calcolare la temperatura?Forse la "verità" può essere espressa in termini di intervallo in cui le letture si sovrappongono.

Altri suggerimenti

Sembra, come un "approccio", può essere una specie di logica fuzzy . Soprattutto quando si descrive che venga usato probabilisticamente.

Appendice C del documento originale su Yacc (pubblicato nel volume 2 del manuale di UNIX Programmer per la versione 7; la carta è datata 1978/07/31) descritte a 'una calcolatrice da tavolo che non floating point intervallo aritmetica'. Ha usato intervalli con la notazione '(min, max)' e l'aritmetica gamma a base implementata. Ciò che si descrive è un'estensione di quella con il valore di 'corrente' troppo.

La maggior parte dei linguaggi orientati agli oggetti potrebbero farlo abbastanza facilmente utilizzando le classi.

In C ++, in particolare, sarebbe molto facile fare una classe template che ha gestito questo per voi per qualsiasi tipo di base, per esempio.

Non so di tutte le lingue che supportano questo come parte del linguaggio di base, però.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top