퍼지 마크업 언어

Fuzzy markup language
(FML) 퍼지 마크업 언어
개발자조반니 아캄포라
형식 유형마크업어
연장 위치XML
표준IEEE 1855-2016

FML(Fuzzy Markup Language)은 XML을 기반으로 하는 특정 목적 마크업 언어로, 호스트와 그것을 실행하는 하드웨어 아키텍처와는 독립적으로 퍼지 시스템의 구조와 동작을 기술하는데 사용된다.

개요

FML은 Giovanni Acampora에 의해 2004년 이탈리아 Salerno 대학교의 컴퓨터 과학 박사 과정 동안 설계되고 개발되었다. 원래의 아이디어는 Giovanni Acampora가 FML을 만들도록 영감을 주었고, 에너지 절약 제약 하에서 인간의 편안함을 극대화하기 위해 상호작용이 바쳐진 이질적인 장치들이 특징인 생활 환경을 자동으로 제어하기 위한 협동 퍼지 기반 프레임워크의 필요성이었다. 이 프레임워크는 앰비언트 인텔리전스의 첫 번째 구체적인 예들 중 하나를 나타냈다. 이러한 선구적 애플리케이션을 넘어, 퍼지 시스템을 설명하기 위해 XML을 사용하는 주요 이점은 하드웨어/소프트웨어 상호운용성이다. 실제로, FML 파일을 읽기 위해 필요한 모든 것은 해당 파일에 적합한 스키마와 FML 파서다. 이 마크업 접근방식은 소프트웨어 간에 퍼지 시스템을 교환하는 것을 훨씬 쉽게 한다. 예를 들어, 머신러닝 애플리케이션은 퍼지 추론 엔진으로 직접 읽히거나 퍼지 컨트롤러로 업로드될 수 있는 퍼지 규칙을 추출할 수 있다. 또한, XSLT와 같은 기술을 통해, FML을 원하는 어떤 응용 프로그램에 포함시킬 준비가 되어 있는, 당신이 선택한 프로그래밍 언어로 컴파일할 수 있다. Mike Watts가 유명한 Computer Intelligence 블로그에서 언급한 바와 같이:[1]

"FML을 개발하게 된 동기는 주변 인텔리전스 애플리케이션을 위한 내장된 퍼지 컨트롤러를 개발하기 위한 것으로 보이지만, FML은 퍼지 규칙 추출 알고리즘의 개발자들에게 실질적인 도움이 될 수 있다: 내 박사 과정 동안, 파일 형식을 설계하고 규칙 추가에 적합한 파서를 구현해야 한다는 것을 알고 있다.ction과 퍼지 추론 엔진은 규칙 추출 알고리즘 자체를 구현하는 데 많은 시간이 소요되며, 실제 문제가 될 수 있다. 차라리 내 일에 FML 같은 것을 사용했을 것이다."

FML 및 관련 응용 프로그램의 전체 개요는 Giovanni Acampora, Chang-Sing Lee, Vincenzo Loia 및 Mei-Hui Wang[2] 편집하고 Springer가 출판한 "FuzzzinessSoft Computing에 관한 연구" 시리즈에서 찾을 수 있다.

구문, 문법 및 하드웨어 합성

FML은 지식 기반, 규칙 기반, 퍼지 변수 및 퍼지 규칙과 같은 고전적인 퍼지 제어기의 다른 구성요소를 모델링할 수 있는 상관 관계된 의미 태그의 모음을 통해 퍼지 시스템을 코드화할 수 있도록 허용한다. 따라서 퍼지 컨트롤러를 구축하는 데 사용되는 FML 태그는 퍼지 식을 만드는 데 사용되는 어휘소의 집합을 나타낸다. 잘 형성된 XML 기반 언어를 설계하기 위해, FML 문법은 각 XML 요소가 특징인 이름, 유형 및 속성을 정의하는 XML 스키마에 의해 정의된다. 그러나 FML 프로그램은 퍼지 논리 제어기의 정적 보기만 나타내기 때문에 이 정적 보기를 계산 가능한 버전으로 변경하기 위해 소위 eXtensible Stylesheet Language Translator(XSLT)가 제공된다. 실제로 XSLT 모듈은 변환 설명이 포함된 XSL 파일을 사용하여 범용 컴퓨터 언어로 FML 기반 퍼지 컨트롤러를 변환할 수 있다. 이 수준에서 컨트롤은 하드웨어에 대해 실행 가능하다. 간단히 말해서, FML은 기본적으로 세 개의 레이어에 의해 구성된다.

  • 퍼지 논리 제어를 위한 새로운 마크업 언어를 만들기 위한 XML.
  • 법적 구성 요소를 정의하기 위한 XML 스키마
  • 퍼지 제어기 설명을 특정 프로그래밍 언어로 변환하기 위한 eXtensible Stylesheet Language Transformation(XSLT)

FML 구문

FML 구문은 아래에 나열된 퍼지 논리 제어기의 다른 구성요소를 설명하는 XML 태그와 속성으로 구성된다.

  • 모호한 지식 기반
  • 퍼지 규칙 기준;
  • 추론 엔진
  • 솜털화 서브시스템;
  • 퍼지화 서브시스템

상세하게, 각 FML 프로그램의 오프닝 태그는 <FuzzyController> 모델링 중인 퍼지 컨트롤러를 나타냄. 이 태그는 이름ip라는 두 가지 속성을 가지고 있다. 첫 번째 속성은 퍼지 컨트롤러의 이름을 지정할 수 있도록 허용하고 ip는 컴퓨터 네트워크에서 컨트롤러의 위치를 정의하는 데 사용된다. 퍼지 지식 기반은 태그를 통해 정의된다. <KnowledgeBase> 퍼지 규칙 기반을 모델링하는 데 사용되는 퍼지 개념 집합을 유지한다. 퍼지 개념과 관련된 제어 시스템을 정의하기 위해, <KnowledgeBase> 태그는 중첩된 태그 집합을 사용한다.

  • <FuzzyVariable> 퍼지 개념을 규정한다.
  • <FuzzyTerm> 퍼지 개념을 설명하는 언어 용어를 정의한다.
  • 퍼지 집합의 모양을 정의하는 태그 집합은 퍼지 항과 관련이 있다.

의 속성 <FuzzyVariable> 태그: 이름, 척도, domainLeft, domainRight, 유형 및 출력, 누적, 디퓨저defaultValue. 이름 속성은 퍼지 개념의 명칭(예: 온도)을 정의하고, 스케일퍼지 개념의 측정에 사용되는 척도를 정의하는데 사용된다. 도메인 Left와 domainRight는 퍼지 개념의 담화 우주, 즉 퍼지 개념과 관련된 실제 값들의 집합을 모형화하는 데 사용된다(예: [0°,40°] 섭씨도의 경우, 퍼지 개념의 규칙(이후 부분 또는 선행 부분)의 위치는 유형 속성(입력/출력)에 의해 정의된다. 축적 속성은 최종 결과에서 각 규칙의 변수의 결과의 조합을 허용하는 방법인 축적 방법을 정의한다. 디퓨지퍼 속성(defuzifier attribute)은 나를 정의한다.집계 프로세스 후에 얻은 퍼지 집합에서 시스템으로 출력하기 위한 숫자 값으로 변환을 실행하는 데 사용되는 thod; defaultValue 속성은 문제가 발생한 변수에 대해 규칙이 실행되지 않은 경우에만 사용되는 실제 값을 정의한다. 태그에 대하여 <FuzzyTerm>, 그것은 두 가지 속성, 즉 퍼지 개념과 보완적인 언어적 가치 연관성을 식별하기 위해 사용되는 이름, 그것이 사실이라면 주어진 매개변수에 의해 정의된 멤버십 함수의 보완을 고려할 필요가 있는 부울 속성이다. 퍼지 개념의 정의를 완료하는 데 사용되는 퍼지 형상 태그는 다음과 같다.

  • <TRIANGULARSHAPE>
  • <RIGHTLINEARSHAPE>
  • <LEFTLINEARSHAPE>
  • <PISHAPE>
  • <GAUSSIANSHAPE>
  • <RIGHTGAUSSIANSHAPE>
  • <LEFTGAUSSIANSHAPE>
  • <TRAPEZOIDSHAPE>
  • <SSHAPE>
  • <ZSHAPE>
  • <RECTANGULARSHAPE>
  • <SINGLETONSHAPE>

모든 쉐이핑 태그는 해당 퍼지 집합의 실제 윤곽을 정의하는 속성 집합을 사용한다. 이러한 속성의 수는 선택한 퍼지 집합 모양에 따라 달라진다.

예를 들어, Mathworks Matlab Fuzzy Logic Toolbox Tutorial에 설명된 Tipper 추론 시스템을 고려해 보십시오. 이 맘다니 시스템은 예를 들어 식당에 팁을 주는 것을 규제하기 위해 사용된다. 입력(식품서비스)에 두 가지 변수가 있고 출력()에 한 가지 변수가 있다. 계량형 식품을 포함하는 이 퍼지 시스템의 지식 기반 부분을 모델링하기 위한 FML 코드는 다음과 같다.

 <?xml 버전="1.0" 인코딩="UTF-8"?>><후지컨트롤러 이름="newSystem" ip="127.0.0.1"><KnowledgeBase><후지바리블 이름="food" domainleft="10.0" scale=" type="put"><후지용어 이름="맛있는"보완="거짓" > <좌선형 쉐이프 파라미터1="5.5" 파라2="10.0"/></Fuzzy용어> <후지용어 name="rancid" component="false" > <삼각형 쉐이프 Param1="0.0" Param2="2.0" Param3="5.5"/></Fuz지용어> </FuzziVariable> ...............<Fuz지변량 이름="tip" domainleft="0.0" domainrift="20.0" scale="Euro" defaultValue="0.0" defuzier="COG" 축적=""MAX" 타입="출력" > <후지용어 이름="평균"보완="거짓" > <삼각형 쉐이프 파라미터1="5.0" Param2="10.0" Param3="15.0"/></Fuz지용어> <후지용어명="cheap"보완="false" > <삼각형 쉐이프 파라미터1="0.0" Param2="5.0" Param3="10.0"/></Fuz지용어> <후지용어 이름="일반" 보완="거짓" > <삼각형 쉐이프 파라미터1="10.0" Param2="15.0" Param3="20.0"/></Fuz지용어> </FuzziVariable> </KnowledgeBase> ............ </Fuz지 컨트롤러> 

퍼지 형상을 정의하는 데 사용될 수 있는 특수 태그는 <UserShape>. 이 태그는 퍼지 셰이프(사용자 정의 셰이프)를 사용자 정의하는 데 사용된다. 사용자 정의 형상 모델링은 다음 세트의 <Point> 사용자 정의 퍼지 모양을 정의하는 기하학적 영역의 극한 지점을 나열하는 태그. 분명히, 에 사용된 속성은 <Point> 태그는 x 좌표와 y 좌표다. 규칙 기반 구성요소에 대해 FML은 일련의 규칙 기반들을 정의할 수 있도록 허용하며, 각 구성요소는 시스템의 다른 동작을 설명한다. 각 규칙 기반에 대한 루트 모델링 방법 <RuleBase> 퍼지 규칙 집합을 정의하는 태그.<RuleBase> 태그는 이름, 유형, 활성화 방법, 그리고 MethodorMethod의 5가지 속성을 사용한다. 이름 속성은 규칙 기준을 고유하게 식별한다. 유형 속성은 문제의 규칙 기반에 대한 퍼지 컨트롤러(Mamdani 또는 TSK)의 종류를 지정할 수 있다. activationMethod 속성은 프로세스를 함축하는 데 사용되는 방법을 정의하고, 및 Method 속성과 orMethod 속성은 각각또는 알고리즘을 기본으로 정의한다. 단일 규칙을 정의하려면 <Rule> 태그가 사용된다. 에서 사용되는 속성 <Rule> 태그는 이름, 커넥터, 연산자중량이다. 이름 속성은 규칙을 식별하는 것을 허용한다. 커넥터는 선행 부분(및/또는)의 다른 절들을 연결하는 데 사용되는 논리 연산자를 정의하는데 사용된다. 연산자는 선택한 커넥터에 사용할 알고리즘을 정의하고, 무게는 추론 엔진 단계에서 규칙의 중요성을 정의한다. 선행 규칙 및 결과 규칙 부분의 정의는 다음을 사용하여 얻는다. <Antecedent> 그리고 <Consequent> 꼬리표를 달다 <Clause> 태그는 선행 및 결과 부분의 퍼지 절을 모형화하는 데 사용된다. 이 태그는 속성 한정자를 사용하여 절에 사용된 용어의 수정을 설명한다. 이 속성에 대해 가능한 값은 , 아래, 극단, 심화, 또는 이하, 표준, 더하기, 약간, 약간, 아주, 전혀 없다. 내포된 퍼지 절의 정의를 완료하려면 <Variable> 그리고 <Term> 태그를 사용해야 한다. 일련의 <Rule> 태그는 퍼지 규칙 기반을 실현한다.

예를 들어, (음식은 산산조각이) OR(서비스가 매우 열악함)에 의해 구성된 맘다니 규칙을 선행으로 간주하고 결과적으로 이 싸다고 생각해 보자. 선행 부분은 (음식이란) (서비스가 형편없음)의 두 절에 의해 형성된다. 첫 번째 선행 조항은 식품을 퍼지 용어로, 두 번째 선행 조항은 서비스를 퍼지 용어로 사용하는 반면, 두 번째 선행 조항은 서비스를 변수로 사용하는 반면, 퍼지 용어와 같이 빈약하고 수식어처럼 매우 한정적이다. 결과 조항은 을 퍼지 변수로 사용하며 퍼지 용어와 같이 저렴하다. 전체 규칙은 다음과 같다.

만약 (음식이 변질되어 있다) OR (서비스가 매우 열악하다) 그렇다면 (팁은 싸다.

FML이 이 규칙으로 규칙 기반을 어떻게 정의하는지 봅시다.

 <룰베이스 이름="규칙 기반1" activationMethod="MIN"Method="MIN" 또는 Method="MAX" type="mamdani" > <규칙 이름="reg1" connector="or" 연산자="MAX"weight="1.0">,<>Antecedent>, <, Clause>, <, Variable>, food<, /Variable>,<>Term>, rancid<, /Term>,<>/Clause>, <, 조항 modifier="매우">, <, Variable>, service<, /Variable>,<>.Term>, poor<, /Term>,<>/Clause>,<>/Antecedent>, <, Consequent>, <, Clause>, <, Variable>, tip<, /Variable>,<>.Term>, cheap<, /Term>,<>/Clause>,<>/Consequent>,<>/Rule>.……<>/RuleBase&gt을 말한다. 

이제, 같은 문제를 규제하는 타카기-스게노-캉 제도를 보자. 맘다니 시스템과의 가장 중요한 차이점은 다른 출력 변수 의 정의다.<TSKVariable> 태그는 Tsk 시스템의 규칙에 사용할 수 있는 출력 변수를 정의하는 데 사용된다. 이 태그는 이런 종류의 변수(tsk-variable이라 함)가 담론의 우주를 갖지 않기 때문에 도메인 왼쪽과 도메인 오른쪽 속성을 제외한 맘다니 출력 변수의 속성이 같다. 내포된 <TSKTerm> 태그는 선형 함수를 나타내기 때문에 완전히 다르다. <FuzzyTerm>. The <TSKValue> 태그는 선형 함수의 계수를 정의하는 데 사용된다. 다음의 FML 코드의 크런치는 Tsk 시스템에서 출력 변수 의 정의를 보여준다.

 <?xml 버전="1.0" 인코딩="UTF-8"?>><후지컨트롤러 이름="newSystem" ip="127.0.0.1"><KnowledgeBase> .......<TSKVariable name="tip" scale="null" 축적="MAX" 디퍼지퍼="WA"type="output">,<>TSKTerm name="평균"order="0">,<>TSKValue>. 1.6<, /TSKValue>,<>/TSKTerm>,<>TSKTerm name=" 값싼"order="1">,<>TSKValue>. 1.9<, /TSKValue>,<>TSKValue>, 5.6<, /TSKValue>,<>TSKValue>, 6.0<, /TSKValue>,<>/TSKTerm>,<>TSKTerm name="관대한"order="1">,<>TSKValue>0.6<, /TSKValue>,<>TSKValue>. 1.3<, /TSKValue>,<>TSKValue>. 1.0<, /TSKValue>,<>/TSKTerm>,<>/TSKVariable>, <, KnowregeBase> ..........</후지컨트롤러> 

Tsk 시스템의 규칙 기반 구성요소에 대한 FML 정의는 크게 변경되지 않는다. 단 한가지 다른 점은 그 두 가지가 있다. <Clause> 태그에 한정자 속성이 없음.

예를 들어, (식품은 산산조각이) OR(서비스가 매우 열악함)에 의해 구성된 tsk 규칙을 선행으로 간주하고, 결과적으로 으로 쓸 수 있는 tip=1.9+5.6*food+6.0* 서비스는 암묵적으로 저렴하다. 따라서 이 규칙은 다음과 같은 방법으로 쓰여질 수 있다.

만약 (음식이 변질되어 있다) OR (서비스가 매우 열악하다) 그렇다면 (팁은 싸다.

FML이 이 규칙으로 규칙 기반을 어떻게 정의하는지 봅시다.

 <룰베이스 이름="규칙 기반1" activationMethod="MIN"Method="MIN" 또는 Method="MAX" type="tsk" > <규칙 이름="reg1" connector="or" 연산자="MAX"weight="1.0">,<>Antecedent>, <, Clause>, <, Variable>, food<, /Variable>,<>Term>, rancid<, /Term>,<>/Clause>, <, Clause>, <, Variable>, service<, /Variable>,<>.Term>, poor<, /Term>,<>/Clause>,<>/Antecedent>, <, Consequent>, <, Clause>, <, Variable>, tip<, /Variable>,<>.Term>, cheap<, /Term>,<>/Clause>,<>/Consequent>,<>/Rule>.……<>/RuleBase&gt을 말한다. 

FML 문법

퍼지 컨트롤러를 구축하는 데 사용되는 FML 태그는 퍼지 식을 만드는 데 사용되는 어휘소의 집합을 나타낸다. 그러나, 잘 형성된 XML 기반 언어를 실현하기 위해서는 FML 문맥 없는 문법이 필요하며, 이하에 기술되어 있다. FML 컨텍스트 프리 문법은 XML 파일에 의해 XML 스키마 문서(XSD) 형태로 모델링되어 유효한 FML 문서로 간주되기 위해 문서가 준수해야 하는 규칙 집합을 표현한다. 이전 정의에 기초하여 기술 자료 정의에 관한 FML XSD의 일부는 다음과 같다.

 <?xml 버전="1.0" 인코딩="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">    ........  <xs:complexType name="KnowledgeBaseType"> <xs:sequence> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="FuzzyVariable" type="FuzzyVariableType"/> <xs:element name="TSKVariable" 유형="TSKVariableType"/>,<>/xs:choice>,<>/xs:sequence>,>/xs:complexType>,<>xs:complexType name="FuzzyVariableType"><>xs:sequence>,>xs:요소 name="FuzzyTerm"type="FuzzyTermType"maxOccurs="unbounded"/>,<>/xs:sequence>,>xs:특성 name="name"type="xs:string"use="required"/>,<>xs:특성 name="defuzz.ifier"default="COGE"><xs:simpleType><xs:restring base="xs:string"><xs:pattern value="MM COA WA 커스텀"/> </xs:제한> </xs:simpleType> </xs:attribute> <xs:attribute name="accumulation" default="MAX" > <xs:simpleType> <xs:restring base="xs:string" > <xs:pattern value="MAXSUM"/>,<>/xs:restriction>,<>/xs:simpleType>,<>/xs:attribute>,<>xs:특성 name="scale"type="xs:string"/>,<>xs:특성 name="domainleft"type="xs:float"use="required"/>,<>xs:특성 name="domainright"type="xs:float"use="required"/>,<>xs:특성 name="defaultValue"type="xs:float"default="0"/>&.그것은, xs:name="형식"default="입력"> 특성,<>사랑해:simpleType>,<>xs:제한 base="xs:문자열">,<>xs:패턴 value="입력 출력"/>,>/xs:restriction>,<>/xs:simpleType>,<>/xs:attribute>,<>/xs:complexType>,<>xs:complexType name="FuzzyTermType">,<>xs:choice>,<>xs:요소 name="RightLinearShape"type="TwoParamType"/>,<>xs:요소 name="LeftLinearS.hape"type="TwoParamType"/>,<>xs:요소 name="PIShape" type="TwoParamType"/><xs:element name="삼각형 모양" 유형="3ParamType"/><xs:element name="GaussianShape" type="TwoParamType"/"TwoParamType"/"TwoParamType"/"TwoS:element name="LeftGaussianShape" type="TwoParamType"/><xs:element name="사다리꼴 쉐이프" 유형="4ParamType"/><xs:element name="SingletonShape" type="OneParamType"/> <xs:element name="RectangularShape" type="TwoParamType"/><xs:element name="ZShape" type="TwoParamType"/><xs:element name="SShape" type="TwoParamType"/><xs:element name="UserShape" type="UserShapeType"/> </xs:선택> <xs:complexType name="TwoParamType">><xs:attribute name="Param1" type="xs:float" use="required"/"Param2" type="xs:float" use="></x:complexType="="ThreeParamType"> <xs:attribute name="Param1" type="xs:float" use="required"/> <xs:attribute name="Param2" type="xs:float" use="required"/> <xs:attribute name="Param3" type="xs:float" use="required"/> </xs:complexType> <xs:complexType name="FourParamType"> <xs:attribute name="Param1" type="xs:float" use="required"/> <xs:attribute name="Param2" type="xs:float" use="required"/> <xs:attribute name="Param3" type="xs:float" use="required"/> <xs:attribute name="Param4" type="xs:float" use="required"/> </xs:complexType> <xs:complexType name="UserShapeType" > <xs:sequence> <xs:element name="점" 유형="PointType" minOcurs="2" maxOcurs="unbounded"/></xs:sequence> </xs:complexType> <xs:complexType name="PointType>><xs:attribute name="x" type="xs:float" use="required"/><xs:float" type="y" type="y" type="required"/></xs:complexType=name="="""RuleBaseType"><xs:attribute name="name" type="xs:string" use="required"/><xs:attribute name="activationMethod" default="MIN"><xs:simpleType><xs:제한 base="xs:string"><xs:pattern value="PROD MIN"/> </xs:제한> </xs:simpleType> </xs:attribute> <xs:attribute name="and Method" default="MIN"><xs:simpleType><xs:제한 base="xs:string"><xs:pattern value="PROD MIN"/> </xs:제한> </xs:simpleType> </xs:attribute> <xs:attribute name="orMethod" default="MAX" > <xs:simpleType> <xs:restring base="xs:string" > <xs:pattern value="PRVOR MAX"/> </xs:simpleType> </xs:simpleType> </xs:attribute name="type" required"> <xs:simpleType> <xs:string> <x:patternal value="TSK Tsk tsk Mamdani"/></xs:simpleType> </xs:attribute> </xs:xs:complexType> <xs:complexType 이름="MamdaniRuleBaseType"><x:complexContention base="RuleBaseType"> <xs:sequence> <xs:element name="Rule" type="MamdaniFuzzyRuleType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="AntecedentType"><>xs:sequence>,>xs:요소 name="Clause"type="ClauseType"maxOccurs="unbounded"/>,<>/xs:sequence>,>/xs:complexType>,<>xs:complexType name="MamdaniConsequentType"><>xs:sequence>,>xs:요소 name="Clause"type="ClauseType"maxOccurs="unbounded"/>, <, /xs:sequence>,>/xs:complexType&gt을 말한다. <>xs:complexType name="ClauseType">,<>xs:sequence>,>xs:element name="Variable"><xs:simpleType><xs:restriction base="xs:whiteSpace value="collapse"/><xs:patter value="([A-Z])([a-Z])+[a-z][0-9]*"/> </xs:제한> </xs:simpleType> </xs:element> <xs:element> <xs:element name="Term"type="xs:string"><>/xs:element>,<>/xs:sequence>,>xs:특성 name="modifier"use="optional"><>xs:simpleType>,<>xs:제한 base="xs:아래 극도로 거듭 될수록 심해지more_or_less 규범지 않약간 다소very"/> plus string"><>xs:패턴 value="above,>/xs:restriction>,<>/xs:simpleType>,<>/.xs:attribute>,<>/xs:complexType>,..........<>/xs:schema>. 

FML 합성

FML 프로그램은 퍼지 시스템의 정적 보기만 구현하므로, 이 정적 보기를 계산 가능한 버전으로 변경하기 위해 소위 eXtensible Stylesheet Language Translator(XSLT)가 제공된다. 특히 XSLT 기술은 퍼지 제어기 설명을 범용 컴퓨터 언어로 변환하여 여러 하드웨어 플랫폼에서 계산한다. 현재, 실행 가능한 자바 코드의 FML 프로그램을 변환하는 XSLT가 구현되었다. 이러한 방식으로, 자바 가상 머신이 제공하는 투명성 기능 덕분에, FML을 통해 높은 수준의 방법으로 모델링된 퍼지 컨트롤러를 얻을 수 있고 자바 기술을 통해 하드웨어 아키텍처의 많은 부분에서 실행이 가능하다. 그러나 XSLT는 특정 하드웨어와 관련된 레거시 언어 또는 기타 범용 언어로 FML 프로그램을 변환하는 데도 사용할 수 있다.

참조

  1. ^ Watts, Mike (2011-05-28). "Computational Intelligence: Fuzzy Markup Language". Computational-intelligence.blogspot.it. Retrieved 2012-06-11.
  2. ^ Acampora, Giovanni; Loia, Vincenzo; Lee, Chang-Shing; Wang, Mei-Hui, eds. (2013). On the power of Fuzzy Markup Language. Vol.296. Studies in Fuzziness and Soft Computing. Vol. 296. Springer. doi:10.1007/978-3-642-35488-5. ISBN 978-3-642-35487-8.

추가 읽기

  • Lee, Chang-Shing; et al. (December 2010). "Diet assessment based on type-2 fuzzy ontology and fuzzy markup language". International Journal of Intelligent Systems. 25 (12): 1187–1216. doi:10.1002/int.20449. (필요한 경우)
  • Acampora, G.; Loia, V. (2005). "Fuzzy control interoperability and scalability for adaptive domotic framework". IEEE Transactions on Industrial Informatics. 1 (2): 97–111. doi:10.1109/TII.2005.844431.
  • Acampora, G.; Loia, V. (2008). "A proposal of ubiquitous fuzzy computing for Ambient Intelligence". Information Sciences. 178 (3): 631–646. doi:10.1016/j.ins.2007.08.023.
  • Acampora, G.; Wang, M.-H.; Lee, C.-S.; Hsieh, K.-L.; Hsu, C.-Y.; Chang, C.-C. (2010). "Ontology-based multi-agents for intelligent healthcare applications". Journal of Ambient Intelligence and Humanized Computing. 1 (2): 111–131. doi:10.1007/s12652-010-0011-5.
  • Acampora, G.; Loia, V.; Gaeta, M.; Vasilakos, A.V. (2010). "Interoperable and adaptive fuzzy services for ambient intelligence applications". ACM Transactions on Autonomous and Adaptive Systems. 5 (2): 1–26. doi:10.1145/1740600.1740604.