"either ... or ..."이라는 표현으로 표시되는 복합 명제 "either A or B"는 A 또는 B 중 하나가 참이지만 동시에 둘 다 참은 아닐 때 참으로 간주됩니다. 그렇지 않으면 복합 명령문이 거짓입니다.

저것들. 결과는 참(1과 같음), 만약에 A는 B와 같지 않습니다(A≠B).

이 연산은 속성이 매우 유사하고 둘 다 일상 회화에서 결합 "또는"과 유사하기 때문에 종종 분리와 비교됩니다. 다음 작업에 대한 규칙을 비교하십시오.

1. 참이면 참 또는 , 또는한 번에 둘 다.

2. 참이면 참 또는, 하지만 ~ 아니다한 번에 둘 다.

작업 배제 마지막 옵션("둘 다 한 번에") 이러한 이유로 배타적 "OR"이라고 합니다. 모호자연어는 "또는" 결합이 두 경우 모두에 사용될 수 있다는 것입니다.

5. 함축(논리적 결과)품사 "if ..., then ..."을 사용하여 두 문장을 하나로 결합하여 형성됩니다.

항목: A®B

함축 연산의 도움으로 형성된 복합 진술은 거짓 결론(두 번째 진술)이 참 전제(첫 번째 진술)에서 오는 경우에만 거짓입니다.

저것들. 1이 0을 의미하면 결과는 0이고 그렇지 않으면 1입니다.

예를 들어, "어떤 숫자가 10의 배수이면 5로 나눌 수 있습니다"라는 문장은 참입니다. 첫 번째와 두 번째 진술은 모두 참입니다.

"어떤 숫자가 10의 배수이면 3의 배수이다"라는 문장은 거짓이기 때문에 참된 전제에서 거짓 결론이 나온다.

"이 사각형은 정사각형입니다" (하지만) 그리고 "원은 주어진 사변형 주위에 외접할 수 있습니다" (). 그런 다음 복합 명령문은 다음과 같이 읽습니다. "주어진 사변형이 정사각형이면 원이 그 둘레에 외접할 수 있습니다."

일반적인 연설에서 링크 "만약...그러면"진술 사이의 인과 관계를 설명합니다. 그러나 논리 연산에서는 명령문의 의미가 고려되지 않습니다. 그들의 진실 또는 거짓만 고려됩니다. 따라서 내용상 전혀 관련이 없는 진술이 만들어내는 함축적 의미의 "무의미함"에 당황해서는 안 됩니다. 예를 들면 다음과 같습니다. "미국 대통령이 민주당원이면 아프리카에 기린이 있다", "수박이 열매라면 주유소에 휘발유가 있다."

6. 등가(논리적 등가, ~º Û)는 "...만약..."

등가 연산에 의해 형성된 복합 명령문은 두 명령문이 동시에 거짓이거나 참인 경우에만 참입니다.

예를 들어, "컴퓨터는 켜져 있는 경우에만 계산을 수행할 수 있습니다." 및 "컴퓨터가 켜져 있지 않은 경우에만 계산을 수행할 수 없습니다."라는 진술은 두 간단한 진술이 동시에 참이기 때문에 참입니다.


진리표

각 복합 명령문(논리 함수)에 대해 단순 명령문의 초기 값의 가능한 모든 조합에 대해 참 또는 거짓을 결정하는 진리표를 작성할 수 있습니다.

진리표이것은 테이블 뷰논리 회로(연산), 입력 신호(피연산자)의 모든 가능한 조합을 이러한 조합 각각에 대한 출력 신호(연산 결과)의 진리값과 함께 나열합니다.

위의 사항을 반영하여 논리 연산진리표에서:

명제 대수학에서 모든 논리적 기능은 논리적 변환에 의해 논리적 덧셈, 논리적 곱셈 및 논리적 부정의 세 가지 기본 기능으로 축소될 수 있습니다.

연산 의미 A®B가 논리식과 동일함을 증명합시다.

종종 문제를 해결하는 데 있어 단일 레이어 퍼셉트론의 제한된 기능을 입증하기 위해 소위 문제를 고려하는 데 의존합니다. XOR - 배타적 OR.

문제의 본질은 다음과 같습니다. 논리 함수 XOR이 제공됩니다 - 배타적 OR. 이것은 각각 0 또는 1일 수 있는 두 인수의 함수입니다. 인수 중 하나가 1과 같을 때 값을 취하지만 둘 다 같지 않으면 값을 취합니다. 문제는 아래 그림에 표시된 단일 레이어, 단일 뉴런, 2입력 시스템으로 설명할 수 있습니다.

하나의 입력은 , 다른 하나는 로 표시하면 가능한 모든 조합은 평면의 4개 점으로 구성됩니다. 아래 표는 입력과 출력 사이의 필수 관계를 보여줍니다. 여기서 0 출력을 생성해야 하는 입력 조합에는 레이블이 지정되고 , 단일 출력에는 레이블이 지정됩니다.

포인트들 의미 의미 필수 출력
0 0 0
1 0 1
0 1 1
1 1 0

두 개의 입력이 있는 하나의 뉴런은 임의의 직선 형태로 결정 표면을 형성할 수 있습니다. 네트워크가 위의 표에 제공된 XOR 기능을 구현하려면 점이 선의 한쪽에 있고 점이 다른쪽에 있도록 선을 배치해야 합니다. 아래 그림에서 그러한 직선을 그리려고 하면 우리는 이것이 불가능하다고 확신합니다. 즉, 가중치와 임계값에 어떤 값이 할당되더라도 단일 계층 신경망은 XOR 함수를 나타내는 데 필요한 입출력 관계를 재현할 수 없습니다.

그러나 XOR 함수는 2계층 네트워크에 의해 여러 가지 방법으로 쉽게 형성됩니다. 이러한 방법 중 하나를 고려해 보겠습니다. 뉴런의 다른 은닉층을 추가하여 그림의 네트워크를 현대화해 보겠습니다.

참고 이 네트워크있는 그대로 주어집니다. 그녀는 이미 훈련을 받았다고 가정할 수 있습니다. 화살표 위의 숫자는 시냅스 가중치의 값을 나타냅니다. 활성화 함수로 다음 그래프가 있는 임계값과 함께 단위 점프 함수를 사용합니다.

그러면 이러한 신경망의 연산 결과는 다음 표와 같이 나타낼 수 있습니다.

포인트들 의미 의미 필수 출력
0 0 0 0 0 0
1 0 1 1 0 1
0 1 1 0 1 1
1 1 0 0 0 0

첫 번째 레이어의 두 뉴런은 각각 임의의 직선 형태로 결정면을 형성하고(평면을 두 개의 반면으로 나눕니다) 출력 레이어의 뉴런은 이 두 솔루션을 결합하여 결정면에서 결정면을 형성합니다. 첫 번째 층의 뉴런의 평행한 직선에 의해 형성된 스트립 형태:

XOR 문제를 해결하기 위해 이 기사에서 사용하는 신경망은 원시적이며 다층 네트워크의 모든 기능을 사용하지 않습니다. 분명히 다층 신경망비선형성이 있는 경우에만 단일 레이어보다 표현력이 더 큽니다. 그리고 이 네트워크에서 임계값 선형 함수활성화. 이러한 네트워크는 예를 들어 역전파 알고리즘을 적용하여 훈련될 수 없습니다.

이 기사에서는 몇 가지 비트 연산에 대해 설명합니다. XOR(배타적 OR), AND(AND), NOT(NOT) 및 OR(OR)와 같은 주요 항목을 고려하십시오.

아시다시피 정보의 최소 측정 단위는 조금, 2 값 중 하나를 저장합니다. 0 ( 거짓, 거짓) 또는 1( 진실, 진실). 따라서 비트 셀은 동시에 두 가지 가능한 상태 중 하나만 있을 수 있습니다.

비트를 조작하기 위해 특정 연산이 사용됩니다. 논리 또는 부울. 값이 0이든 1이든 상관없이 모든 비트에 적용할 수 있습니다. 자, 세 가지 기본 논리 연산의 사용 예를 살펴보겠습니다.

논리 AND 연산(및)

그리고& 로 표시됩니다.

AND 연산자는 2비트로 수행됩니다. 예를 들어 및 b를 사용하겠습니다. 실행 결과 AND 연산 a와 b가 모두 1이면 결과는 1입니다. 그렇지 않으면 결과는 0입니다. 예를 들어 AND를 사용하면 숫자가 짝수인지 여부를 알 수 있습니다.

AND 연산의 진리표를 보십시오.

논리 연산 OR(OR)

기호로 표시 | .

운영자 또는 2비트(a 및 b)로도 수행됩니다. 결과는 a와 b가 둘 다 0이면 0이고 그렇지 않으면 1입니다. 진리표를 보십시오.

논리 연산 XOR(배타적 OR)

XOR 연산자는 ^로 표시됩니다.

XOR 2비트(a 및 b)로 수행됩니다. XOR 연산의 결과( XOR)는 비트 b 또는 a 중 하나가 1일 때 1입니다. 그렇지 않으면 XOR 연산자를 적용한 결과는 0입니다.

XOR(배타적 OR)에 대한 논리 연산의 진리표는 다음과 같습니다.

XOR(배타적 논리합)을 사용하면 임시 변수를 사용하지 않고 동일한 데이터 유형의 두 변수 값을 교환할 수 있습니다. 그러나 XOR을 사용하여 텍스트를 암호화할 수 있습니다. 예를 들면 다음과 같습니다.

String msg = "이것은 메시지입니다"; 문자 메시지 = msg.toCharArray(); 문자열 키 = ".*)"; 문자열 암호화된 문자열 = 새로운 문자열(); for(int 나는 = 0; 나는< message.length; i++){ encryptedString += message[i]^key.toCharArray(); }

동의합니다. XOR은 최고와는 거리가 멀습니다. 신뢰할 수 있는 방법그러나 이것이 암호화 알고리즘의 일부가 될 수 없다는 것을 의미하지는 않습니다.

논리 연산 NOT(NOT)

이것은 비트 부정이므로 1비트로 수행되며 ~로 표시됩니다.

결과는 비트의 상태에 따라 다릅니다. 0 상태이면 연산 결과는 1이고 그 반대도 마찬가지입니다. 모든 것이 매우 간단합니다.

이 4가지 논리 연산을 가장 먼저 기억해야 합니다. 도움을 받으면 거의 모든 결과를 얻을 수 있기 때문입니다. 다음과 같은 작업도 있습니다.<< (побитовый сдвиг влево) и >> (비트 오른쪽 시프트).

입력 데이터에 대한 논리 연산을 수행하도록 설계된 전기 회로를 논리 소자라고 합니다. 여기에서 입력 데이터는 다양한 레벨의 전압의 형태로 표현되며, 출력에서의 논리 연산의 결과도 일정 레벨의 전압의 형태로 얻어진다.

이 경우 피연산자가 공급됩니다. 신호는 기본적으로 입력 데이터 역할을 하는 높은 수준 또는 낮은 수준의 전압 형태로 논리 요소의 입력에서 수신됩니다. 따라서 높은 수준의 전압(논리적인 전압)은 피연산자의 참 값을 나타내고 낮은 수준의 전압 0(거짓 값)을 나타냅니다. 1 - 참, 0 - 거짓.

논리 요소- 입력 및 출력 신호 사이의 특정 논리적 관계를 구현하는 요소입니다. 논리 게이트는 일반적으로 논리 회로를 구축하는 데 사용됩니다. 컴퓨터, 자동 제어 및 관리의 개별 회로. 모든 유형의 논리적 요소에 대해 물리적 특성에 관계없이 입력 및 출력 신호의 이산 값이 특징적입니다.

논리 요소에는 하나 이상의 입력과 하나 또는 두 개의(보통 서로 반대인) 출력이 있습니다. 논리 요소의 출력 신호의 "0"과 "1"의 값은 요소가 수행하는 논리 기능과 재생하는 입력 신호의 "0"과 "1"의 값에 의해 결정됩니다. 독립변수의 역할. 복잡한 논리 함수를 구성할 수 있는 기본 논리 함수가 있습니다.

소자 회로의 장치에 따라, 전기 매개변수, 입력 및 출력의 논리 레벨(고전압 및 저전압 레벨)은 높음 및 낮음(참 및 거짓) 상태에 대해 동일한 값을 갖습니다.

전통적으로 논리 요소는 특수 무선 구성 요소인 집적 회로의 형태로 생산됩니다. 결합, 분리, 부정 및 모듈로 덧셈(AND, OR, NOT, 배타적 OR)과 같은 논리 연산은 기본 유형의 논리 요소에 대해 수행되는 주요 연산입니다. 이러한 유형의 논리적 요소 각각에 대해 자세히 살펴보겠습니다.

논리 요소 "AND" - 결합, 논리 곱셈, AND


"AND" - 입력 데이터에 대한 결합 또는 논리 곱셈 연산을 수행하는 논리 요소입니다. 이 요소는 2에서 8(생산에서 가장 일반적인 것은 2, 3, 4 및 8 입력이 있는 "AND" 요소임) 입력과 하나의 출력을 가질 수 있습니다.

입력 수가 다른 논리 요소 "AND"의 기호가 그림에 표시됩니다. 텍스트에서 하나 이상의 입력이 있는 논리 요소 "AND"는 "2I", "4I" 등으로 지정됩니다. 요소 "AND"는 입력이 2개, 입력이 4개 등입니다.


요소 2I에 대한 진리표는 논리 요소가 첫 번째 입력에 동시에 있고 두 번째 입력에 동시에 있는 경우에만 요소의 출력이 논리 단위임을 보여줍니다. 나머지 3개에서는 가능한 경우출력은 0이 됩니다.

서양식에서 "And" 요소의 아이콘은 입구에 직선이 있고 출구에 반올림이 있습니다. 국내 계획 - "&"기호가있는 직사각형.

논리적 요소 "OR" - 분리, 논리적 추가, OR


"OR" - 입력 데이터에 대해 분리 또는 논리적 추가 작업을 수행하는 논리적 요소입니다. "AND" 요소와 마찬가지로 2개, 3개, 4개 등의 입력과 하나의 출력으로 사용할 수 있습니다. 입력 수가 다른 논리 요소 "OR"의 기호가 그림에 표시됩니다. 이러한 요소는 2OR, 3OR, 4OR 등으로 지정됩니다.


요소 "2OR"에 대한 진리표는 출력에서 ​​논리 단위의 출현에 대해 논리 단위가 첫 번째 입력에 또는 두 번째 입력에 있으면 충분하다는 것을 보여줍니다. 논리적 입력이 한 번에 두 입력에 있으면 출력도 하나가 됩니다.

서양식 구성에서 "OR" 요소의 아이콘은 둥근 입구와 둥글고 뾰족한 출구가 있습니다. 국내 계획에서 - 기호 "1"이 있는 직사각형.

논리 요소 "NOT" - 부정, 인버터, NOT

"NOT" - 입력 데이터에 대해 논리적 부정 연산을 수행하는 논리적 요소입니다. 하나의 출력과 하나의 입력만 있는 이 소자는 실제로 입력 신호를 반전(반전)시키기 때문에 인버터라고도 합니다. 그림은 보여줍니다 상징논리적 요소 "NOT".

인버터의 진리표는 높은 입력 전위가 낮은 출력 전위를 제공하고 그 반대의 경우도 마찬가지임을 보여줍니다.

서양식에서 "NOT" 요소의 아이콘은 출구에 원이 있는 삼각형 모양입니다. 국내 계획 - 출구에 원이있는 "1"기호가있는 직사각형.

논리 요소 "AND-NOT" - 부정과의 결합(논리적 곱셈), NAND

"AND-NOT" - 입력 데이터에 대해 논리적 덧셈 연산을 수행한 다음 논리적 부정 연산을 수행하는 논리적 요소, 결과가 출력됩니다. 즉, 기본적으로 "NOT" 요소로 보완되는 "AND" 요소입니다. 그림은 논리 요소 "2I-NOT"의 기호를 보여줍니다.


"NAND" 요소의 진리표는 "AND" 요소의 진리표와 반대입니다. 3개의 0과 1 대신 3개의 1과 0. "NAND" 요소는 1913년에 이것의 중요성을 처음 언급한 수학자 Henry Maurice Schaeffer를 기리기 위해 "Schaeffer 요소"라고도 합니다. 출구에만 원이 있는 "I"로 지정됩니다.

논리 요소 "OR-NOT" - 부정이 있는 분리(논리 추가), NOR

"OR-NOT" - 입력 데이터에 대해 논리적 덧셈 연산을 수행한 다음 논리적 부정 연산을 수행하는 논리적 요소, 결과가 출력됩니다. 즉, 이것은 인버터인 "NOT" 요소로 보완된 "OR" 요소입니다. 그림은 논리 요소 "2OR-NOT"의 기호를 보여줍니다.


"OR-NOT" 요소에 대한 진리표는 "OR" 요소에 대한 표와 반대입니다. 출력에서 높은 전위는 한 가지 경우에만 얻어집니다. 두 입력은 동시에 낮은 전위로 공급됩니다. 반전을 나타내는 출력에 원이 있는 경우에만 "OR"이라고 합니다.

논리 요소 "배타적 OR" - 추가 모듈로 2, XOR

"XOR" - 입력 데이터에 대한 논리 덧셈 모듈로 2의 연산을 수행하는 논리 요소에는 2개의 입력과 1개의 출력이 있습니다. 종종 이러한 요소는 제어 체계에 사용됩니다. 그림은 이 요소의 기호를 보여줍니다.

서양식 구성표의 이미지는 입력 측에 추가 곡선 스트립이 있는 "OR"의 이미지와 같으며, 국내의 경우 "OR"과 같이 "1" 대신 "=1"로 표기됩니다.


이 논리적 요소를 "비동등성"이라고도 합니다. 입력에 두 개의 장치가 있더라도 입력의 신호가 동일하지 않은 경우에만 출력에 고전압 레벨(한 장치, 다른 0 또는 하나의 0, 다른 하나)이 됩니다. 동시에 출력은 0이 됩니다. 이것은 "OR"과의 차이입니다. 이러한 논리 요소는 가산기에서 널리 사용됩니다.

배타적 OR 연산(명확성, 모듈로 2 더하기)은 기호로 표시되며 A=1 및 B=1인 경우에만 논리 OR과 다릅니다.

따라서 두 진술 X1과 X2의 동등하지 않은 것을 그러한 진술 Y라고 하며, 이 진술 중 하나가 참이고 다른 하나가 거짓인 경우에만 참입니다.

이 연산의 정의는 진리표로 작성할 수 있습니다(표 6).

표 6 - EXCLUSIVE OR 연산의 진리표

표 6에서 알 수 있듯이 요소의 논리는 이름에 해당합니다.

이것은 하나의 작은 차이가 있는 동일한 "OR" 요소입니다. 두 입력의 값이 논리 단위와 같으면 "OR" 요소와 달리 "EXCLUSIVE OR" 요소의 출력은 1이 아니라 0입니다.

EXCLUSIVE OR 연산은 실제로 일치 항목에 대해 두 개의 이진 숫자를 비교합니다.

각 논리적 연결은 논리적 명령문에 대한 연산으로 간주되며 고유한 이름과 지정이 있습니다(표 7).

표 7 - 기본 논리 연산

지정

작업

읽다

작업 이름

대체 명칭

부정(반전)

위에서 대시

접속(논리적 곱셈)

분리(논리적 덧셈)

만약...그렇다면

함축

그때서야 비로소

등가

아니면

EXCLUSIVE OR(모듈로 2 추가)

  1. 복잡한 논리 표현식에서 논리 연산의 실행 순서

반전, 결합, 분리의 논리 연산 시스템을 사용하면 임의로 복잡한 논리 표현식을 작성할 수 있습니다.

논리식의 값을 계산할 때 논리 연산의 특정 실행 순서가 채택됩니다.

1. 반전.

2. 접속사.

3. 분리.

4. 시사점.

5. 동등성.

괄호는 지정된 작업 순서를 변경하는 데 사용됩니다.

  1. 부울 표현식 및 진리표

    1. 부울 표현식

각 복합 문장은 다음을 포함하는 공식(논리식)으로 표현될 수 있습니다. 부울 변수,진술을 표시하고, 논리 연산의 징후,논리적 기능을 나타냅니다.

복합 문장에서 형식 언어(논리 대수학 언어)의 논리적 표현 형태로 복합 문장을 작성하려면 간단한 문장과 이들 사이의 논리적 연결을 골라낼 필요가 있습니다.

복합 문장 “(2 2=5 or 2∙2=4) and (2∙2≠5 or 2∙ 2 네)".

복합문을 분석해 봅시다. 여기에는 두 가지 간단한 명령문이 포함되어 있습니다.

A \u003d "2 2 \u003d 5"-거짓(0),

B \u003d "2 2 \u003d 4"-참 (1).

그러면 복합문은 다음과 같은 형식으로 작성할 수 있습니다.

«( 하지만또는) 및 (Ā 또는)».

이제 논리 연산의 실행 순서를 고려하여 논리 표현식의 형태로 명령문을 작성해야 합니다. 논리 연산을 수행할 때 다음과 같은 실행 순서가 정의됩니다.

반전, 결합, 분리.

괄호를 사용하여 지정된 순서를 변경할 수 있습니다.

에프 = (V) & (Ā V).

복합 진술의 참 또는 거짓은 진술의 의미론적 내용을 참조하지 않고 진술 대수의 법칙에 따라 순전히 형식적으로 결정될 수 있습니다.

논리 변수의 값을 논리 표현식으로 대체하고 기본 논리 연산의 진리표를 사용하여 논리 함수의 값을 얻습니다.

에프= (A 대 B) & ( Ā v B) = (0 v 1) & (1 v 0) = 1 & 1 = 1.

      진리표

논리 연산이 원래의 단순 명제의 다른 값에 대한 복잡한 명제의 계산 결과를 반영하는 표를 진리표라고 합니다.

단순 명령문은 변수로 표시됩니다(예: A 및 B).

진리표를 구성할 때 특정 일련의 작업을 수행하는 것이 좋습니다.

    진리표의 행 수를 결정할 필요가 있습니다. 불리언 표현식에 포함된 불리언 변수 값의 가능한 조합 수와 같습니다. 부울 변수의 수가 다음과 같을 경우 피,그 다음에:

행 수 = 2 N .

우리의 경우 논리 함수

에는 2개의 변수가 있으므로 진리표의 행 수는 4여야 합니다.

    논리 변수의 수에 논리 연산의 수를 더한 것과 같은 진리표의 열 수를 결정해야 합니다.

우리의 경우 변수의 수는 A와 B의 2이고 논리 연산의 수는 5입니다(표 8). 즉, 진리표의 열 수는 7입니다.

    지정된 수의 행과 열로 진리표를 작성하고 열을 지정하고 초기 논리 변수의 가능한 값 세트를 테이블에 입력해야합니다.

    진리표를 열로 채우고 필요한 순서대로 진리표에 따라 기본 논리 연산을 수행해야 합니다.

이제 부울 변수 값 세트에 대한 부울 함수 값을 정의할 수 있습니다.

표 8 - 논리 함수 진리표