문제

오래 전에 저는 Egeria를 사용하여 전문 시스템 언어를 사용하여 시스템을 개발했습니다. 변수에 최소, 최대 및 전류의 세 가지 값이있는 정말 유용한 기능이있었습니다. 이러한 방식으로 부분적으로 알려진 값의 확률은 계산 될 수 있으며 결과는 범위로 끝납니다. 구문을 기억할 수는 없지만 다음과 같은 것이 었습니다.

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


A * B = {2, 20, 16}

내 질문은 이것입니다.

도움이 되었습니까?

해결책

설명과 같은 다중 값 변수는 제약 기반 프로그래밍에 사용될 수 있습니다. 최근 논문은 Radul과 Sussman을 참조하십시오. "전파의 기술".

Radul 씨는 지난주 ILC 2009에서 발표했습니다. 그는 "진실"에 대한 확률 적 근사치를 나타내는 다중 값 변수의 예를 제시했다. (허위 진술에 대해 미리 사과드립니다. 메모가 없습니다.)

두 개의 열 센서에서 판독 값을 조정 해야하는 시스템을 고려하십시오. 또한 각 센서의 판독 값이 어느 정도 불확실성을 가지고 있다고 가정 해 봅시다. 센서 A는 온도가 A1과 A2 사이에 있다고 센서 B는 임상이 B1과 B2 사이에 있다고 말합니다. 온도를 계산하려는 시도에서 시스템이 실패해야합니까? 아마도 "진실"은 판독 값이 겹치는 범위로 표현 될 수 있습니다.

다른 팁

"접근"처럼 들리면 종일 수 있습니다. 퍼지 논리. 특히 당신이 그것을 확률 적으로 사용한다고 설명 할 때.

YACC에 관한 원본 논문의 부록 C (버전 7에 대한 UNIX 프로그래머 매뉴얼 2 권에 게시 됨;이 논문은 1978-07-31에 발표 됨)는 '부동 소수점 간격 산술을 수행하는 책상 계산기'를 설명했다. 표기법 '(Min, Max)'과 함께 간격을 사용하고 범위 기반 산술을 구현했습니다. 당신이 묘사하는 것은 '현재'값과 그것의 확장입니다.

대부분의 객체 지향 언어는 클래스를 사용하여 상당히 쉽게 수행 할 수 있습니다.

특히 C ++에서는 예를 들어 모든 기본 유형에 대해이를 처리하는 템플릿 클래스를 만드는 것이 매우 쉽습니다.

그래도 핵심 언어의 일부로 이것을 지원하는 언어는 모릅니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top