Bulanık biçimlendirme dili - Fuzzy markup language

(FML) Bulanık Biçimlendirme Dili
Tarafından geliştirilmişGiovanni Acampora
Biçim türüBiçimlendirme dili
GenişletilmişXML
StandartIEEE 1855-2016

Bulanık Biçimlendirme Dili (FML) temel alan belirli bir amaç biçimlendirme dilidir XML, yapısını ve davranışını tanımlamak için kullanılır bulanık sistem onu barındırmaya ve çalıştırmaya ayrılmış donanım mimarisinden bağımsız olarak.

Genel Bakış

FML, Giovanni Acampora tarafından doktorası sırasında tasarlanmış ve geliştirilmiştir. 2004 yılında İtalya, Salerno Üniversitesi'nde Bilgisayar Bilimi kursu. Orijinal fikir, Giovanni Acampora'ya FML'yi yaratma konusunda ilham verdi. enerji tasarrufu kısıtlamaları altında insan konforunu en üst düzeye çıkarmak için etkileşimler tahsis edildi. Bu çerçeve, ilk somut örneklerden birini temsil ediyordu. Ortam Zekası. Bu öncü uygulamanın ötesinde, bulanık bir sistemi tanımlamak için XML kullanmanın en büyük avantajı, donanım / yazılım birlikte çalışabilirliğidir. Aslında, bir FML dosyasını okumak için gereken tek şey, o dosya için uygun şema ve bir FML ayrıştırıcısıdır. Bu işaretleme yaklaşımı, yazılımlar arasında bulanık sistemleri değiştirmeyi çok daha kolay hale getirir: örneğin, bir makine öğrenimi uygulaması, daha sonra doğrudan bulanık bir çıkarım motoruna okunabilen veya bulanık bir denetleyiciye yüklenebilen bulanık kuralları çıkarabilir. Ayrıca, aşağıdaki gibi teknolojilerle XSLT, FML'yi seçtiğiniz programlama dilinde derlemek, istediğiniz herhangi bir uygulamaya yerleştirmek için hazır olmak mümkündür. Mike Watts'ın popüler Hesaplamalı Zeka blogunda belirttiği gibi:[1]

"Acampora'nın FML geliştirme motivasyonu, ortam zekası uygulamaları için gömülü bulanık denetleyiciler geliştirmek gibi görünse de, FML bulanık kural çıkarma algoritmaları geliştiricileri için gerçek bir nimet olabilir: Doktora sırasındaki kendi deneyimlerime göre, bir dosya tasarlamak zorunda olduğumu biliyorum Kural çıkarma ve bulanık çıkarım motorları için uygun ayrıştırıcıları biçimlendirmek ve uygulamak, kural çıkarma algoritmasının kendisi kadar zaman alan gerçek bir acı olabilir. İşim için FML gibi bir şey kullanmayı tercih ederim. "

FML ve ilgili uygulamalara tam bir genel bakış başlıklı kitapta bulunabilir. Bulanık Biçimlendirme Dilinin gücü hakkında[2] Giovanni Acampora, Chang-Shing Lee, Vincenzo Loia ve Mei-Hui Wang tarafından düzenlenmiş ve dizide Springer tarafından yayınlanmıştır. Bulanıklık ve Yumuşak Hesaplama Üzerine Çalışmalar.

Sözdizimi, dilbilgisi ve donanım sentezi

FML, bulanık sistemlerin, klasik bir bulanık denetleyicinin bilgi tabanı, kural tabanı, bulanık değişkenler ve bulanık kurallar gibi farklı bileşenlerini modelleyebilen ilişkili semantik etiketler koleksiyonu aracılığıyla kodlanmasına olanak tanır. Bu nedenle, bulanık bir denetleyici oluşturmak için kullanılan FML etiketleri, bulanık ifadeler oluşturmak için kullanılan sözcükbirimleri kümesini temsil eder. İyi biçimlendirilmiş XML tabanlı bir dil tasarlamak için, bağlamdan bağımsız bir FML grameri, her bir XML öğesini karakterize eden adı, türü ve nitelikleri tanımlayan bir XML şeması aracılığıyla tanımlanır. Bununla birlikte, bir FML programı bir bulanık mantık denetleyicisinin yalnızca statik bir görünümünü temsil ettiğinden, bu statik görünümü hesaplanabilir bir sürüme dönüştürmek için Genişletilebilir Stil Sayfası Dili Çeviricisi (XSLT) sağlanır. Aslında, XSLT modülleri, çeviri açıklamasını içeren bir XSL dosyası kullanarak FML tabanlı bulanık denetleyiciyi genel amaçlı bir bilgisayar diline dönüştürebilir. Bu seviyede, kontrol donanım için yürütülebilir. Kısacası, FML esasen üç katmandan oluşur:

  • Bulanık mantık kontrolü için yeni bir işaretleme dili oluşturmak için XML;
  • yasal yapı taşlarını tanımlamak için bir XML Şeması;
  • Belirsiz bir denetleyici açıklamasını belirli bir programlama diline dönüştürmek için Genişletilebilir Stil Sayfası Dili Dönüşümleri (XSLT).

FML Sözdizimi

FML sözdizimi, aşağıda listelenen bulanık mantık denetleyicisinin farklı bileşenlerini tanımlayan XML etiketleri ve özniteliklerinden oluşur:

  • bulanık bilgi tabanı;
  • bulanık kural tabanı;
  • çıkarım motoru
  • bulanıklaştırma alt sistemi;
  • bulanıklaştırma alt sistemi.

Ayrıntılı olarak, her FML programının açılış etiketi <FuzzyController> modelleme altındaki bulanık denetleyiciyi temsil eder. Bu etiketin iki özelliği vardır: isim ve ip. İlk öznitelik, bulanık denetleyicinin adını ve ip bir bilgisayar ağında denetleyicinin konumunu tanımlamak için kullanılır. Bulanık bilgi tabanı, etiketiyle tanımlanır <KnowledgeBase> Bu, bulanık kural tabanını modellemek için kullanılan bulanık kavramlar kümesini korur. Fuzzyconcept ile ilgili kontrollü sistemi tanımlamak için, <KnowledgeBase> etiketi, bir dizi iç içe geçmiş etiket kullanır:

  • <FuzzyVariable> bulanık kavramı tanımlar;
  • <FuzzyTerm> bulanık kavramı tanımlayan bir dilsel terim tanımlar;
  • bulanık kümelerin bir şeklini tanımlayan bir dizi etiket, belirsiz terimlerle ilgilidir.

Öznitelikleri <FuzzyVariable> etiket: isim, ölçek, domainLeft, domainRight, tip ve yalnızca bir çıktı için birikim, buz çözücü ve varsayılan değer. isim öznitelik bulanık kavramın adını tanımlar, örneğin, sıcaklık; ölçek bulanık kavramı ölçmek için kullanılan ölçeği tanımlamak için kullanılır, örneğin, Santigrat derecesi; domainLeft ve domainRight bulanık kavramın söylem evrenini, yani bulanık kavramla ilgili gerçek değerler kümesini modellemek için kullanılır, örneğin Celsius derecesi durumunda [0 °, 40 °]; Bulanık kavramın kural içindeki konumu (sonuçtaki parça veya önceki bölüm) şu şekilde tanımlanır: tip öznitelik (girdi / çıktı); birikim öznitelik, her kuralın bir değişkeninin sonuçlarının nihai bir sonuçta kombinasyonuna izin veren bir yöntem olan biriktirme yöntemini tanımlar; buz çözücü öznitelik, kümelenme işleminden sonra elde edilen bulanık bir kümeden sayısal bir değere dönüşümün sisteme çıktı olarak verilmesi için kullanılan yöntemi tanımlar; varsayılan değer özellik, yalnızca söz konusu değişken için hiçbir kural tetiklenmediğinde kullanılan gerçek bir değeri tanımlar. <FuzzyTerm>, iki öznitelik kullanır: isim bulanık kavramla ilişkilendirilen dilsel değeri tanımlamak için kullanılır ve Tamamlayıcı, eğer doğruysa, verilen parametrelerle tanımlanan üyelik fonksiyonunun tamamlayıcısını dikkate almak gerektiğini tanımlayan bir boole özniteliği. Bulanık kavramın tanımını tamamlamak için kullanılan bulanık şekil etiketleri şunlardır:

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

Her şekillendirme etiketi, karşılık gelen bulanık kümenin gerçek ana hatlarını tanımlayan bir dizi öznitelik kullanır. Bu özniteliklerin sayısı, seçilen bulanık küme şekline bağlıdır.

Bir örnek vermek için, Damperli Çıkarım Sistemi Mathwork Matlab Fuzzy Logic Toolbox Tutorial'da anlatılmıştır. Bu Mamdani sistemi, örneğin bir restorana devretmeyi düzenlemek için kullanılır. Girişte iki değişken var (Gıda ve hizmet) ve çıktıda bir (İpucu). Değişkenler içeren bu bulanık sistemin bilgi tabanının bir kısmını modellemek için FML kodu Gıda ve İpucu aşağıda gösterilmiştir.

 <?xml version="1.0" encoding="UTF-8"?> isim ="yeni sistem" ip ="127.0.0.1">    <KnowledgeBase>         isim ="Gıda" domainleft ="0.0" domainright ="10.0" scale ="" type ="giriş">                     isim ="lezzetli" tamamlayıcı ="yanlış">                 Param1 ="5.5" Param2 ="10.0"/>            </FuzzyTerm>             isim ="kokmuş" tamamlayıcı ="yanlış">                <Üçgen Şekil Param1 ="0.0" Param2 ="2.0" Param3 ="5.5"/>            </FuzzyTerm>        </FuzzyVariable>        ...........    	 isim ="İpucu" domainleft ="0.0" domainright ="20.0" scale ="Euro" defaultValue ="0.0" bulanıklaştırıcı ="ÇARK DİŞİ"         	               birikim ="MAX"  type ="çıktı">             isim ="ortalama" tamamlayıcı ="yanlış">                <Üçgen Şekil Param1 ="5.0" Param2 ="10.0" Param3 ="15.0"/>            </FuzzyTerm>             isim ="ucuz" tamamlayıcı ="yanlış">                <Üçgen Şekil Param1 ="0.0" Param2 ="5.0" Param3 ="10.0"/>            </FuzzyTerm>             isim ="cömert" tamamlayıcı ="yanlış">                <Üçgen Şekil Param1 ="10.0" Param2 ="15.0" Param3 ="20.0"/>            </FuzzyTerm>        </FuzzyVariable>    <KnowledgeBase>    ............</FuzzyController>

Ayrıca bulanık bir şekli tanımlamak için kullanılabilecek özel bir etiket <UserShape>. Bu etiket, bulanık şekli (özel şekli) özelleştirmek için kullanılır. Özel şekil modelleme, bir dizi <Point> özel bulanık şekli tanımlayan geometrik alanın uç noktalarını listeleyen etiketler. Açıkçası, kullanılan öznitelikler <Point> etiketi x ve y koordinatlarıdır. Kural temel bileşenine gelince, FML, her biri farklı bir sistem davranışını tanımlayan bir dizi kural tabanı tanımlamaya izin verir. Her bir kural tabanının kökü şu şekilde modellenir: <RuleBase> belirsiz bir kural kümesini tanımlayan etiket. <RuleBase> etiketi beş öznitelik kullanır: isim, tip, activationMethod, andMethod ve orMethod. Açıkçası, isim öznitelik, kural tabanını benzersiz şekilde tanımlar. tip öznitelik, söz konusu kural tabanına göre bulanık denetleyicinin (Mamdani veya TSK) türünü belirtmeye izin verir. activationMethod öznitelik, işlem yapmak için kullanılan yöntemi tanımlar; andMethod ve orMethod öznitelik sırasıyla tanımlayın, ve ve veya varsayılan olarak kullanılacak algoritma. Tek kuralı tanımlamak için <Rule> etiketi kullanılır. Tarafından kullanılan öznitelikler <Rule> etiket: isim, bağlayıcı, Şebeke ve ağırlık. isim öznitelik, kuralı tanımlamaya izin verir; bağlayıcı önceki kısımdaki (ve / veya) farklı maddeleri bağlamak için kullanılan mantıksal operatörü tanımlamak için kullanılır; Şebeke seçilen bağlayıcı için kullanılacak algoritmayı tanımlar; ağırlık Çıkarım motoru aşamasında kuralın önemini tanımlar. Önceki ve sonraki kural bölümlerinin tanımı kullanılarak elde edilir. <Antecedent> ve <Consequent> etiketleri. <Clause> etiketi, önceki ve sonraki kısımdaki bulanık cümlecikleri modellemek için kullanılır. Bu etiket özniteliği kullanır değiştirici maddede kullanılan terimde yapılan bir değişikliği açıklamak için. Bu öznitelik için olası değerler şunlardır: yukarıda, altında, son derece, yoğunlaştırmak, Az çok, norm, değil, artı, biraz, biraz, çok, Yok. Bulanık cümlenin tanımını tamamlamak için iç içe <Variable> ve <Term> etiketlerin kullanılması gerekir. Bir dizi <Rule> etiketler bulanık bir kural tabanı gerçekleştirir.

Örneğin, aşağıdakilerden oluşan bir Mamdani kuralını düşünün: (yiyecekler bozuk) VEYA (servis çok kötü) öncül olarak ve bahşiş ucuz sonuç olarak. Öncü kısım iki maddeden oluşur: (yemek ekşimiş) ve (hizmet yetersiz). İlk öncül cümle kullanımları Gıda değişken olarak ve kokmuş bulanık bir terim olarak, ikinci öncül cümle ise hizmet değişken olarak yoksul bulanık bir terim olarak ve çok değiştirici olarak; sonuç fıkra kullanır İpucu bulanık bir değişken olarak ve ucuz bulanık bir terim olarak. Tam kural şudur:

EĞER (yemek ekşimiş) VEYA (hizmet çok zayıf) SONRA (bahşiş ucuz).

FML'nin bu kuralla bir kural tabanını nasıl tanımladığını görelim.

  isim ="Rulebase1" activationMethod ="MIN" andMethod ="MIN" orMethod ="MAX" type ="mamdani">       isim ="reg1" connector ="veya" operatör ="MAX" ağırlık ="1.0">           <Antecedent>                <Clause>                    <Variable>Gıda</Variable>                    <Term>kokmuş</Term>                </Clause>                 değiştirici ="çok">                    <Variable>hizmet</Variable>                    <Term>yoksul</Term>                </Clause>            </Antecedent>            <Consequent>                <Clause>                    <Variable>İpucu</Variable>                    <Term>ucuz</Term>                </Clause>            </Consequent>      </Rule>      ............</RuleBase>

Şimdi, aynı sorunu düzenleyen bir Takagi-Sugeno-Kang sistemini görelim. Mamdani sistemi ile en önemli fark, farklı bir çıktı değişkeninin tanımlanmasıdır. İpucu. <TSKVariable> etiketi, bir Tsk sisteminin kuralında kullanılabilecek bir çıktı değişkenini tanımlamak için kullanılır. Bu etiket, bir Mamdani çıktı değişkeninin aynı özniteliklerine sahiptir. domainleft ve alan hakkı öznitelik çünkü bu türden bir değişken (tsk değişkeni olarak adlandırılır) bir söylem evrenine sahip değildir. İç içe <TSKTerm> etiketi doğrusal bir işlevi temsil eder ve bu nedenle <FuzzyTerm>. <TSKValue> etiketi, doğrusal fonksiyonun katsayılarını tanımlamak için kullanılır. Aşağıdaki FML kodunun ezilmesi, çıktı değişkeninin tanımını gösterir İpucu bir Tsk sisteminde.

 <?xml version="1.0" encoding="UTF-8"?> isim ="yeni sistem" ip ="127.0.0.1">    <KnowledgeBase> 	.......         isim ="İpucu" scale ="boş" birikim ="MAX" bulanıklaştırıcı ="WA" type ="çıktı">             isim ="ortalama" order ="0">                <TSKValue>1.6</TSKValue>            </TSKTerm>             isim ="ucuz" order ="1">                <TSKValue>1.9</TSKValue>                <TSKValue>5.6</TSKValue>                <TSKValue>6.0</TSKValue>            </TSKTerm>             isim ="cömert" order ="1">                <TSKValue>0.6</TSKValue>                <TSKValue>1.3</TSKValue>                <TSKValue>1.0</TSKValue>            </TSKTerm>        </TSKVariable>    <KnowledgeBase>    ..........</FuzzyController>

Bir Tsk sistemindeki kural temel bileşeninin FML tanımı çok fazla değişmez. Tek farklı şey, <Clause> etiketinin değiştirici özniteliği yok.

Örneğin, aşağıdakilerden oluşan bir tsk kuralını düşünün (yiyecekler bozuk) VEYA (servis çok kötü) öncül olarak ve sonuç olarak, ipucu = 1,9 + 5,6 * yemek + 6,0 * hizmet şu şekilde yazılabilir bahşiş ucuz örtük bir şekilde. Yani kural şu ​​şekilde yazılabilir:

EĞER (yemek ekşimiş) VEYA (hizmet çok zayıf) SONRA (bahşiş ucuz).

FML'nin bu kuralla bir kural tabanını nasıl tanımladığını görelim.

  isim ="Rulebase1" activationMethod ="MIN" andMethod ="MIN" orMethod ="MAX" type ="tsk"> isim ="reg1" connector ="veya" operatör ="MAX" ağırlık ="1.0">            <Antecedent>                <Clause>                    <Variable>Gıda</Variable>                    <Term>kokmuş</Term>                </Clause>                <Clause>                    <Variable>hizmet</Variable>                    <Term>yoksul</Term>                </Clause>            </Antecedent>            <Consequent>                <Clause>                    <Variable>İpucu</Variable>                    <Term>ucuz</Term>                </Clause>            </Consequent>        </Rule>	............</RuleBase>

FML Dilbilgisi

Bulanık bir denetleyici oluşturmak için kullanılan FML etiketleri, bulanık ifadeler oluşturmak için kullanılan sözcükbirimleri kümesini temsil eder. Bununla birlikte, iyi biçimlendirilmiş XML tabanlı bir dili gerçekleştirmek için, bağlamdan bağımsız bir FML grameri gereklidir ve aşağıda açıklanmıştır. FML bağlamdan bağımsız dilbilgisi, bir belgenin bir belge olarak kabul edilmesi için uyması gereken kurallar kümesini ifade eden bir XML Şema Belgesi (XSD) biçiminde XML dosyasıyla modellenir. geçerli FML belgesi. Önceki tanıma dayanarak, FML XSD'nin bilgi tabanı tanımına ilişkin bir kısmı aşağıda verilmiştir.

 <?xml version="1.0" encoding="UTF-8"?> xmlns: xs ="http://www.w3.org/2001/XMLSchema">	  ........	 isim ="KnowledgeBaseType">		<xs:sequence>		    minOccurs ="0" maxOccurs ="sınırsız">			    isim ="FuzzyVariable" type ="FuzzyVariableType"/>			    isim ="TSKVariable" type ="TSKVariableType"/>			 </xs:choice>			</xs:sequence>	</xs:complexType>	 isim ="FuzzyVariableType">		<xs:sequence>			 isim ="FuzzyTerm" type ="FuzzyTermType" maxOccurs ="sınırsız"/>		</xs:sequence>		 isim ="isim" type ="xs: string" use ="gereklidir"/>		 isim ="buz çözücü" varsayılan ="ÇARK DİŞİ">			<xs:simpleType>				 taban ="xs: string">					 değer ="MM | COG | COA | WA | Özel"/>				</xs:restriction>			</xs:simpleType>		</xs:attribute>		 isim ="birikim" varsayılan ="MAX">			<xs:simpleType>				 taban ="xs: string">					 değer ="MAKS | TOPLA"/>				</xs:restriction>			</xs:simpleType>		</xs:attribute>		 isim ="ölçek" type ="xs: string" />		 isim ="domainleft" type ="xs: float"  use ="gereklidir"/>		 isim ="alan hakkı" type ="xs: float" use ="gereklidir"/>		 isim ="varsayılan değer" type ="xs: float" varsayılan ="0"/>		 isim ="tür"  varsayılan ="giriş">			<xs:simpleType>				 taban ="xs: string">					 değer ="girdi | çıktı"/>				</xs:restriction>			</xs:simpleType>		</xs:attribute>	</xs:complexType>	 isim ="FuzzyTermType">		<xs:choice>			 isim ="RightLinearShape" type ="TwoParamType"/>			 isim ="LeftLinearShape" type ="TwoParamType"/>			 isim ="PIShape" type ="TwoParamType"/>			 isim ="Üçgen Şekil" type ="ThreeParamType"/>			 isim ="Gauss Şekli" type ="TwoParamType"/>			 isim ="RightGaussianShape" type ="TwoParamType"/>			 isim ="LeftGaussianShape" type ="TwoParamType"/>			 isim ="Yamuk Şekil" type ="FourParamType"/>			 isim ="SingletonShape" type ="OneParamType"/>			 isim ="Dikdörtgen şekil" type ="TwoParamType"/>			 isim ="ZShape" type ="TwoParamType"/>			 isim ="SShape" type ="TwoParamType"/>			 isim ="UserShape" type ="UserShapeType"/>		</xs:choice>         isim ="TwoParamType">		 isim ="Param1" type ="xs: float" use ="gereklidir"/>		 isim ="Param2" type ="xs: float" use ="gereklidir"/>	</xs:complexType>	 isim ="ThreeParamType">		 isim ="Param1" type ="xs: float" use ="gereklidir"/>		 isim ="Param2" type ="xs: float" use ="gereklidir"/>		 isim ="Param3" type ="xs: float" use ="gereklidir"/>	</xs:complexType>	 isim ="FourParamType">		 isim ="Param1" type ="xs: float" use ="gereklidir"/>		 isim ="Param2" type ="xs: float" use ="gereklidir"/>		 isim ="Param3" type ="xs: float" use ="gereklidir"/>		 isim ="Param4" type ="xs: float" use ="gereklidir"/>	</xs:complexType>	 isim ="UserShapeType">		<xs:sequence>			 isim ="Nokta" type ="PointType" minOccurs ="2" maxOccurs ="sınırsız"/>		</xs:sequence>	</xs:complexType>	 isim ="PointType">		 isim ="x" type ="xs: float" use ="gereklidir"/>		 isim ="y" type ="xs: float" use ="gereklidir"/>	</xs:complexType>	 isim ="RuleBaseType">		 isim ="isim" type ="xs: string" use ="gereklidir"/>		 isim ="activationMethod" varsayılan ="MIN">			<xs:simpleType>				 taban ="xs: string">					 değer ="PROD | MIN"/>				</xs:restriction>			</xs:simpleType>		</xs:attribute>		 isim ="andMethod" varsayılan ="MIN">			<xs:simpleType>				 taban ="xs: string">					 değer ="PROD | MIN"/>				</xs:restriction>			</xs:simpleType>		</xs:attribute>		 isim ="orMethod" varsayılan ="MAX">			<xs:simpleType>				 taban ="xs: string">					 değer ="PROBOR | MAX"/>				</xs:restriction>			</xs:simpleType>		</xs:attribute>		 isim ="tür" use ="gereklidir">			<xs:simpleType>					 taban ="xs: string">						 değer ="TSK | Tsk | tsk | Mamdani | mamdani"/>					</xs:restriction>			</xs:simpleType>		</xs:attribute>	</xs:complexType>	 isim ="MamdaniRuleBaseType">		<xs:complexContent>     		 taban ="RuleBaseType">				<xs:sequence>					 isim ="Kural" type ="MamdaniFuzzyRuleType" minOccurs ="0" maxOccurs ="sınırsız"/>				</xs:sequence>			</xs:extension>		</xs:complexContent>	</xs:complexType>	 isim ="AntecedentType">		<xs:sequence>			 isim ="Madde" type ="ClauseType" maxOccurs ="sınırsız"/>		</xs:sequence>	</xs:complexType>	 isim ="MamdaniConsequentType">		<xs:sequence>			 isim ="Madde" type ="ClauseType" maxOccurs ="sınırsız"/>		</xs:sequence>	</xs:complexType>	 isim ="ClauseType">		<xs:sequence>			 isim ="Değişken">				<xs:simpleType>					 taban ="xs: string">						 değer ="çöküş"/>						 değer ="(([A-Z]) | ([a-z])) + ([A-Z] | [a-z] | [0-9]) *"/>					</xs:restriction>				</xs:simpleType>			</xs:element>			 isim ="Süre" type ="xs: string">			</xs:element>		</xs:sequence>		 isim ="değiştirici" use ="isteğe bağlı">			<xs:simpleType>				 taban ="xs: string">					                                                 değer ="yukarıda | aşağıda | aşırı | yoğunlaştır | daha_veya_siz | norm | değil | artı | biraz | biraz | çok"/>				</xs:restriction>			</xs:simpleType>		</xs:attribute>	</xs:complexType>	..........</xs:schema>

FML Sentezi

Bir FML programı, bulanık bir sistemin yalnızca statik bir görünümünü gerçekleştirdiğinden, bu statik görünümü hesaplanabilir bir sürüme dönüştürmek için Genişletilebilir Stil Sayfası Dil Çeviricisi (XSLT) sağlanır. Özellikle, XSLT teknolojisi, bulanık bir denetleyici açıklamasını birkaç donanım platformunda hesaplanmak üzere genel amaçlı bir bilgisayar diline dönüştürmek için kullanılır. Şu anda, çalıştırılabilir Java kodunda bir XSLT dönüştürme FML programı uygulanmıştır. Böylelikle Java sanal makinelerinin sağladığı şeffaflık yetenekleri sayesinde, Java teknolojileri ile çok sayıda donanım mimarisi üzerinde çalıştırılabilen ve FML ile üst düzey modellenmiş bir bulanık denetleyici elde etmek mümkündür. Ancak XSLT, belirli bir donanımla ilgili eski dillerdeki veya diğer genel amaçlı dillerdeki FML programlarını dönüştürmek için de kullanılabilir.

Referanslar

  1. ^ Watt, Mike (2011-05-28). "Hesaplamalı Zeka: Bulanık Biçimlendirme Dili". Computational-intelligence.blogspot.it. Alındı 2012-06-11.
  2. ^ Acampora, Giovanni; Loia, Vincenzo; Lee, Chang-Shing; Wang, Mei-Hui, editörler. (2013). Bulanık Biçimlendirme Dilinin gücü hakkında. Cilt 296. Bulanıklık ve Yumuşak Hesaplama Çalışmaları. 296. Springer. doi:10.1007/978-3-642-35488-5. ISBN  978-3-642-35487-8.

daha fazla okuma

  • Lee, Chang-Shing; et al. (Aralık 2010). "Tip-2 bulanık ontoloji ve bulanık biçimlendirme diline dayalı diyet değerlendirmesi". Uluslararası Akıllı Sistemler Dergisi. 25 (12): 1187–1216. doi:10.1002 / int.20449. (abonelik gereklidir)
  • Acampora, G .; Loia, V. (2005). "Uyarlanabilir domotik çerçeve için bulanık kontrol birlikte çalışabilirliği ve ölçeklenebilirlik". Endüstriyel Bilişimde IEEE İşlemleri. 1 (2): 97–111. doi:10.1109 / TII.2005.844431.
  • Acampora, G .; Loia, V. (2008). "Ambient Intelligence için her yerde bulunan bulanık bilgi işlem önerisi". Bilgi Bilimleri. 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). Akıllı sağlık uygulamaları için "ontoloji tabanlı çoklu ajan". 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). "Ortam zekası uygulamaları için birlikte çalışabilir ve uyarlanabilir bulanık hizmetler". Otonom ve Uyarlanabilir Sistemlerde ACM İşlemleri. 5 (2): 1–26. doi:10.1145/1740600.1740604.