2012-02-24 4 views
2

나는 잘 작동하는 Quine-McCluskey을 사용하여 부울 단순화를 수행하고 있습니다.몇 가지 알려진 용어 조합으로 부울 단순화

그러나 이제는 몇 가지 알려진 용어 조합을 사용하여 단순화를 수행해야합니다.

예를 들어, 내가 단순화 할 :

(A+B)C

내가 알고있는 경우 :

A+B == true

다음이가 단순화

C

또는 내가 알고있는 경우 :

BC == false

는 다음 알려진 용어 목록 주어진 부울 식을 단순화 할 수있는 알고리즘이 있나요

AC

에 간단하게?

+0

얼마 전에 나는 같은 문제에 직면했다. 에스프레소 (Espresso) 라 불리는 최소화 도구가 있습니다. 그러나 그 당시 나는 많은 발전을 이루지 못했습니다. 어쩌면 지금은 웹상에 더 많은 정보가 있습니다 (적어도 위키 ​​백과 항목이 있습니다). 그것을 살펴볼 가치가 있습니다. – Eduardo

+0

의견을 보내 주셔서 감사합니다. 그러나 에스프레소 알고리즘에 대한 설명을 찾을 수 없으므로 알려진 용어를 사용하여 단순화를 처리 할 수 ​​있는지 여부를 알 수 없습니다. – Chris

+0

이 문제를 해결했습니다. 아래 내 대답을 참조하십시오. – Chris

답변

2

이 문제에 대한 좋은 해결책을 발견했습니다.

Quine-McCluskey에이 용어의 일부가 으로 표시됩니다 진실 테이블을 처리 할 수있는 기간이 발생하지 않습니다 즉, "를 걱정하지 않는다"그래서 최소화 된 표현은 참 또는 거짓 반환 할 수 있습니다 . 예를 들어

는 :

 
A B result 
0 0 0 
0 1 don't care 
1 0 don't care 
1 1 con't care 

분명 그것이 우리가 걱정하는 유일한 결과로 위의 함수, 그냥 'false'로 돌아 최소화 할 수 있음을 알 수있다.

알려진 용어를 처리하기 위해서는 알려진 용어가 거짓으로 평가되는 진리표의 용어에 대해 "do not care"의 결과를 설정해야합니다. Quine-McCluskey 알고리즘은 알려진 용어를 고려하여 최소화 된 함수를 생성합니다. 예를 들어

, 우리는 A와 B의 기능을 가지고, 우리는 우리가 알고 있기 때문에 A == false, 그때 A가 으로 표시 할 수 있습니다 참 진리 테이블에있는 모든 행이 "를 걱정하지 않는다"고 알고있는 경우 결코 일어나지 않을 것입니다.