문제

나는 학교에서 몇 가지 AI 알고리즘을 사용하고 있으며 사람들은 퍼지 로직이라는 단어를 사용하여 몇 가지 사례로 해결할 수있는 상황을 설명합니다. 내가 책으로 돌아갈 때 나는 단지 상태가 켜기로가는 대신 대각선 선이고 두 상태가 다른 "레벨"에있을 수있는 방법에 대해 읽었습니다.

나는 Wikipedia 항목과 몇 개의 튜토리얼과 "퍼지 로직을 사용하는"(에지 탐지기 및 1 륜자가 제어 로봇)를 읽은 프로그램을 읽었지만 여전히 이론에서 코드로가는 것이 매우 혼란 스럽습니다. . 덜 복잡한 정의에서 퍼지 논리는 무엇입니까?

도움이 되었습니까?

해결책

퍼지 로직은 상태 멤버십이 본질적으로 int 0 또는 1 대신 범위 0..1의 플로트 인 논리입니다. 순진한 이진 논리로 얻는 것보다 자연스럽게 미세 조정됩니다.

예를 들어 활성 TCP 연결을 기반으로 시스템 활동을 돌리는 논리가있을 수 있습니다. 컴퓨터의 "약간 너무 많은"TCP 연결을 1000으로, "너무 많은"TCP 연결을 2000으로 정의한다고 가정 해보십시오. 주어진 시간에 시스템은 0 (<= 1000)의 "너무 많은 TCP 연결"상태를 가지고 있습니다. 1 (> = 2000)까지, 이용 가능한 스로틀 메커니즘을 적용하는 계수로 사용할 수 있습니다. 이것은 "너무 많은"을 결정하는 방법을 알고 있고 완전히 스로틀 또는 "너무 많지 않은"순진한 바이너리 논리보다 시스템 동작에 훨씬 더 용서하고 반응합니다.

다른 팁

퍼지 로직을 시각화하는 좋은 방법은 다음과 같습니다.

전통적으로 바이너리 로직을 사용하면 멤버십 기능이 참 또는 거짓 인 그래프가있는 반면 퍼지 로직 시스템에서는 멤버십 기능이 아닙니다.

1|
 |   /\
 |  /  \
 | /    \
0|/      \
 ------------
   a  b c   d

이 기능이 "땅콩을 좋아한다"고 잠시 동안 가정하십시오.

a. kinda likes peanuts
b. really likes peanuts
c. kinda likes peanuts
d. doesn't like peanuts

함수 자체는 삼각형 일 필요는 없으며 종종 그렇지 않습니다 (ASCII 아트에서는 더 쉽습니다).

퍼지 체계 아마도 이것들 중 많은 사람들이있을 것입니다.

1|   A    B
 |   /\  /\      A = Likes Peanuts
 |  /  \/  \     B = Doesn't Like Peanuts
 | /   /\   \
0|/   /  \   \
 ------------
  a  b  c d

그래서 이제 C는 "친절한 땅콩을 좋아하고, 좀 땅콩을 좋아하지 않는다"고 D는 "실제로 땅콩을 좋아하지 않습니다"입니다.

해당 정보를 기반으로 그에 따라 프로그래밍 할 수 있습니다.

이것이 시각적 학습자에게 도움이되기를 바랍니다.

퍼지 로직의 가장 좋은 정의는 발명가가 제공합니다. Lotfi Zadeh:

"퍼지 논리는 인간이 그들을 해결하는 방식과 유사한 방식으로 컴퓨터에 문제를 나타내는 수단과 퍼지 논리의 본질은 모든 것이 정도의 문제라는 것입니다."

인간을 해결하는 방식과 유사한 컴퓨터의 문제를 해결한다는 의미는 농구 경기에서 간단한 예로 쉽게 설명 할 수 있습니다. 플레이어가 먼저 다른 플레이어를 지키고 싶다면 자신의 키가 얼마나되고 자신의 연주 기술이 얼마나되는지 고려해야합니다. 단순히 자신이 지키고 싶은 플레이어가 키가 크고 그에 비해 매우 느리게 플레이하는 경우, 그는 자신의 본능을 사용하여 그 선수에게 불확실성이 있기 때문에 그 선수를 보호 해야하는지 고려할 것입니다. 이 예에서 중요한 점은 속성이 플레이어와 관련이 있고 라이벌 플레이어의 높이와 스킬에 대한 학위가 있다는 것입니다. 퍼지 논리는이 불확실한 상황에 대한 결정 론적 방법을 제공합니다.

퍼지 논리를 처리하기위한 몇 가지 단계가 있습니다 (그림 -1). 이 단계는 다음과 같습니다. 첫째, 파삭 파삭 한 입력이 퍼지 입력으로 변환되는 퍼지 화 두 번째로 이러한 입력은 퍼지 규칙으로 처리되어 퍼지 출력을 생성하고 퍼지 논리에서 결과 정도가 발생하여 다른 정도의 결과가있을 수 있습니다.

image004

그림 1 - 퍼지 프로세스 단계 (David M. Bourg P.192)

퍼지 프로세스 단계를 예시하기 위해 이전 농구 게임 상황을 사용할 수 있습니다. 예제에서 언급했듯이 라이벌 플레이어는 1.87 미터로 키가 크며 플레이어에 비해 키가 크며 3m/s로 드리블 할 수 있으며 플레이어에 비해 느립니다. 이 데이터에 추가 된 일부 규칙을 고려해야 할 일부 규칙은 다음과 같은 퍼지 규칙이라고합니다.

if player is short but not fast then guard,
if player is fast but not short then don’t guard
If player is tall then don’t guard
If player is average tall and average fast guard

image005

그림 2 - 키가 얼마인지

image007

그림 3- 얼마나 빠릅니다

규칙과 입력 데이터에 따르면 퍼지 시스템에 의해 출력이 생성됩니다. 가드의 학위는 0.7이고, 가드의 정도는 0.4이며, 경비는 0.2입니다.

image009

그림 4 출력 퍼지 세트

마지막 단계에서 훼손, 게임 중에 플레이어를 지키기 위해 사용해야하는 에너지를 결정할 수있는 숫자 인 선명한 출력을 만들기 위해 사용하고 있습니다. 질량 중심은 출력을 생성하는 일반적인 방법입니다. 이 단계에서 평균 점을 계산하는 가중치는 완전히 구현에 따라 다릅니다. 이 응용 프로그램에서는 보호를 받거나 보호 할 수 없지만 때때로 가드에 적은 무게를주는 것으로 간주됩니다. (David M. Bourg, 2004)

image012

그림 5- 퍼지 출력 (David M. Bourg P.204)

  Output = [0.7 * (-10) + 0.4 * 1 + 0.2 * 10] / (0.7 + 0.4 + 0.2) ≈ -3.5

결과적으로 퍼지 로직은 불확실성을 사용하여 결정을 내리고 결정의 정도를 찾기 위해 사용하고 있습니다. 퍼지 논리의 문제는 입력 수가 지수 증가 규칙 증가를 증가시킬 수 있다는 것입니다.

더 많은 정보와 게임에서 가능한 응용 프로그램을 위해 나는 작은 기사를 썼습니다. 이것 좀 봐

카오스의 답변을 쌓기 위해 공식적인 논리는 문장을 평가에 매핑하는 귀납적으로 정의 된 세트에 지나지 않습니다. 적어도 그것이 모델 이론가가 논리를 생각하는 방식입니다. 문장 부울 논리의 경우 :

 (basis clause) For all A, v(A) in {0,1}
 (iterative) For the following connectives,
   v(!A) = 1 - v(A)
   v(A & B) = min{v(A), v(B)}
   v(A | B) = max{v(A), v(B)}
 (closure) All sentences in a boolean sentential logic are evaluated per above.

퍼지 로직 변경은 유도 적으로 정의됩니다.

 (basis clause) For all A, v(A) between [0,1]
 (iterative) For the following connectives,
   v(!A) = 1 - v(A)
   v(A & B) = min{v(A), v(B)}
   v(A | B) = max{v(A), v(B)}
 (closure) All sentences in a fuzzy sentential logic are evaluated per above.

기본 논리의 유일한 차이점은 "진실 가치"가 0.5 인 문장을 평가할 수있는 권한입니다. 퍼지 로직 모델의 중요한 질문은 진실 만족도를 계산하는 임계 값입니다. 이것은 평가 v (a)의 경우, v (a)> d가 A가 충족된다는 것을 의미하는 경우의 경우 어떤 가치가 있는지에 대한 것입니다.

퍼지 로직과 같은 비교 논리에 대해 더 많이 알고 싶다면 어느 쪽이든 추천합니다. 비교 논리 소개 : IF에서 IS에서 또는 가능성과 역설

코더 모자를 다시 착용하면 퍼지 논리가 거절 할 수없는 경향이 있기 때문에 실제 프로그래밍에서 퍼지 논리를 사용하는 데주의를 기울일 것입니다. 어쩌면 약간의 이득에 너무 복잡 할 수도 있습니다. 예를 들어, 감독 논리는 프로그램 모델 모호함을 돕기 위해 잘 될 수 있습니다. 아니면 확률이 충분할 것입니다. 요컨대, 도메인 모델이 퍼지 로직으로 도출된다고 확신해야합니다.

아마도 예를 들어, 이점이 무엇인지를 정리할 수 있습니다.

온도 조절기를 만들고 싶다고 가정 해 봅시다.


이것이 부울 로직을 사용하여 구현하는 방법입니다.

  • 규칙 1 : 21도보다 추울 때 전력을 완전히 가열하십시오.
  • Rule2 : 27도보다 따뜻할 때 최대 전원으로 식 힙니다.

이러한 시스템은 한 번만 24 도일 것이며 매우 비효율적입니다.


이제 퍼지 로직을 사용하면 다음과 같은 것 같습니다.

  • 규칙 1 : 24도보다 차가워지는 각 학위에 대해 히터를 하나의 노치 (24에서 0)를 올리십시오.
  • Rule2 : 24 학위에 대해 24 학위보다 더 따뜻하다는 각 학위에 대해 냉각기 1 단계 (24에서 0)를 올리십시오.

이 시스템은 항상 약 24도 어딘가에 있으며 한 번만 한 번만 한 번만 작은 조정을합니다. 또한 더 에너지 효율이 높습니다.

글쎄, 당신은 작품을 읽을 수 있습니다 바트 코스 코, '창립 아버지'중 하나. '퍼지 사고 : 퍼지 논리의 새로운 과학'1994 년부터 읽을 수 있으며 (아마존을 통해 상당히 저렴한 중고). 분명히 그는 새로운 책을 가지고 있습니다.소음'2006 년부터는 매우 접근하기 쉬운 것입니다.

기본적으로 (내 역설에서 - 지금 몇 년 동안 첫 번째 책을 읽지 않았다), 퍼지 논리는 무언가가 10% 시원하고 50% 따뜻함, 10% 뜨거운 세계를 다루는 방법에 관한 것입니다. 다른 주가 사실 인 정도에 따라 결정을 내릴 수 있습니다 (아니요, 그 비율이 100%까지 추가되지 않는 것은 전적으로 사고가 아니 었습니다.

도움을 받아 아주 좋은 설명 퍼지 로직 세탁기.

나는 개념에서 코드로가는 것이 어렵다는 것이 무엇을 의미하는지 알고 있습니다. Linux 시스템에서 Sysinfo 및 / /Proc의 값을보고 0과 10 사이의 숫자가 제공되는 스코어링 시스템을 작성하고 있습니다. 간단한 예 :

당신은 3 개의 부하 평균 (1, 5, 15 분)을 가지고 있습니다. 그것을 확장하면, 당신은 평균 당 6 개의 가능한 상태를 가질 수 있으며, 방금 언급 한 세 가지에 'to to the'를 추가 할 수 있습니다. 그러나 18 개의 가능성 모두의 결과는 점수에서 1 만 공제 할 수 있습니다. 스왑 소비, 실제 VM이 할당 된 (커밋 된) 메모리 및 기타 물건으로 반복합니다.

그것은 예술만큼 정의만큼, 의사 결정 과정을 구현하는 방법은 패러다임 자체보다 항상 더 흥미 롭습니다. 반면 부울 세계에서는 다소 삭감되고 건조합니다.

Load1 <2가 1을 공제하는지 말하기는 매우 쉽지만 전혀 정확하지 않습니다.

일부 상황을 평가할 때 수행 할 작업을 수행하고 코드를 읽을 수 있도록 프로그램을 가르 칠 수 있다면 퍼지 논리의 좋은 예를 구현했습니다.

퍼지 로직 (Fuzzy Logic)은 단순하고 작고 임베디드 마이크로 컨트롤러에서부터 네트워크의 다중 채널 PC 또는 워크 스테이션 기반 데이터 수집 및 제어 시스템에 이르기까지 시스템의 구현에 적합한 문제 해결 방법론입니다. 하드웨어, 소프트웨어 또는 두 가지 조합으로 구현할 수 있습니다. 퍼지 논리는 모호한, 모호한, 부정확하거나 시끄럽거나 누락 된 입력 정보를 기반으로 한 명확한 결론에 도달하는 간단한 방법을 제공합니다. 문제를 제어하기위한 퍼지 로직 접근법은 사람이 결정을 내리는 방법을 모방하고 훨씬 더 빨리 만듭니다.

퍼지 로직은 전문가 시스템 및 기타 인공 지능 응용 프로그램에 특히 유용한 것으로 입증되었습니다. 또한 일부 맞춤법 검사기에서는 철자가 틀린 단어를 대체 할 가능성이 높은 단어 목록을 제안하기 위해 사용됩니다.

자세한 내용은 확인하십시오. http://en.wikipedia.org/wiki/fuzzy_logic.

다음은 일종의 경험적 대답입니다.

간단한 (단순한 대답)는 "퍼지 로직"은 스트레이트 true / false 이외의 값을 반환하는 논리라는 것입니다.

예를 들어, 이전의 삶에서 나는 일반적인 "부울 검색"과 반대로 "콘텐츠 유사성 검색"을 사용한 검색 엔진을 수행했습니다. 우리의 유사성 시스템은 쿼리와 문서를 나타내는 가중치 부여 벡터의 코사인 계수를 사용하여 0..1 범위의 값을 생성했습니다. 사용자는 쿼리 벡터를 바람직한 문서 방향으로 전환하는 데 사용 된 "관련성 피드백"을 제공합니다. 이것은 논리가 시험 실행 결과에 대해 논리가 "보상"또는 "처벌 된"특정 AI 시스템에서 수행 된 교육과 다소 관련이 있습니다.

현재 Netflix는 회사에 대한 더 나은 제안 알고리즘을 찾기 위해 경쟁을 진행하고 있습니다. 보다 http://www.netflixprize.com/. 효과적으로 모든 알고리즘은 "퍼지 로직"으로 특징 지을 수 있습니다.

퍼지 논리는 인간과 같은 사고 방식을 기반으로 알고있는 알고리즘을 계산하는 것입니다. 많은 수의 입력 변수가있을 때 특히 유용합니다. 두 변수 입력에 대한 하나의 온라인 퍼지 로직 계산기가 제공됩니다.

http://www.cirvirlab.com/simulation/fuzzy_logic_calculator.php

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