부정논리곱
1. 개요
부정논리곱은 두 논리값에 대한 논리 연산으로, 적어도 하나의 명제가 거짓일 경우 참 값을 생성한다. 일반적으로 A NAND B는 NOT(A AND B)로 정의되며, NAND는 교환 법칙이 성립하지만 결합 법칙은 성립하지 않는다. NAND는 그 자체로 기능적으로 완전한 연산자 집합이며, 다른 모든 논리 연산을 표현할 수 있다. 1913년 헨리 모리스 쉐퍼에 의해 처음 소개되었으며, 초기 집적 회로 설계에 널리 사용되었다.
-
수리논리학 -
NAND 게이트
NAND 게이트는 모든 입력이 1일 때 0을 출력하고 그 외에는 1을 출력하는 논리 게이트로서, 다양한 기호로 표현되며, AND 연산의 결과를 부정하는 연산을 수행하고, 여러 방식으로 구현될 수 있으며, 기능적으로 완전하여 디지털 회로 설계에 필수적이다. -
수리논리학 -
셈
셈은 대상의 개수를 파악하는 기본적인 행위로, 수학에서는 집합의 원소 개수를 파악하는 과정으로 정의되며, 셈의 방식에 따라 결과가 달라질 수 있고, 셈을 배우는 과정은 아동의 교육 및 발달에 중요한 역할을 한다. -
논리학 -
모순
모순은 논리학, 철학, 과학 등 다양한 분야에서 사용되는 개념으로, 서로 상반되는 두 가지 주장이나 사실이 동시에 존재하는 상태를 의미하며, 특히 헤겔과 마르크스의 변증법적 유물론에서 사물의 내재적 대립으로서 역사 발전의 원동력으로 간주된다. -
논리학 -
특수
특수는 철학에서는 개별적이고 구체적인 존재를, 언어학에서는 눈에 띄는 또는 예외적인 의미를 가지며, 사회적으로 특별함이 중요하게 여겨지기도 한다. -
수학 -
회귀 분석
회귀 분석은 종속 변수와 하나 이상의 독립 변수 간의 관계를 모델링하고 분석하는 통계적 기법으로, 최소 제곱법 개발 이후 골턴의 연구로 '회귀' 용어가 도입되어 다양한 분야에서 예측 및 인과 관계 분석에 활용된다. -
수학 -
수학적 최적화
수학적 최적화는 주어진 집합에서 실수 또는 정수 변수를 갖는 함수의 최댓값이나 최솟값을 찾는 문제로, 변수 종류, 제약 조건, 목적 함수 개수에 따라 다양한 분야로 나뉘며 여러 학문 분야에서 활용된다.
2. 정의
부정논리곱(NAND)은 두 논리값에 대한 논리 연산으로, 적어도 하나의 명제가 거짓일 때 참 값을 갖는다.
일반적으로 부정논리곱은 다음과 같이 정의된다.
A NAND B = NOT (A AND B)
2.1. 진리표
| 명제 P | 명제 Q | P NAND Q |
|---|---|---|
| 참 | 참 | 거짓 |
| 참 | 거짓 | 참 |
| 거짓 | 참 | 참 |
| 거짓 | 거짓 | 참 |
2.2. 논리식
와 의 부정논리곱(Sheffer stroke)은 이들의 논리곱(AND)의 부정과 같다.
| |
드 모르간의 법칙에 의해, 이것은 또한 와 의 부정의 논리합(OR)과 동치이다.
3. 성질
부정논리곱(NAND) 연산은 교환 법칙이 성립한다. 즉, 입력값의 순서를 바꾸어도 결과는 같다. 하지만, 결합 법칙은 성립하지 않는다. 즉, 연산 순서에 따라 결과가 달라질 수 있다.
* 교환 법칙:
* 결합 법칙:
3.1. 기능적 완전성
부정논리곱(NAND)은 그 자체로 기능적으로 완전한 연산자 집합이다. 즉, NAND 연산 하나만으로 다른 모든 논리 연산(AND, OR, NOT 등)을 표현할 수 있다. 이는 부정논리곱이 진리 보존, 거짓 보존, 선형성, 단조성, 자기 쌍대성의 다섯 가지 속성을 모두 갖지 않기 때문이다. 기능적으로 완전한 연산자 집합은 이 다섯 가지 속성 중 적어도 하나는 갖지 않아야 하며, 모두 부재하는 것은 기능적 완전성의 충분조건이다.
다음은 NAND 연산으로 다른 논리 연산을 구성하는 예시이다.
* NOT A = A NAND A
* A AND B = ( A NAND B ) NAND ( A NAND B )
* A OR B = ( A NAND A ) NAND ( B NAND B )
진리표를 사용하면 가 와 진리 함수적으로 동등함을 보일 수 있다. 또한, 가 와 동등하고, 가 와 동등하므로, 부정논리곱은 선언적 정규 형식 정리에 의해 진리 함수적으로 완전한 연결 연산자 집합 를 정의하기에 충분하다.
다음은 부정논리곱 을 사용하여 표현한 명제 논리의 일반적인 연산자들이다.
| 연산 | 표현 | 벤 다이어그램 표현 |
|---|---|---|
| 또는 | ||
초기의 집적 회로(표준 논리 IC)는 부품 가격이 비쌌기 때문에, 회로 구성이 가장 간단한 NAND를 이용하여 다양한 논리 회로를 설계하였다.
4. 표기법
퍼스는 부정논리곱의 기능적 완전성을 처음으로 보여주었지만(로 표현) 결과를 발표하지는 않았다. 퍼스의 편집자가 부정논리합에 을 추가했다. 1911년, 에드워드 브로니스와프 슈탐폴란드어은 ('슈탐 갈고리')으로 표현하여 부정논리곱의 완전성을 처음으로 출판했으며, 최초로 부정논리합의 완전성을 인쇄물로 보여주었다.
1913년, 쉐퍼는 를 사용하여 부정논리합을 설명하고 기능적 완전성을 보여주었다. 쉐퍼는 또한 부정논리합에 를 사용했다. 1917년 니코드를 시작으로 화이트헤드, 러셀 등 많은 사람들이 쉐퍼가 를 사용하여 부정논리곱을 설명했다고 오해하여 이를 쉐퍼 스트로크라고 명명했다.
1928년, 힐베르트와 아커만은 연산자 를 사용하여 부정논리곱을 설명했다.
1929년, 우카시에비치는 그의 폴란드 표기법에서 부정논리곱을 위해 를 에 사용했다.
부정논리곱의 또 다른 표기법은 이다. 이 표기법을 처음 도입한 사람이 누구인지는 불분명하지만, 이에 해당하는 부정논리합 는 1940년에 콰인에 의해 사용되었다.
5. 역사
찰스 샌더스 퍼스는 1880년에 "ampheck"(양쪽을 자른다는 의미)라는 용어를 사용하여 NAND 또는 NOR의 함수적 완전성을 발견했지만, 발표하지 않았다. 1911년, Edward Stamm폴란드어은 NAND 및 NOR 연산자를 설명하고 다른 부울 연산을 이 연산자로 표현할 수 있음을 보여주었다.
1913년, 헨리 모리스 셰퍼는 논문에서 부정 논리곱을 사용하여 부울 대수의 공리화를 제시하고, 명제 논리의 일반적인 연산자(AND, OR, NOT)를 사용하는 에드워드 버밀리에 헌팅턴의 표준 공식과의 동등성을 증명했다. 셰퍼는 논문에서 부정 논리곱을 NOR의 기호로 해석했으며, 논리곱 부정은 각주에서만 언급했고 별도의 기호는 사용하지 않았다. 1917년, 장 니코는 논문에서 부정 논리곱을 NAND의 기호로 처음 사용했으며, 이후 이 표기법이 널리 사용되었다. 1927년, 러셀과 화이트헤드는 수학 원리 제2판에서 셰퍼 스트로크를 사용하여 초판의 "OR" 및 "NOT" 연산을 대체할 것을 제안했다.