AutoCAD 2013 Tutorial: How To Plot a Drawing Layout

디자인을 마친 후에는 다른 사람들과 공유해야 할 것입니다 그리기 레이아웃은 가상 시트에 디자인의 하나 이상의보기를 구성합니다

레이아웃에는 대개 제목 블록, 하나 이상의 뷰포트 및 주석이 포함됩니다 레이아웃을 만드는 단계를 살펴 보겠습니다 도면의 배치 수는 도면을 작성하는 데 사용한 템플리트에 따라 다릅니다 기존 레이아웃을 편집하거나 새 레이아웃을 만들 수 있습니다 새 레이아웃을 만들 예정입니다

기존 레이아웃 탭 중 하나를 마우스 오른쪽 버튼으로 클릭하고 새 레이아웃을 선택하십시오 모든 새 레이아웃에는 기본 페이지 설정 및 뷰포트가 포함됩니다 뷰포트는 표시 할 디자인 영역과 스케일을 제어합니다 이 레이아웃에서는 페이지 설정 편집, 제목 블록 삽입 및 자신의 뷰포트를 만듭니다 기본 뷰포트를 지워서 시작하겠습니다

레이아웃 탭을 마우스 오른쪽 버튼으로 클릭하고 페이지 설정 관리자를 선택합니다 페이지 설정 관리자 레이아웃의 출력 장치와 용지 크기를 수정하는 곳입니다 이제 제목 블록을 삽입 할 준비가되었습니다 표제 란 레이어를 현재로 만들고, 삽입 명령을 사용하여 앞에서 만든 제목 블록을 삽입하십시오 다음으로 디자인을 표시 할 뷰포트를 정의합니다

뷰포트 레이어를 최신으로 만들고 VIEWPORTS 명령을 사용하여 새 뷰포트를 만듭니다 내 제목 블록에 맞도록 뷰포트의 크기를 조정합니다 뷰포트를 선택하여 디자인이 표시되는 비율을 변경할 수 있습니다 사전 정의 된 옵션 목록에서 적절한 비율을 선택하십시오 레이아웃이 준비되면 Plot을 선택합니다

오른쪽 하단에있는 화살표를 확인하십시오 플롯 대화 상자? 추가 설정을 표시하려면이 화살표를 클릭하십시오 이 경우 기본 설정을 적용하고 미리보기를 선택합니다 마지막으로 Plot 버튼을 클릭하여 레이아웃을 출력 장치로 보냅니다

AutoCad | Como imprimir y escalar desde layout

안녕하세요 세계, 저는 Miros Peace입니다 그리고 오늘 나는 너에게 조금 기술적 인 그림을 보여 줄 것이다

AutoCAD에서 레이아웃으로 인쇄하는 방법을 보여 드리겠습니다 우선 내가 사용하고있다 2012 AutoCad 기본적으로 AutoCad 2010 이후 버전과 동일합니다 보시다시피 이미 내 레이아웃이 있습니다 인쇄 준비

이 것은 보이지 않지만 Layout1과 Layout2가 나타납니다 레이아웃에 대한 설명을 조금 해보겠습니다 및 모델 몰라요 모델은 공간입니다 내가 가진 무한대 내가 그릴 수있는 곳, 나는 그것을하고있다

여기 1 : 1 비율로 레이아웃은 제가 프로젝트를 발표 할 시트가 될 것입니다 당신을 위해, 그것은 단지 클릭하는 것일 것입니다 레이아웃 1 또는 레이아웃 2 스페인어로는 프리젠 테이션 1이 될 것입니다 프리젠 테이션 2; 하지만 새로운 것을 만들거야? 다음은 레이아웃 1입니다 클릭함으로써, 이 공간은 나에게 이렇게 보인다

잎 이것과 임의의 크기로, 즉 랜덤 크기의 화염 뷰포트 내가 할 일은 갈 수있어

이 작업을 수행하는 데는 여러 가지 방법이 있습니다 당신에게 광산을 보여줄 것입니다 페이지 설정 관리자 여기서 우리는 우리가 가지고있는 레이아웃을 선택하고 수정할 것입니다 이게 나올거야 우리가 인쇄물을 보내기 위해 보낼 곳, 그들이 플로터를 가지고 있다면 그들은 그것을 선택하고 자동적으로 플로터 또는 프린터 핸들

내가 이미 구성 했으므로 나는 이것을 남겨 둘 것입니다 이 컴퓨터의 플로터는 저에게 플로터를 보여줍니다 하지만 내가 가지고 있지 않으면 내가 취할거야 내 문서를 인쇄하려면 이 옵션을 선택합니다 : dwg to PDFpc3 나는 이것을 선택한다

그리고 그것은 모든 측정 값을 줄 것입니다, 만약 내가 두배의 크기의 편지를 원한다면 나는 방향에 따라 ANSI B 내가 원하는 것을 고를거야 아니면 내가 원하면 a 크기 90 x 60 ARCH D를 선택하겠습니다

이것은 90 x 60이며, 이 경우에는 이중 문자를 사용합니다 이것은 mm 방향이어야한다 그것은 풍경 속에있을 것입니다 내가 회색조, 흑백, 단색으로 원하는 경우 선택할 수 있습니다 특정 색상, 당신이 원하는 무엇이든지, 나는 그것을 지키기 위해 어떤 것도 사용하지 않을 것입니다

색상은 품질이 될 수 있습니다 최대, 프레젠테이션, 정상; 정상적인 경우 정상입니다 줄거리, 우리는 그대로 떠날 수 있습니다 이 경우 우리가 인쇄 할 때 무엇을 묘사 할 것인가? 레이아웃에서 우리는 레이아웃을 선택하고, 우리가 모델에서 인쇄 중이라면, 우리는 창을 선택할 것이고, 레이아웃 괜찮아요, 우리는 그를 좋아해 우리는 닫는다

자동으로 구성되었다 우리의 시트는 두 자로되어 있습니다 자,이 점선 절대적으로 여기에 그려지는 모든 것, 인쇄 할 것인가, 그려지는 것은 외부 점선의 인쇄되지 않습니다 우리는 이미 가지고있는 것을 사용할 수 있지만, 그들은 나는 새로운 것을 가르치고 싶다

그래서 나는 그것을 지우겠다 나는 그것을 억제하기 위해, 명령 바를 입력합니다 전망 입력, 나는이 박스를 얻는다 나는 창을 고를거야 나는 그것을 좋아한다, 이제 내 뷰포트를 만들겠습니다

창이 열리는 것과 같을 것입니다 내 모델에 무엇이 있는지보고, 있다 아주 좋아 두 번 클릭하면 입력합니다 모델을 입력 / 살펴 보는 것과 같습니다 내가 여기서 수정 한 모든 것, 내가 뭔가를 지우면, 내가 색을 바꾼다면, 당신이하는 모든 일이 모델에서 바뀔 것입니다

두 번 클릭하면 밖에, 나는 떠난다 그리고 나는 나의 배치에서 돌아 간다 나는 이것을 지울거야 다시 전망 내가 선택할거야, 이건 너를 보여주는 것 뿐이야 두 개의 수직, 이 명령은 모델에서도 작동하지만 다른 주제이기도합니다

그리고 잘, 너도 알다시피, 여기있다 두 가지 견해 어느 쪽 나는 할 수있다 당신이 볼 수있는 것과 다른 규모를 그들에게 준다 그들에게 다른 냄비를 주거나 나는 심지어 할 수 있었다 3D 작업을하는 경우에 대비하여 회전 시키십시오

나는 이것을 지울거야 또 다른 방법은 나는 움직일 수있다

내 뷰포트 클릭만으로 모퉁이에서 그것을 움직이는 지금, 재미있는 부분, 더블 클릭, 나는 들어간다 모델에, 줌 명령, 약어 Z 들어가라 아래 옵션을 보았습니다 매우 중요합니다 누가 이것을 읽었는지, 여기에서 많은 것을 배웁니다

모든, 중심, 동적, 확장, 미리보기, 크기 조정, 창, 개체, 규모를 조정 해 보자 직접 스케일을 입력 할 수있다 또는 아무것도, S 입력, 이제, 그는 나에게 묻고있다 척도 값 nx 또는 nXP 우리가 밀리미터로 일하고 있기 때문에, 나는 타이핑 할거야

1000 1 미터가 될 필요가있는 1000 밀리미터 그리고이 경우에 확장 할 요소는 50을 사용하려고합니다 여기 나는 내가 원하는 것을 말하고있다 1:50 척도로 드디어 XP 입력 그것은 1:50 척도이고, 확대보기 확대 내가 그림에서 가지고있는 모든 것, 그리고 다시 나는 오른다, 크게, S 1000 / 100XP 나는 이것을 가지고있다 1 : 100의 눈금 당신이 볼 수 있듯이, 여기 내 두 층에 맞을 수 있는데, 나는 밖에 간다

나는 그들과 더 가까워지기를 원하지만 나는 움직이고 싶지 않다 거기에있는 것 모델에서, 그래서, 나는 이것을 줄이려고한다 그리고 그것을 복사하려고합니다 모델에서 처리되는 명령도 레이아웃에서 작동합니다 나는 그것을 복사한다

나는 그것을 쳤다 두 번 클릭하면 나는 들어간다 나는 그것을 펼쳐 그리고 그것은 더 가깝다 이제, 나는 북쪽을 가졌고 나는 북쪽을 여기에 나타나기를 원한다

좋아 다른 뷰포트를 만들겠습니다 아무것도 더 많은 것에서, 나는 그것을 좋아한다, 작은 하나, 줌 확대, 내 그림에있는 모든 것을 보여줍니다 여기 내가 본다 내 북쪽, 여기있다

확대 나는 주위를 선택한다 거기에는 내 북쪽, 나는 그것을 옮길거야 그래서 그것은 그림에 더 가깝고, 나는 ortho를 비활성화 할 것이다 여기를 클릭하면 비활성화됩니다 또는 F8, 내 북쪽, 바로 내가 원하는 곳, 내 2 층, 여기에서 예를 들어 보겠습니다

예를 들어, 다른 규모로 확대 / 축소, zoom 나는 여기에서 이것을 원한다 줌 배율 1000 / 75XP 저기, 나는 밖에 간다 내 뷰포트를 확장 할 수 있습니다 더 자세히 보여줍니다

패닝, 내가 원하는 곳이 될 때까지 저기서 같은 파일에서 여러 가지 견해를 가지고 있습니다 내가 다른 차원에서 그것들을 원하는 것처럼,이 두 가지는 1 : 100이며 이것은 1:75입니다 이것은 완전히 스케일 밖 이제 그들은 저에게 말해 줄 것입니다 못생긴 라인 더미, 괜찮아, 나는 내 라인을 선택한다

레이어 0에 있습니다 내가 그들을 deftpoints 레이어로 보낼거야, 이 레이어는 인쇄되지 않으며, 이 층 안에 들어가는 모든 것 그것은 당신의 인상에서 나오지 않을 것입니다 Ctrl + P를 눌러 인쇄하고, 미리보기로 결과보기, 그리고 여기 있습니다, 한 줄도없이 취소하다 이것의 아름다움, 네가 할 수있는 것은 형식 내가 그랬던 것처럼, 모델에이 형식이 없습니다 모델에서 나는 오직 내 프로젝트 만 가지고있다 레이아웃에서 나는 나의 형식을 만든다

이 모든 것이 레이아웃에 있습니다, 당신은 볼 수 있습니다, 나는 여기서 그것을 수정할 수있다 이미 내 포맷을 가지고 있다면, 나는 할 수있다 사본 레이아웃, 나는 그것을 레이아웃 오른쪽 클릭에 준다 이동 또는 복사 복사 할 레이아웃을 선택합니다 이 경우 내가 가지고있는 첫 번째 것을 사용할 것입니다

palomeo이 옵션, 확인 그리고 여기있다 내가 만든 사본 나는 그것을 개명 할 수있다 그게 네가이 작은 이름을 가지고있는 방법이야 나는 세부 사항을 넣을거야 4 그리고 이것은, 사본입니다

내 레이아웃의 경우, 동일하므로 복사합니다 이미 가지고있는 규모를 유지할 수 있습니다 나는 단순히 내부를 바꾸고 나는 준비했다 내 모든 프로젝트, 나는 노트를 만들고, 나는 넣을 수 있고, 화살, 글자, 모든 것을 넣을 수있다 나는 모델을 넣을 수있다

또한 레이아웃에는 또 다른 장점이 있습니다 네가 얻을 수 있다고 생각해 많은 전문적인 결과를 인쇄 할 수 있습니다 더 많은 가늠자, 당신이 원하는 모든 가늠자, 1시 1 분의 1의 눈금에서 처음에 그리기, 재조정 할 필요가 없으며 원하는 형식으로 형식을 사용할 수 있습니다 그리고 몇번이고 당신의 포맷을 반복해서 복사하는 것보다 더 많은 것을 수정할 필요가 없습니다

열쇠, 그리고 비행기의 이름 이것으로 할 수있는 또 다른 일은 다음과 같습니다 다시, 오른쪽 클릭 및 모델로 레이아웃 내보내기, 이 옵션을 제공하면 그것을 지키라고 부탁하다 당신이 원한다면, 나는 그것을 지키고 나를 보여 준다 내 파일이 올바르게 저장되었습니다

그리고 내가 그것을 열고 싶다면, 좋아,보고 싶다 그리고 여기 있습니다, 완벽하게, 스케일, 내가 그릴 때 마지막으로 인쇄 할 레이아웃을 엽니 다 준비가되었습니다 제어 + P 내게 이것을 보여줘, 음모 준비, 체코 어 떠나기

PDF로 변환하려면, 마침내 모든 것이 순서에 있고 결국 ok다고 체코 슬로바키아 사람 그리고 나에게 준비 됐어 나는 그것을 내가 원하는 버전으로 저장했다 좋아,이 모든 것이 내 편이라, 나는 희망한다 이러한 유형의 동영상을 좋아하고 더 많은 것을 배우고 싶은 경우 유용합니다

AutoCad, 코멘트에 남겨주세요, 다음 주에 보자

VLSI CAD: Logic to Layout Lecture 001 Welcome and Introduction

안녕하세요, 저는 Rob Rutenbar입니다 저는 전공의 교수입니다

University of Illinois에서 UrbanaChampaign의 컴퓨터 과학과 행복 내 수업, VLSI CAD, Logic to Layout에 오신 것을 환영합니다 그래서,이 강의의 첫 강의입니다 그리고 이것은 기본적으로 소개와 큰 그림 강의입니다 우리 뭐하니? 코스 물류는 어떻게 생겼습니까? 높은 수준의 코스 조직은 무엇입니까? 코스의 그레이딩은 어떻게 생겼습니까? 그리고 나서, VLSI에서 흥미로운 점이 있습니다 CAD 비즈니스, 어떤 종류의 것들에 집중할 것입니까? 우리는 도구, 소프트웨어, 알고리즘, 데이터의 디자인에 초점을 맞출 것입니다

구조에서, 정말 크고 재미있는 칩을 컴퓨터 과학의 관점 그래서 그것에 대해 이야기 해 봅시다 강의 1에 오신 것을 환영합니다 우리의 새로운 클래스, VLSI CAD, Logic to Layout 자, 우리가 배운 것을 이야기 해 봅시다

이 수업에서 우리는 무엇을하고 있습니까? 기본 아이디어는 우리가하려고하는 것입니다 복잡하고 큰 집적 회로에 대한 아이디어를 얻는 방법 알아보기 실제로 그것들을 매우 대규모의 집적 회로로 바꾸어 놓는다 그래서 우리는 CAD 도구를 연구 할 것입니다 그리고 특히, 우리가 갈 일은 이 클래스에서 살펴 보는 것은 실제로 우리가이 도구들을 스스로 설계하는 방법입니다 따라서 우리는 기존 상용 도구를 실행하는 데 그다지 관심이 없습니다

우리가 실제로 사용할 수있는 오픈 소스 도구가 실제로 있지만 커 세라 (Coursera) 생태계에서 돌아 다니고 있지만, 우리는 컴퓨터를 더보고 있습니다 여기 과학적 관점, 알고리즘 및 데이터 구조 및 방법에 대한 아이디어 우리는 실제로 이러한 흥미로운 객체를 디자인 할 수 있습니다 클래스 물류가 있습니다 10 주 정도 8 주간의 강의가 있습니다

그런 다음 자유로운 주간에 너는 숙제 등을한다 그리고 나서 1 주일 동안 최종 시험 매주 짧은 동영상이 있습니다 세그먼트 대략 2 ~ 3 시간 정도 코스의 수업 내용

문제가 8 가지가 될 것입니다 그래서, 이것들은 기본적으로 숙제입니다 과제 8 주간의 비디오가 있기 때문에 물질, 8 가지 과제가있을거야 그리고 우리는 9 단을 당신을 위해 열어두고, 당신이이 물건을 끝내도록 할 것입니다

또한 네 가지 프로그래밍 할당이 있습니다 평범한 것, 당신도 알다시피, 어떤 언어로도 편안하게 with,, C, C ++, Java, Python, 당신이 좋아하는 것 그러나 일부 스크립트는 우리가 실행하는 일부 CAD 도구를 통해 실행할 것입니다 실제로 서버에서 실행되기 때문에 그들이하는 일을 볼 수 있으며 숙제 중 일부에있는 것들 그래서 수업에서 채점하는 것에 대해 잠깐 이야기하겠습니다

특히 성취에 대한 성명서를받는 방법에 대해 알고 있습니다 인증서 및 2 가지 배지 옵션이 있습니다 기본적으로 두 경로가 있습니다 수업 그래서 저는 왼쪽의 한 가지 길을 보여주었습니다

경로를 통해 성취도 배지뿐만 아니라 성명서도 받게됩니다 증명서 그래서, 8 가지 문제가 있습니다 그리고 그 사람들은 75 %의 가치가있는 사람들이 될 것입니다 제출

늦게 제출하면 신용의 50 %에 대한 마감 그리고 최종 시험도있을 것입니다 수업 중 포인트의 25 %, 단일, 단일 제출 그리고 아이디어는 당신이 시간이 없다면이 길을 따라 가야한다는 것입니다 모든 코드를 수행하십시오

그리고 우리가 오른쪽에서 볼 때 우리가 볼 수있는 슬라이드는 실제로이 수업을 통해 또 다른 방법으로 또한 성명서를 받으실 수 있지만 숙달 배지 그래서, 당신은 또한 8 가지 문제 세트를합니다 이제 신용의 40 %를 차지할 가치가 있지만 지금은 4 가지 프로그램 과제가 있습니다 또한 40 %의 가치가 있습니다 여러 번 제출하면 좋습니다

늦은 제출은 또한 신용의 50 %를 허용했습니다 기본적으로 격주에 프로그래밍 할당이있어 실제로 코드 나 일부 CAD 스크립트를 작성하여 Coursera Cloud, 우리가 보여주는 이러한 아이디어 중 일부를 탐구하고, 클래스에서 개발 그리고 마지막 시험이 있습니다 20 %의 가치가 있으며 단일 제출도 가능합니다 그리고 여기의 아이디어는 당신이해야한다는 것입니다

당신이 정말로 원하는 것이 코스의 가장 깊은 이해라면이 일을하십시오 이제 다른 중요한 것들은 분명히 명예 코드입니다 잘 됐네요 다른 사람들과 이야기하고 함께 일하는 것이 바람직합니다 클래스

우리는 확실히 그것을 권장합니다 그러나 당신이 제출하는 것은 숙제, 코드, 다른 임무는 그리고 다음 중 하나에 솔루션을 게시하지 마십시오 Coursera 사이트의 과제물을 공유하거나 이러한 솔루션을 대면 공유 할 수 있습니다 전자 메일이나 웹 또는 다른 사람들과 공유 할 수 있습니다

그것은 정말로 그저 코스를 배우는 경험을 망칠뿐입니다 수업 중 다른 모든 사람들을 위해 그러나 Coursera 상호 작용을 사용하십시오 메커니즘을 제공합니다 왜냐하면 Coursera는 여러분이 요청할 수있는 훌륭한 토론 포럼을 지원하기 때문입니다 질문

그리고 우리는 모든 것을 활용할 것입니다 당신이 우리와 연결하고 서로 연결하는 데 도움이되는 것들 이 작업을 수행하기 위해 필요한 배경에 대해 잠깐 이야기 해 봅시다 수업 컴퓨터 과학이 필요해

배경 당신은 프로그램을 작성할 수 있어야합니다 현대적인 언어로 500 라인에서 1,000 라인 정도 그리고 기본적인 데이터 구조를 알아야합니다 그래서, 어떻게 링크 된리스트가 작동하는지, 어떻게 나무가 작동하는지, 재귀가 어떻게 작동하는지 등등 그

컴퓨터 공학 분야에서 하드웨어 기술 당신은 어떻게 기본적인 디지털 디자인을 알아야합니다 작품, 게이트, 플립 플롭, 부울 대수, 논리를 단순화하는 Karnaugh지도 무언가의 구조 그리고 조합에 대해 알아야합니다 순차적 설계, 유한 상태 기계 등이 포함됩니다

수학 측면에서, 당신은 약간의 이산 수학을 알아야합니다 당신은 세트가 무엇인지 알 필요가 있습니다 당신은 기능이 무엇인지 알 필요가 있습니다 주의 깊게 표기법을 써서 수학을 설명 할 때 편안함 작은 그래프 이론은 좋지만 필수는 아닙니다

니가 필요한 건 내가 개발할거야 우리는 실제로 몇 군데에 가서 몇 가지 미적분 기술을 사용하십시오 따라서 파생 상품의 작동 방식을 알아야합니다 어쩌면 선형 대수학의 기본 적분, 약간의 기본 적분 일 수도 있습니다 기본적인 학부 과학이나 공학 수학이 그것을 할 것입니다

기본적인 VSLI 지식은 특히 당신이 칩 레이아웃을 조금이라도했다면 좋았습니다 그게 좋은 일이지만, 그게 꼭 필요한 것은 아닙니다 클래스는 실제로 완전히 독립적 인 것으로 구성됩니다 비디오 강연을보고 있다면, 우리는 우리가 VSLI CAD에 대해 배워야합니다 그래서, 여기의 정상에, 당신은 알고있다, what 's 수업은 전부? 그것은 컴퓨터 지원 설계입니다

반 맞춤형 ASIC 따라서 ASIC은 우리에게 중요한 단어입니다 이것은 특정 용도의 집적 회로입니다 그것은 하나의 기능을 수행하도록 설계된 회로입니다 그리고 세미 주문형은 이미 일부를 사용하여 이것을 디자인하려고 시도한다는 것을 의미합니다

설계된 부품 다음 슬라이드에서 이에 대해 이야기하겠습니다 컴퓨터 지원 설계 인 CAD는 일련의 설계를 통한 흐름입니다 단계 및 소프트웨어 도구 그래서 우리의 a, a, 우주는 이 다이어그램에서 설명합니다

그리고 우리는 당신이 일부 디지털 고급 설명과 일부 고급 설명 언어, Verilog 또는 VHDL 일 수 있습니다 그리고 그것은 뭔가로 변할 것입니다 실제로 논리 합성을 통해 구현할 수 있습니다 게이트 및 와이어를 사용하여 실제로 논리적으로 올바른 작업을 수행합니다 수백만 게이트와 수백만 게이트로 변할 것입니다

수백만 와이어 우리는 그것을 적절한 것으로 집어 넣을 것입니다 레이아웃 합성 도구 모음을 만들었습니다 칩의 표면, 전선을 내려 놓고 그들을 연결, 우리가 최적화하는 데 도움이 타이밍 등 그리고 많은 종류의 라이브러리가 있습니다

이 모든 수준에 걸쳐이를 지원하는 것들 우리가 주로이 수업에서 중점을 둡니다 기본적으로 게이트와 전선 그래서, 논리 합성은 일종의 정렬로 시작합니다 부울 설명으로 게이트와 와이어를 제공합니다

레이아웃 합성은 게이트와 와이어를 취하여 적절히 정렬합니다 여기에 몇 가지 유용한 두문자어와 몇 가지 용어가 있습니다 Semi-custom ASIC, 나는 이전 슬라이드에서 이것을 언급했다 애플리케이션 별 집적 회로는 ASIC입니다 즉, 대부분 semi-custom을 사용하여 특정 작업을위한 칩을 설계 할 때입니다

기법 그래서, 만약 당신이 프로세서를 디자인한다면 ASIC이 아니라, 당신이 알고있는 것을 디자인한다면, 비디오 재생 또는 특정 사운드가있는 무언가 또는 무엇인가 알고 있습니다 암호화는 ASIC입니다 당신은 정말로 그 (것)들의 zillions를 만들기 위하여 예기하지 않는다 그래서 당신은 그 (것)들을하는 것을 여유가있을 수 없다 전체 주문형 디자인이라고 불리는 반 맞춤형 디자인의 반대편 그들은 꽤 밀도가 없습니다

그들은 당 많은 트랜지스터를 가지고 있지 않습니다 단위 면적 그것들은 풀 커스텀만큼 빠르지는 않습니다 디자인 차이점을 살펴 보았다면 반 사용자 정의 디자인과 완전한 맞춤 디자인 사이에서, 내가 말하는 것은 반 맞춤형 디자인은 선재 부분에서 대부분 잘 시작됩니다

그래서, 우리는 당신이 아시다시피, 당신이 알고있는 문이 가득한 도서관을 가지고 있다고 가정합니다 도구 우리는 당신이 도서관에 접근 할 수 있다고 가정합니다 메모리, 그래서 당신은 RAM의 큰 블록을 넣을 수 있습니다 그리고 우리는 주로 우리가 그 것들에 합성하고 배열하는 방법에 관심이 있습니다

기하학적으로 그러한 것들을 우리의 디자인으로 만듭니다 전체 맞춤 디자인은 실제로 디자인을 할 때 우리가 말하는 것입니다 개별 트랜지스터 레벨과 솔직히 오늘날 마이크로 프로세서는 정말로, 정말로 완전한 주문형 일뿐입니다 사실, 여러분도 알다시피, 다른 흥미로운 몇 가지 종류의 우리가 할 수있는 것, 우리는 언급 할 수 있습니다 알다시피, 당신이 아는 어떤 것을 위해, 당신이 알고있는 미국 달러로 오늘 ASIC과 같은 것, 우리는 무언가에 대해 이야기하고 있습니다

너도 알다시피, 2 천 5 백만이 그런 걸 할거야, 우리가 아마 25 ~ 50 명이 실제로 그 종류를 디자인하는 것과 같은 것에 대해 이야기하고 있습니다 사물의 하지만 우리가 뭔가 얘기하고 있다면 완전한 주문형 디자인처럼, 어, 우리는 100 수백만 달러라고 생각해 봅시다, 어쩌면, 아마도 100 명 정도되는 사람들이 있습니다 어쩌면 수백명의 사람들이 값 비싼 팀을 복잡하게 만들 것입니다 그런 종류의 디자인을 할 수 있습니다

그리고 심지어 오늘, 완전한 주문형 프로세서 디자인, 그들은 그들에 사용자 정의 부품의 엄청난 금액이 있습니다 따라서이 클래스의 반 맞춤형 ASIC에 중점을 둡니다 더 중요한 약어가 하나 있는데, CAD는 컴퓨터를 통해 도움을 받았습니다 디자인 그리고 우리 모두가 그랬던 것처럼 칩 디자인을위한 도구의 세계

그리고 문제는 많은 우리 친구도 CAD를합니다 그래서 우리의 기계 공학 친구들, 그들은 자동차를 디자인하고 있으며 CAD를 사용합니다 우리의 건축 친구, 누가 디자인인가? 교량은 CAD를 사용합니다 Cad는별로 구체적이지 않습니다 따라서 칩을 실제로 사용하는 사람들은 EDA, 전자 설계 오토메이션

그게 가장 내부자 칩 사람들이 부르는 것입니다 그것 더 정확하고 더 설명적인 이름 문제는 외부의 사람들이 비즈니스가 이것이 무엇을 의미하는지 항상 명확하지는 않습니다 그래서 저는이 VLSI CAD를 쉽게 호출하기를 원했기 때문에 이것을 선택했습니다 이것에 관심이있는 사람들이 이해합니다

하지만 실제로, 솔직히 VLSI EDA입니다 누군가에게 현명하게 말하고 싶다면 칩 디자인을 담당하는 사람은 EDA라고 부릅니다 자, 알 잖아 더 중요한 약어는 칩상의 시스템 인 SOC입니다 칩상의 시스템은 하나의 큰 칩에 많은 기능 블록을 통합하고 가장 일반적으로 우리가하는 일은 블록을 취하고 함수를 구현하는 것입니다

기본적으로 게이트 또는 플립 플롭이라고하는 표준 셀이라고합니다 우리는 이러한 것들을 줄 지어 정렬합니다 우리는 그것들을 많은 층들과 연결합니다 와이어 우리는 이러한 것들을 큰 것으로 산재시킵니다

정적 RAMS SRAM과 같은 메모리 블럭 그런 다음이 블록 내부에서 우리가 좋아하는 것을 구현하십시오 그래서 우리는 임의의 논리를 구현할 수 있습니다 우리는 어떤 종류의 CPU 코어를 구현할 수 있습니다 함수를 사용하여 원하는 모든 작업을 수행 할 수 있으며 이러한 종류의 블록을 칩에 큰 시스템을 만든다

그들은 정말로, 정말로 그렇게 보입니다 이것은 매우 단순한 것입니다 그리고 방금 블록 몇 개를 가져 왔어 알아 우리가 여기에서 볼 수있는 한 무리가 있습니다

이 칩의 표면에 많은 메모리 블록이 있습니다 실제로 버스와 통화하고있는 임의의 제어 논리가 있습니다 작은 프로세서가 조금 더 있습니다 단지 4 비트 또는 8 비트라고 생각합니다 프로세서, 거기에 게이트의 행을 측면에 구현하고 이것은 재미있는 칩

이것은 컨트롤러 칩입니다 실제로 아날로그 인터페이스가있어 이상한 전압과 산업계에서도 그렇지만 여전히 칩상에 시스템을 갖춘 좋은 예입니다 이 클래스의 또 다른 중요한 용어는 플로우입니다 이런 큰 디자인을 어떻게 공격합니까? 음, 큰 생각은 추출 문제를 더 작은 크기로 나눕니다

단계 및 모든 단계에서 디자인을 조금 더 현실감있게 만듭니다 그래서, 합성 단계는, 지금 그것들이가는 것들입니다 그럼 합성 이죠, 그렇죠? 그것들은 앞으로 나아갈 것들입니다 디자인 그들은 마지막 단계에서 물건을 가져 가고 그들은 그것을 조금 더 현실로 만듭니다

확인 단계는 뒤로 보이는 것들 그것들은보고, 뒤돌아 본다 쪽으로 좋아, 그게 확인 단계 야 그들은 실제로 효과가 있는지 확인했습니다

그리고 완벽한 단계 세트를 a라고합니다 흐름 그리고 흐름에는 수백 단계가있을 수 있습니다 실제 산업 디자인에서 그러나 우리 반에는 정말 단순한 흐름이 있습니다

좋습니다, 그래서 우리는 기본적으로 이러한 것들을 살펴볼 것입니다 지역 우리는 논리 합성을 살펴볼 것입니다 합성 (Synthesic Synthesis)과 부울 논리 (Boolean logic)로 시작하겠습니다 추상 형식의 종류의 설명

그리고 그것은 우리에게 진정한 문을 열어 줄 것입니다 합리적인 방법으로 최적화 된 전선 그리고 우리는 약간의 논리 검증을 살펴볼 것입니다 우리는 주로 당신의 디자인이 어떤 것인지 말하기위한 몇 가지 방법들을 살펴볼 것입니다 부울 도메인, 게이트 및 와이어에서 아주 간단한 방법으로 수정하십시오

우주 그리고 나서, 게이트와 전선이 칩에 실제로 배치 한 종합적인 도구 세트를 배치합니다 칩의 표면은 단지 큰 직사각형이며 xy 좌표는 그 모든 것들 그리고, 그들은 또한 단지 이 우주에서 약간의 타이밍 그래서 우리는 뭔가를 알아 내려고 노력할 수 있습니다

얼마나 오래, 물건들이 실제로 얼마나 오래 걸리는지, 아주 간단한 방법으로 자, 이것은 엄청나게 단순화 된 흐름이라고 말해야합니다 그러나 우리가 사용할 수있는 10 주간의 시간에 우리는 실제로 우리가 할 수 있다고 생각합니다 이것을 덮어 라 그래서,이 수업의 큰 목표는 중요한 알고리즘과 중요한 데이터 구조, 그리고 각각의 큰 단계에서 사용되는 모델링 가정

자, 시작하고 그러한 것들이 무엇인지 살펴 봅시다

VLSI CAD: Logic to Layout Lecture 009 BDD Basics Part 2

그래서 강의 32에서는 Computational Boolean에 대한 작업을 계속할 것입니다

대수학 그리고 우리는 이진 의사 결정 다이어그램 또는 BDD 개발 마지막 강의에서 우리는 의사 결정 다이어그램이 진실한 테이블과 같은 것 그러나 단지 너무나 큰 그리고 우리가 한 첫 번째 일 중 하나는 우리가 주어진 조각에 대해 다이어그램을 모두 동일하게 만들기위한 변수들 of, of 부울 논리 우리는 계속해서 제약하고 의사 결정 다이어그램 축소

우리는 또 다른 큰 아이디어를 소개 할 것입니다 이 강의에서 우리는 다이어그램을 축소 할 것입니다 다이어그램에서 특정 중복 형태를 제거 할 것입니다 그래서 우리에게는 정말 멋진 재산이 있습니다 부울 방정식

그리고 당신은 변수가 BDD에 나타나면 항상 같은 다이어그램을 얻습니다 나는 항상 같은 그래프를 얻는다 데이터를 생성하면 이런 식으로 정식 구조는 사실상 놀랍도록 강력한 도구가됩니다 Boolean 객체를 조작하고 정말 흥미로운 질문에 대답합니다 그럼 어떻게 작동하는지 봅시다

우리는 다시 바이너리를보고 있습니다 의사 결정 다이어그램 및 리뷰를 통해 처음으로 커다란 두 가지 큰 아이디어를 얻었습니다 첫 번째 아이디어는 헤이 (Hey) 였고, 의사 결정 다이어그램을 사용할 수있게했습니다 그리고 두 번째로 큰 아이디어는 전역 변수를 주문하도록합니다 루트에서 리프까지의 모든 경로는 동일한 순서로 변수를 방문하고 우리가 가진 것이 었습니다

우리가 만드는 BDD가 여전히 존재한다는 사실 표준이 아닙니다 두 가지 다른 BDD를 사용할 수 있습니다 동일한 기능을 나타냅니다 그래서 또 다른 큰 아이디어가 필요합니다 그리고 이것이 바로 다음으로 중요한 아이디어, 즉 감축이라는 아이디어입니다

이것은 그래프에서 제거 할 수있는 중복이 있다는 아이디어입니다 불필요한 노드와 가장자리 필요없는 것들이 있습니다 우리는 일부 노드를 제거 할 수 있습니다 우리는 가장자리를 제거 할 수 있습니다

그래프를 조이면됩니다 그것을 더 작게 만드십시오 그래서 이전 강연의 끝에서 우리는 X2 노드와 그 자식을 꺼내었고 우리는 그것을 바꿨다 그것이 바로 그 예입니다 우리가 왜 이러는거야? 글쎄, 우린 2 번 매우 유용한 이유

첫 번째는 그래프 크기입니다 결과 데이터 구조를 가능한 한 작게하고 싶습니다 음, 그 말이 맞지? 왜 컴퓨터 메모리를 더 사용하지 않는가? 필요해? 하지만 두 번째는 내가 정말로 원한다는 것이다 나에게 같은 변수를 주면 같은 부울 함수에 대한 정규형 주문 나는 거기에 정확히 있기를 바란다

이 함수를 나타내는 그래프 그리고 그것은 엄청나게 강력한 아이디어, 우리가 그렇게 할 수 있다면 따라서 우리는 몇 가지 감축 규칙을 사용하려고합니다 그리고 감축 규칙은 결정 다이어그램에서 비효율적이기 때문에 노드 수를 줄이거 나 가장자리 수를 줄일 수 있습니다 따라서 첫 번째 축소 규칙은 실제로 간단합니다

그리고 말하기를, 우리는 단지 각각의 일정한 잎 하나를 쉽게 지켜야 만합니다 그리고 이것은 등가의 잎 노드를 합치는 규칙입니다 그리고 정말로 말하고있는 것, 나는 정말로 이것의 맨 아래에 하나의 0 노드 만 필요합니다 이진 결정 다이어그램 그리고 맨 아래에 하나의 노드 만 필요합니다

이 결정 도표의 그리고 나는이 모든 것을 정말로 제거 할 수 있습니다 다른 별도의 사본 그리고 나는 그 모든 모서리를 매우 큰 초기 다이어그램 그리고 변수를 리디렉션 할 수 있습니다

노드는 상수 노드로의 에지를 갖는다 나는 그것을 하나의 복사본으로 리디렉션 할 수 있습니다 0과 1의 단일 사본 그리고 만약 우리가 그 모든 모서리를 감당한다면 그것은 축소되지 않은 버전의 맨 밑에있는 네 개의 X3 노드에서 나온 것입니다

이진 결정 다이어그램 그리고 그것들을 하나의 0으로 리디렉션하면됩니다 노드와 단일 1 노드로 구성됩니다 그것이 우리가 얻는 것입니다 그리고 오, 봐요

훨씬 나아 졌어요 하지만 내가 말했듯이, 당신은 100 개의 변수를 사용하면 아래쪽에 100 개 중 2 개가 100 개 있습니다 자, 두 개있어 좋습니다 하지만 아시다시피 아시다시피, 우리는 여전히 훨씬 더 잘 할 수 있습니다

상단에 물건 이 삼각형으로 여기를 돌면서 BDD의 상단 부분 글쎄요, 아직도 하나의 X1 노드가 있습니다 두 개의 X2 노드, 네 개의 X3 노드가 있습니다 나는 정말로 물건을 더 좋게 만들지 않았지만 적어도 상수 노드에 대해서는

이것은 바보가 아닙니다 이것은 덜 비효율적입니다 이것은 많은 의미가 있습니다 그러나 더 재미있는 것을 보자 감소 규칙

뭔가 실제로, In 강력한 방법은 이러한 의사 결정 다이어그램의 내부를 감소시킵니다 그래서 여기에 두 번째 축소 규칙이 있습니다이 이름은 더 흥미로운 이름입니다 그것은, isomorphic 노드를 병합 말한다 좋아, 동형 노드 란 무엇입니까? 동형 노드는 두 가지 중요한 특성을 갖는 두 개의 이름입니다

그것들은 동일한 변수이며, 동일한 자식을가집니다 자, 같은 변수, 그것은 일종의 쉬운 변수입니다 x와 y, 또는 x와 q를 절대로 병합하지 않을 것입니다 자, x와 x를 병합 할 수 있습니다 그러나 동일한 아이들은 그들이 동일하다는 것을 의미합니다

똑같은 육체의 아이들 그들은 똑같은 아이들이 아닙니다 상표 그래서 여기에 예제가 있습니다 동형 노드

x 노드는 동형이다 좋구나 자, x 노드는 같은 변수를 가지고 있습니다 괜찮아 둘 다 x 노드입니다

그리고 x 노드에도 동일한 자식이 있습니다 그리고 저의 말은 저들이 제로 자녀들을 가르키고 있다는 것을 의미합니다 ay 노드와 높은 포인터로 이동하십시오 어느 것이 값이 1로 설정되면, 둘 다 z 노드로 이동합니다 그리고 그들은 늙은 y, 무작위 y에 가지 않습니다 노드 또는 z 노드의 경우 둘 다 동일하게 이동합니다

X y 노드와이 동일한 z 노드 똑같은 노드 그리고 여기서 일어나는 일은 제가 둘 다 필요하지 않습니다 나는 그들 중 하나를 제거 할 수있다 그래서 저는 그것을 하나, 어떤 것으로 든 간단하게 대체 할 수 있습니다

그것은 중요하지 않습니다 그리고 나는 아이들을 지킬 수있다 권리? 내가 여기서 그림을 그리는 것처럼, 맞아 그래서 x 노드가 있습니다 그 낮은 자식은 y로 이동하고, 높은 자식은 z로 이동 한 다음 y와 z는 z로 이동합니다

영향을받지는 않지만이 경우에는 x로 들어가는 두 개의 포인터가 있습니다 노드 그 중 하나가 왼쪽 x 노드로 들어가고 그 중 하나가 오른쪽 x 노드로 이동합니다 그리고 지금 일어나는 것은 당신이 단순히 둘 다 리디렉션하십시오 x 노드로 이동합니다

그래서이 BDD에서 x 노드 위에 어떤 일이 일어나고 있었는지, 맞습니까? 그리고 x에 이르기까지 다양한 결정을 내린 일부 장벽을 뛰어 넘었습니다 그 포인터들은 단지 x의 단일 사본을 가리킨다 그리고 옆에 작은 회색 상자가 있습니다 그냥 조리법을 제공합니다 중복 노드를 제거합니다

이 경우는 추가 x 노드입니다 들어간 모든 가장자리를 리디렉션합니다 중복 된 노드를 보관 한 복사본으로 만듭니다 따라서이 경우 오른쪽 x 노드로의 가장자리는 왼쪽 x 노드로 들어 가지 않습니다 잘

그것은 동형이 합쳐진 예입니다 노드를 사용하여 BDD의 복잡성을 줄입니다 그러므로 우리의 규칙에 규칙 2를 적용 해 봅시다 그리고 우리가 잠시 그것을 보았을 때, 우리가 찾아야 만하는 큰 것이 있습니다 동일한 변수 레이블을 가진 노드는 무엇입니까? 그리고 똑같은 아이들

그래서, 다른 노드가 없습니다 x1이므로 x1이 될 수 없습니다 그리고 우리가 x2를 보면, 그들은 x2를 보지 않습니다 동일한 자녀가 있습니다 하지만 우리가 x3을 조금이라도 쳐다 보지 않으면 동안

우리가 발견 할 수있는 것은, 가장 오른쪽 x3은 모두 동형입니다 그들은 모두 낮은 자녀로 0, 높은 자녀로 1을가집니다 그래서 저는 그 중 하나만 필요로합니다 나는 그들 모두를 필요로하지 않는다 그래서이 BDD를 다시 그릴 수 있습니다

x1이 있어요 좋아요, 정상에요 그리고 다음 순위에 올랐습니다 두 개의 x2 노드가 있죠 맞죠? 그리고 낮은 아이가 왼쪽 x2로 간다

마디 그리고 높은 아이가 오른쪽 x2로 간다 마디 그런 다음 오른쪽에 싱글 x3 아이 맞지? 그리고 x2의 높은 아이가 있고 x2의 하위 하위 노드는 모두 단일 x3 노드로 이동합니다 그것들은 새로운 가장자리이기 때문에 작은 별들을 넣을 것입니다

왼쪽에서 x2 노드도 이동하고 하위 노드는 x3 노드로 이동합니다 아래쪽에는 하나의 상수와 하나의 상수가 있습니다 왼쪽의 x3 하위 노드 (하위 노드와 하위 노드 모두)는 0 노드로 이동합니다 오른쪽의 x3 노드, 하위 하위 노드는 0 노드로 이동하지만 상위 하위 노드 1 노드로 이동합니다 그리고 왼쪽의 x2 노드는 다음과 같이 씁니다

높은 아이는 x3으로 간다 나는 그걸로 작은 별을 넣을거야 괜찮아? 그래서, 그것들은 모든 것들입니다 재 소송, 맞지? 두 사람을 죽인 결과 세 개의 x3 노드 그리고 그것들을 하나의 x3 노드로 대체합니다

그리고 당신이 즉시 볼 수있는 것들 중 하나는이 그래프에 더 적은 것이 있다는 것입니다 그 중 일부는 적고 복잡하지 않으며 좋은 것입니다 더 단순한 것이 더 낫다는 것을 알고 있습니다 그러나 기다려라, 더있다, 또 다른 것이있다 중복 노드를 제거하는 데 사용할 수있는 규칙 그리고 이것은 불리는 규칙이며, 중복 테스트를 제거합니다

이것은 당신이 그것을 볼 때, 단순하게 느껴지는 것들 이 경우의 테스트는 변수 노드를 의미합니다 맞습니까? 그래서 x가 1이면 내가 무엇을해야합니까? x가 0이면 나는 무엇을해야합니까? 중복 테스트는 변수에 자식이 둘 다있는 상황입니다 같은 노드로 그리고 그건 바보 일 뿐이야, 그렇지? 위의 다이어그램에서 x가 무엇인지 알 필요가 없습니다 x가 0이면 y 노드에 무엇을해야하는지 묻습니다

x가 1이면 y 노드에게 무엇을해야하는지 묻습니다 그럴 필요는 없습니다 권리? 그래서 저는 x 노드를 죽일 수 있습니다 y 노드를 유지할 수 있습니다 권리? 그리고 다시 내가 이것을 볼 때,이 예를 들어, x 노드에 들어가는 가장자리는 많지만 거기에 있습니다

간단히 y 노드로 이동하도록 리디렉션합니다 대신 x 노드를 우회합니다 x 노드가 사라집니다 나는 그것이 어떤 가치가 있는지 신경 쓰지 않는다 내 출력에 영향을주지 않습니다

기능과 그래서 나는 그것을 제거합니다 그리고 다시, 작은 회색 상자가 있습니다 오른쪽 상단에 약간의 수식을 제공하고, 중복 노드를 제거하고, 모든 에지를이 경우 x 인 중복 노드로 리디렉션합니다 자식,이 경우 제거 된 노드의 y 그것은 그것이 조리법이지만, 단순한 것입니다 그래서 우리가 진화하는 BDD로 돌아가서 규칙 3을 적용한다면, 내가 그린 것 왼쪽은 같은 예였다

내가 전에 손으로 몇 개의 슬라이드를 만들었다 X1은 낮은 하위 노드와 높은 하위 x2를 가진 최상위 순위 노드입니다 권리? 다음 순위는 2 x3입니다 맞습니까? 왼쪽의 x2에는 x3으로 이동하는 하위 하위가 있습니다 높은 아이가 맞는 x3입니다

오른쪽의 x2, 두 어린이, 오른쪽 x3으로 가십시오 왼쪽의 x3은 둘 다 0으로 이동합니다 그리고 오른쪽의 x3은 0으로, 높은 값은 1로갑니다 우리는 이것을 즉시 볼 수 있으며 왼쪽의 x3이 중복됨을 볼 수 있습니다 두 자식 모두 0 노드로 이동하기 때문입니다 그리고 오른쪽에있는 x2는 중복됩니다

왜냐하면 둘 다 자식이 x3 마디 그래서 나는 둘 다 죽일 수있다 둘 다 죽일 수 있고 가장자리를 방향 재 지정할 수 있습니다 나는 그들에 의해 작은 별들을 넣을 것이다 들어가는 가장자리를 리디렉션 할 수 있습니다

내가 죽이는 노드 나는 그 아이들을 아이들에게 보낼 수 있습니다 권리? 오른쪽 그림에서 저는 리디렉션 된 이러한 각 가장자리별로 작은 별을 넣을 것입니다 그리고 우리는 훨씬 더 단순한 BDD를 가지고 있습니다 맨 위에는 x1 노드가 있습니다

두 번째 순위에서 단일 x2 노드 X1의 하위 노드는이 x2 노드입니다 세 번째 순위에는 단일 x3 노드가 있습니다 X1의 상위 하위 노드는 해당 노드입니다 X2의 자식 노드가 x3 노드입니다 그리고 바닥에 상수가 있습니다

X2의 하위 하위 요소는 0입니다 하위 요소 하위 요소는 0입니다 X3의 높은 자녀는 1입니다 와우, 이것은 시작한 것보다 BDD가 적습니다 와

이것은 내가 시작한 것보다 그래프가 적다 이 이것은 적은 수의 노드와 적은 수의 노드입니다 가장자리 자, 당신이 물을지도 모르겠다면

이 규칙을 어떻게 적용합니까? 그리고 지금은 그냥 말할 것입니다 반복적으로 다른 그래프 일치를 찾을 수없는 경우, 그래프가 축소됩니다 프로그램이 실제로 그렇게하는 것입니까? 아닙니다 아니오, 아니오, 두 개의 느낌표가 표시됩니다

내가 당신에게 100 개의 변수가있는 함수를 제공한다면, 방금 전에 보여준 방식대로 당신은 당신이 알고있는 100 개의 노드와 2 개의 노드로 의사 결정 다이어그램을 만들어야합니다 하단에 그런 다음이 감면을 적용해야합니다 그게 미친 짓이야 네가 할 수있는 방법이 없어

사실 훨씬 똑똑한 방법이 있습니다 우리는 매우 높은 수준의 작업을 수행 할 것입니다 그 방법의 개요 그러나 지금과 숙제를 위해 문제 및 일종의 지적인 종류의 물건을이 물건 위에 세 개 또는 네 개의 변수가있는 함수를 제공하고 BDD를 수행하도록 요청하면 손으로이 작업을 완벽하게 수행 할 수 있습니다

당신은 옳은 대답을 얻을 것이고 당신은이 물건이 어떻게 작동하는지에 대해 약간의 통찰력을 얻을 것입니다 자, 여기에서 가장 중요한 것은 우리가 의사 결정 다이어그램으로 시작했고 정말 컸습니다 그리고 우리는 변수를 주문했고 우리는 말했다 그것이 우리가 정규화 된 그래프를 만들 수 있는지 봅시다 우리가 항상 같은 그래프를 얻는다면 대답은 '아니오'일 것입니다

중복 항상 모든 변수를 방문하더라도 루트에서 리프까지 같은 순서로 결정을 내릴 때 다른 그래프를 얻으십시오 그러면 우리는 다이어그램을 모두 축소합니다 이러한 병합 작업 그리고 우리는 새로운 것을 얻었습니다

Reduced Ordered BDD라는 것이 있습니다 그리고 그 결과는 정말 멋진 결과입니다 그리고 정말 멋진 결과는 축소 된 BDD가 표준 형식이라는 것입니다 권리? 그래서 저는 데이터 구조를 말할 것입니다 부울 함수

나는 그걸 막을거야 느낌표 우리의 축소 주문 BDD는 정규형입니다 동일한 함수는 항상 정확히 동일한 그래프를 생성하고 정확히 동일한 노드를 생성하며, 똑같은 가장자리와 똑같은 아이를 가진 네가 나에게 동일한 변수 주문을 주었다면 두 개의 부울 함수는 그들의 축소 된 BDD 그래프가 동형 인 경우에만 그들은 동일하다고 말했습니다

이제, 당신은 생각할지도 모릅니다 체크 할거야? 그리고 대답은 놀랍게도 될 것입니다 하찮은 그것은 놀라운 결과입니다 그리고 이것은 가지고있는 정말 아름다운 재산입니다

그 그래프의 가장 간단한 형태, 그래프의 가장 효율적인 형태 최소한의 컴퓨터 리소스를 사용하는 그래프의 형태는 정식 형태 그건, 그냥 사랑스러운, 사랑스러운 전체 BDD 개발의 예상치 못한 일종의 결과 따라서 이것은 축소 된 BDD 감소입니다 알다시피, 우리는, 우리는 그것을 어떻게 만드는지

우리가 다음에하고 싶은 것은 말하기 시작하는 것입니다 우리가 어떻게, 어떻게 우리가이 일을 어떻게 할 것인가에 대한 현실 세계

VLSI CAD: Logic to Layout Lecture 011 BDD Ordering

그래서, 우리는 강의 34에 있습니다

우리는 우리의 탐험을 완료 할 것입니다 이진 의사 결정 다이어그램은 다음에 대한 매우 강력하고 중요한 데이터 구조입니다 전산 부울 대수학 그리고 지금까지 우리는 어떻게 우리가 공유 된 집합을 사용하여 복잡한 부울 함수 집합을 나타낼 수 있습니다 BDD 노드 그리고 인생은 정말로 정말로 좋았습니다

우리가이 강의에서 보여줄대로, 여러분은 매우 디지털 논리의 두 가지 복잡한 조각과 같은 복잡한 질문 동일합니다 그들이 어떻게 다른지 복잡한 부울 함수를 1로 만들 수있는 입력을 찾을 수 있습니까? 우리는 정말로 훌륭하고, 겉으로는 간단한 방법으로 대답 할 것입니다 그 질문들 그래서, 멋진 일이라면, 캐치가 있어야 해, 그렇지? 그리고 문제는 변수들은 실제로 BDD를 만드는 우리의 능력에 중대한 영향을 미친다

모든 부울 기능이 관리 가능한 크기의 BBD로 바뀔 수있는 것은 아닙니다 그리고 변수의 순서에 따라 BDD는 작고 친숙합니다 BDD 변수의 일부 순서에 대해 BDD는 지수 함수이며 끔찍한 때로는 해결할 수 있습니다 때때로 우리는 할 수 없습니다

그것은 인생이 여기서 일하는 방식 일뿐입니다 그래서 BDD에서 순서가 어떻게 삶에 영향을 주는지 살펴 보겠습니다 이제 BDD가 실제로 구현되는 방법에 대해 조금 이야기하겠습니다 BDD 개발을 시작할 때 제가 말한 것들 중 하나는 솔직히 내가 그런 식으로 구현할 수는 없어 개념적으로 소개 한 것 같은데

즉, 전체 의사 결정 다이어그램을 2와 같이 평평하게 만들 수는 없습니다 100 개의 변수의 함수에 대한 하단의 리프 노드에서 100 감축을 적용하십시오 더 좋은 방법이 있어야하고 거기에 더 좋은 방법입니다 그리고 우리는 아주 간단한 이야기를 할 것입니다 이 강의에서이 더 나은 방법에 대해 높은 수준으로 강의합니다

BDD가 실제로 구현되는 방법은 재귀 적 방법입니다 그리고 그것은이 수업에서 반복되는 테마의 일종이 될 것입니다 있잖아, 네가 나 한테 묻는다면, 그건 정말 복잡한 CAD 문제 야, 롭 우리가 어떻게 그것을 해결할 것이라고 생각합니까? 그 대답은 나도 몰라 우리는 그것을 두 조각으로 나눌 수 있을까요? 그들을 재귀 적으로 풀어서 풀을 붙입니다

다시 답을하고 대답은 아마도 10 번 중 9 번이 예가 될 것입니다 따라서 BDD의 경우에도 속임수가 있습니다 Shannon의 공동 인수 나누기와 종류의 것들을 정복하십시오 그리고 여기서 큰 아이디어는 BBD 패키지가 실제로 기능적으로 연산자 집합으로 구현되면 그들은 BDD에서 작업합니다 그래서, 당신은 당신이 원하는 모든 것을 얻습니다

상상해보십시오, 말하자면, 문은, 당신도 알다시피, 당신은 얻을 수 있습니다 배타적이거나 배타적 인 것도 아닙니다 당신은 섀넌 (Shannon) 너는 알고있다, 공동 인자 또는 가변, 또는 밖으로 변수 당신은 공동 인자와 Ands and Ors를 가지고 있기 때문에 보편적으로 부량 당신이 공동으로 요소를 풀어내는 곳, 그리고 함께

실존 적 양화를 할 수 있습니다 당신은 그들을 배제하고, 또는 그들을 배제합니다 당신은 satisfiability를 할 수 있습니다, 즉 하나의 노드에 대한 경로를 추적하여 함수가 하나가 된 것을 알 수 있습니다 하단에 이 모든 것들이 위에 구현됩니다

기본 BDD 데이터 구조 기본적인 아이디어는 우리가 부울 데이터의 유니버스를 입력 및 출력으로 처리하므로 우리는 상수 0과 1은 우리의 데이터 객체의 합입니다 우리는 변수를 가질 것이고, 우리는 Boolean 함수를 가질 것입니다 공유 BDD 그래프로 표현됩니다 그래서, 큰 트릭, 정말 큰 트릭은 우리는 각 연산자를 구현하여 연산자가 공유되고 축소되고 순서화 된 BDD이면 연산자의 출력 감소 된 주문 BBD 그래서,이 말을하는 또 다른 방법은 우리가 BDD의 잘못 수정 된 버전을 빌드하지 마십시오

우리는 항상 축소되고 주문되고 공유되는 것들로 시작합니다 그들을 지키십시오 그리고 대략적으로 말해서, 우리는 재귀적인 정렬하는 메소드는 함수를 맨 아래로 분리합니다 그런 다음 URP와 마찬가지로 맨 아래에서 다시 한 번 정렬합니다 이런 종류의 상향식으로 다시 위로 올려 놓음으로써 재귀가 다시 발생할 때 변수가 올바른 순서인지 확인합니다

적절한 축소가 무엇이든간에 우리가하고 있다는 것입니다 그래서, 이걸 생각해 보는 방법은, 조금 있습니다 여기서 약간의 예를 들자면, 별표를 붙일 것입니다 H는 BDD와 같습니다 저는 이것을 C와 같은 스타일로 작성했습니다

이것은 BDD로, 데이터 개체로 운영자는 일종의 F bdd와 G bdd를 취하고 H bdd를 생성하는 서브 루틴 그리고 너는 그게 좋다고 생각하고 싶어, 여긴 F 야, 그렇지? F는 BDD 노드의 큰 클라우드에있는 일부 그래프의 맨 위를 가리키는 포인터입니다 그리고 G는이 BDD 노드 클라우드의 다른 그래프에 대한 포인터입니다 아마도 F와 G가 겹칠 수도 있습니다

권리? 그리고 나서, 우리가 op를 호출하면 BDD F와 BDDs G, 우리는 새로운 BDD를 얻습니다 아마도 BDD H가 어딘가에있을 것입니다 아마도 그것도 일부 중복됩니다 아니면, 너도 알다시피, 여기에 있을지도 몰라 어딘가에

어쩌면 그것은 BDD H이거나 그리기 일 것입니다 여기에 점선이 있습니다 어쩌면 BDD H가 정말 큰 것일 수도 있습니다 복잡한 지저분한 것, 그리고 F와 G는 대부분 H 내부에 묻혀 있습니다 정말 알아

그것은 F에 의존하고, G에 의존하며, 의존한다 운영자는 H가 무엇인지에 관해서 하지만 공유 축소 순서로 시작합니다 이진 결정 다이어그램 그리고 당신은 당신이 필요로하는 통신 수를 구축합니다 실제 엔지니어링을 할 수 있습니다

그들이 당신에게 돌아 가기 위해 BDD를 주문하면 모든 것이 아름답게 작동합니다 그렇다면 실제 BDD를 어떻게 구현합니까? 그리고 가장 표준적인 예는 제가 여러분에게 논리 같은 것을 줄 것입니다 네트워크는 큰 로직 네트워크와 마찬가지로 10,000 개의 로직 게이트가있는 로직 네트워크이며, 50 개의 인풋과 20 개의 아웃풋이 있습니다 그리고 대답은, 당신이 백업을 구축 할 수 있다는 것입니다 근본적으로 게이트 레벨 네트워크를 점진적으로 걷는 것입니다

따라서 각 입력은 BDD입니다 각 게이트는 새 출력 BDD가 생성됩니다 그리고 우리는 BDD를 만들어냅니다 그 가치는 우리가 여기서 찾고있는 가치입니다 기본적으로 기본 BDD 작업에 대한 호출 스크립트입니다

그래서 오른쪽에 기본 BDD 연산자 스크립트가 표시되어 있습니다 그것은 매우 높은 수준의 일종입니다 이것은 의사 코드 종류의 일종입니다 1 단계에서 A가 변수 A를 생성한다고 말합니다 그리고 이것은 단지 일종의 속기 일뿐입니다

알다시피,이 단계는 오, 알았어 저는 변수 A를 만들려고합니다 그리고 그것은 함수이고 그것은 부울 함수입니다 그리고 여러분이 가리키는 것은이 변수 노드에 대한 0에서부터입니다 그리고 두 번째 변수는 변수를 생성하는 B입니다

B와 B는 변수입니다 그것을 가리키는 함수 세 번째 변수는 변수 C입니다 그것을 가리키는 함수를 만들고 있습니다 각 노드는 단일 노드입니다

BDD, 하나의 자식에서 상수 0을 가리키는 하나의 꼭지점, 낮음 아이 높은 아이 그리고 나서 흥미로 웠습니다 T1, 여기서 볼 수 있듯이 T1은 A와 B의 And입니다 내가 하나, 둘, 셋을했기 때문에 여기에 작은 체크 마크를 붙이려고합니다 T1은 A 함수와 B 함수의 And이므로 I가 가정 할 것입니다

가지고 있고 BDD 패키지의 운영자로 구현되었습니다 결과적으로 BDD A와 BDD B가 호출 될 때와 마찬가지로 뒤 BDD T1, 결과적으로이 작은 BDD를 가리킨다 4 단계 그리고 잠시 동안 이것 만 보시면, 당신은 볼 수 있습니다 예

실제로 BDD를위한 것입니다 하나의 노드는 변수, 변수 A와 변수 B가 모두 1 인 경우입니다 좋아요, 그거 알아요 다음에 어떻게 될까요? 음, T2는 양 B와 C의 And입니다 좋아, 음, T2는 그렇게 될 것입니다

그리고 T2는 5 단계의 결과 일 예정이며, 이는 약간의 BDD가 될 것입니다 B와 C에 대해서 우리는 다시 볼 수 있습니다 사소한 B BDD 이 작은 것에서 1을 얻는 유일한 길은, 사소한 BDD는 B와 C를 각각 1로하는 것입니다

다른 모든 경로는 0 노드로 연결됩니다 그리고 나서 다음 단계를 밟을 것입니다 분명히 out은 T1과 T2와 같습니다 T1은 BDD, T2는 BDD입니다 또는 BDD 패키지가있는 운영자입니다

우리를 위해 제공 할 것입니다 그리고 T1, T2에서 Or를 호출합니다 이것이 내가 얻는 것입니다 나갈거야, 이것과 동등하다 A, B + B, C가 될 것입니다

그리고 다시, 만약 우리가 이걸 응시하면 우리가 볼 수있는 동안, 오, 그래,이 의미가 있습니다 알다시피, 1을 얻는 방법은 A이고 B는 1, B와 C는 1입니다 당신에게 0을줍니다 그래서, 당신은 어떻게 정말로 뭔가를합니까? 복잡한? 내가 50,000 개의 논리 게이트를 주면 어떻게 될까? 나는 그것을 실제로 할 수 있었다 내가 BDD 스크립팅 패키지를 주었다면, 나는 실제로 그렇게 할 것입니다

내가 너에게 모든 논리를 주면 로직 네트워크를 나타내는 그래프를 조회 할 수 있습니다 이 BDD를 구축하기위한 적절한 순서를 결정할 수도 있습니다 각각의 내부 노드는 적절한 순서로 배치된다 그리고 And, Or Not에 대한 간단한 호출만으로 하나씩 구성 할 수 있습니다 Nand, Nor, Xor, Xnor 등

당신이 모든 단일성에 대한 BDD를 가질 때까지 게이트 레벨은 매우 복잡한 네트워크에서도 출력됩니다 그리고 당신이해야 할 유일한 결정은 당신이 무엇을 할 것인가입니다 변수 순서? 이제, 당신은 또한 다른 멋진 것들을 얻습니다 모든 실제 구현 된 BDD 패키지의 기능을 제공합니다 그것은 사물을 비교하기위한 것입니다

그래서, 가장 중요한 엔지니어링 중 하나 BDD 패키지와 같은 응용 프로그램에서 묻는 것은이 두 가지 부울입니다 함수, F와 G, 동일? 매우 자주, 그들이 대표하기 때문에 똑같은 논리의 다른 부분들, 그리고 실제로는 그들이 실제로 실제로 동일하다는 것을 알고 싶습니다 그래서, 당신이하는 일은 F에 대한 BDD를 만들고 당신은 G에 대한 BDD를 만들고, 그런 다음 포인터를 비교하면됩니다 그리고 주문 BDD가 줄어든 것을 기억합시다 정식이다

F와 G가 실제로 동일한 부울 함수와 같은 그래프입니다 그러나 우리가 공유하고 있기 때문에, 공유 BDD는 동일한 그래프 일뿐만 아니라 정확한 BDD임을 강조합니다 같은 그래프 포인터는 같은 위치를 가리 킵니다 그래서, 당신이 알다시피, 이것이 작동 할 수있는 방법은 당신이 FDD 용 BDD를 만드는 것입니다

좋아, 있네 그런 다음 G 용 BDD를 만들고 당신이 얻는 것은 똑같은 것을 가리키는 포인터입니다 너는 그것의 또 다른 사본을 얻지 않는다 이건 매우 중요합니다 너는 그것의 또 다른 사본을 얻지 않는다

당신은 그것의 다른 버전을 얻지 못합니다 같은 장소에 같은 노드가 생기는 경우 같은 그래프를 얻을 수있어, 알았지? 그래서 F에 대한 BDD를 만들고 G에 대한 BDD를 작성하고 동일한 함수이면 포인터는 다음과 같습니다 같은 말 그대로, 이것은 매우 복잡한 소리를 내며,이 두 개의 5 만 게이트 논리 네트워크가 동일하며, 알다시피, F 포인터와 G에 대한 두 개의 정수 주소 비교 포인터, 둘 다 컴퓨터 메모리의 동일한 노드를 가리키고 있습니까? 상위 변수를 나타냅니다? 그것은 꽤 놀라운 종류의 강력한 것입니다

결과 따라서 두 개의 부울 함수가 동일합니까? F를 만들면 포인터가 같으면 G를 만듭니다 그러나 그들이 동일하지 않으면 어떡하지? 그럼, 우리는 또 다른 흥미로운 우리가 할 수있는 일 우리가 너를 극복하고 나면 우리의 F와 G가 같지 않은 불행, 우리가 원하는 질문 물어 보면 그들이 내게 다른 점을 알 수 있습니까? 그리고, 당신이 생각하는 방식은 F와 그것입니다 알다시피, 많은 정보를 얻었습니다

여기 G가 있습니다 동일한 입력, 호출, 호출 x 내가 할 일은 자신을 그 출력을위한 배타 OR 게이트 그래서, 저는 새로운 함수를 만들겠습니다 그것을 H라고 부르지, 그렇지? 그리고 새로운 함수 H는 1을 만듭니다

F가 G와 일치하지 않을 때 F가 다른 경우 동일한 입력에 대해 G보다 출력, 알았지? 그래서 저는 F를위한 BDD를 만들 계획입니다 거기는 g 용 BDD를 만들 계획입니다 거기는

그들이 뭔가를 공유한다고 가정하겠습니다 그들은 똑같은 기능을해야하기 때문입니다 그런 다음 H 용 BDD를 구축 할 예정입니다 그걸 어떻게 그리는 지 정말로 모르겠지만, 그것이 무언가라고 가정 해 봅시다 정말로 크고 복잡하고, 일종의 그들을 포괄합니다

그리고 나서 H가 만족할만한 것인지 물어볼 것입니다 이것은 제가 물어볼 것을 의미합니다 H의 맨 위에서 한 노드까지의 경로가 있다면 그리고 그러한 경우에, H의 맨 위에서 1 노드로가는 모든 경로 H를 1로 만드는 변수의 값을 지정합니다 그것들은 F와 G를 하드웨어의 일부로 만들고, 출력, 0,1, 또는 1, 0이다

이들은 F가 F와 일치하지 않는 입력이다 G 너도 알다시피, 아마 그 것들을 사용할 수있을거야 왜 F가 G와 같지 않은지 알아 내야합니다 F가 같다고 생각되면 또는 F가 G와 같지 않을 수도 있습니다

그리고 당신은 그 (것)들을 다른 무엇이 알기를 원합니다 여기 당신이하는 방법입니다 그리고 다시, 당신은 F를, 당신은 G를, 당신은, 아시다시피 독점적 인 Oring의 BDD 패키지에 내장 된 작업을 호출합니다 두 개의 부울 함수 그리고 쾅, 실제로 결과를 얻었습니다

다시 매우 강력하고 BDD입니다 놀라운 일을 할 수 있습니다 놀라 울 정도로 놀랍습니다 컨텍스트의 엔지니어링 종류, 더 유용한 BDD 응용 프로그램

음담 검사를 할 수 있습니다 우리는 이미 일종의 언급했다 이 나는 전체 강의를 보냈다 Unate 재귀 패러다임 큐브 목록 tautology 정말 좋았 기 때문에 워밍업

하지만 당신은 실제로 그렇게하지 않았을 것입니다 음, 대부분 당신은 그렇게하지 않을 것입니다 아마도 BDD를 구축하기 만하면됩니다 BDD를 사용하면 모양이 사소하기 때문입니다 함수가 1과 같은 경우, 그 함수는 우리가 정식이기 때문에 일어날 수있는 유일한 방법입니다

단 하나의 표현이 있습니다 그리고 우리는 공유됩니다 모든 진리표가 동일한 진리표라고 여겨지는 여러 기능이 있다면, 그들은 모두 동일한 노드를 가리 킵니다 그래서, 그것이 1이라면, 그것은 단지 1 노드를 가리 킵니다 그래서, 와우, 그것은 훨씬 적은 일의 지옥입니다

satisfiability는 어떨까요? 그리고 언제, 언제 만족할 수있게됩니다 부울 방정식을 푸십시오 당신은 어떤 가치가 그것과 동등한 것이라고 말합니까? 글쎄, 나는 큐블리스트와 함께 그것을 어떻게 할 지 모른다 하지만 여기에서 알다시피, 뿌리에서 잎으로가는 길을 찾을 수있는 한 하나의 노드, 당신은 그것을 할 수 있습니다 그래서이 기능을 만족시키는 한 가지 방법은 예를 들어, X1은 1, X2입니다

값이 무엇인지 신경 쓰지 않습니다 X3, 나는 가치가 무엇인지 상관하지 않는다 X4는 1입니다 그래서,이 작은 BDD를 위해서, 당신도 알다시피, 그냥 작동합니다 그리고 비슷하게, 그것은 그것을 할 수있는 또 다른 패턴입니다

따라서 X1은 0, X2는 1, X3는 신경 쓰지 않고 X4는 1뿐입니다 BDD를 구축하는 한, 기본적으로 당신은 BDD를 거꾸로 갈 수 있습니다 하나의 노드라면 포인터를 두 가지 방법으로 모두 사용할 수 있습니다 그래서 이것은 단지 여기에 쓰려고하는 또 다른 것입니다 이것은 BDD 패키지에 구현 된 또 다른 연산자입니다

당신은 질문을 할 수 있습니다, 그것이 만족 스러운가? 그리고 당신은 만족스러운 가치관을 요구할 수 있습니다 그래서 이것 모두는 사실로보기 엔 너무 좋은 것 같습니다 그래서,이 시점에서, 당신이 열심히 일종의 생각이라면, 당신은 조금 있어야합니다 의심 많은 그리고 그 중 하나, 당신이해야 할 이유 조금 의심 스럽네

소년 그게 내가 거의 모든 걸 취할 수있는 것 같아 근본적으로 이론적으로 기하 급수적으로 어려운, 당신도 알다시피, 컴퓨터 과학 문제 내가 BDD를 구축 할 수 있다면 와우, 알아 내가 해결할 수있는 것 같아

어떻게 우리 모두는 여전히 직업을 가지고 있습니까? 알다시피, 어떻게 문제가 생길까요? 해결하기 위해 남았습니까? 그리고 문제가 있습니다 사실, 정말 큰 문제가 있습니다 그리고 문제는 변수가 BDD 문제를 구성하는 데 사용한 주문 그리고 중요한 것은 무엇을 의미합니까? 대답은, 만약 당신이 좋은 주문을하면 합리적인 공간에서 BDD를 만들 수 있습니다 여기 BDD가 있습니다

아주 간단한 함수입니다 A1 및 a1 + a2 및 b2 + a3 및 b3 그래서 저는 n이 3이라고 여기에서 말할 것입니다 너는 네가 좋아하는만큼 너를 알 수있게 만들 수 있기 때문이야 왼쪽에있는 BDD는 좋은 순서가 있습니다

그 순서는 a1, b1, a2, b2, a3, b3입니다 이 아주 단단한 작은 선형 체인입니다 그것은 선형 성장을 나타내며, N은 다음과 같다 말하자면 크기가 N과 같이 정렬되는 것 같습니다 일정 시간 N, 맞습니까? 그러나 오른쪽 순서는 당신은 a의 모든 것을 먼저하고, 그러면 b의 모든 것이 지수 함수 적으로 이루어집니다

크기가 BDD입니다 이 BDD의 크기는 N에게 2라는 명령을 내렸고, 그것은 매우 불행한 상황입니다 그래서,이 문제를 정말로 어렵게 만드는 문제는, 바로 그 것입니다 매우 효율적인 솔루션을 가진 많은 문제가 있습니다 BDD를 구축 할 수 있다면이 점을 강조 할 것입니다

문제는 BDD를 항상 구축 할 수 없다는 것입니다 그래서 저는 이것을 여기 저기 쓰고 있습니다 여러분이 알고있는 것은 정말 재미 있습니다 문제 알려진 몇 가지 문제 기하 급수적으로 어려운 것은 BDD에서 매우 쉽습니다

문제는 이러한 문제의 모든 사례를 해결할 수 없다는 것입니다 문제는 문제의 BDD 크기가 합리적 일부 문제는 멋진 작은 BDD, 다른 문제를 만듭니다 병적 인 대형 BDD를 만드십시오 그리고 보편적 인 해결책은 없습니다

나는 그것을 강조 할 것입니다 보편적 인 해결책은 없습니다 항상 기하 급수적으로 어려운 문제를 쉽게 해결하고 우리는 모두 직업에서 벗어납니다 사람들이 어떻게이 일을 처리합니까? 음, 거기에 많은 작업이 있습니다 변수 순서 지정 휴리스틱 스

당신은 주문하는 방법을 어떻게 생각합니까? 합리적인 문제에 대한 좋은 BDD 거기에 많은 연구가 있습니다 특성화가 있습니다 어떤 문제가 발생하지 않았는지 알아야합니다 멋진 BDD이므로 시도하지 마십시오

몇 가지 예를 드리겠습니다 승수는 그 중 하나입니다 추가 기능은 훌륭하고 승수는 무서운 동적 인 주문 기술도 있습니다 동적 순서 지정 기술을 사용하면 BDD 소프트웨어 패키지가 자체적으로 주문을 선택할 수 있습니다

스크립트가 실행될 때 동적으로 조정하여 최상의 결과를 얻으십시오 주문 그것은 실제로 꽤 흥미 롭습니다 우리는 그것에 대해 말할 시간이 없지만, 사실 그것은 사람들은 오늘 실제로 연습합니다 너 한테 약간의 직감을 줄거야

BDD 주문에 관해서 엄지 손가락의 규칙이 있습니다 그래서 저는 같은 기능을 다시 나타냅니다, a1, b1 plus a2, b2 plus a3, b3 여기에는 선형 순서 BDD가 있습니다 왼쪽에는 선형 크기 BDD가 있고 기하 급수적 인 크기의 무슨 일 이니? 자, 엄지 손가락의 규칙을 읽으십시오

관련 입력은 서로 가까이 있어야합니다 순서 입력을 결정하는 입력 그룹 기능 자체는 모두 하나가되어야하고 서로 가깝고 두 개는 상단 근처에 있어야합니다 BDD의 이것은, 휴리스틱 스입니다 이것은 당신이 아닙니다

알고, 완벽한 해결책 하지만 왼쪽에서 관찰 해 보겠습니다 알다시피, a1, ai 쌍은 모두 순서대로 서로 옆에 있습니다 알다시피,이 함수에서 내가 여기에 ai와 bi를 보여줄 것이기 때문에, 맞습니까? 함수의 값을 함께 결정할 수 있습니다 그래서, ai를 가짐으로써, bi 쌍은 당신이 AI를 얻을 때마다 서로 가깝게, bi 한 쌍, 알다시피, 너, 너는 ai를 선택하고, a2 값을 말한 다음, 너는 b2 값을 선택하십시오

글쎄, 당신은 실제로 당신이 할 수 있는지, a2와 b2가 0이면 a1을 만듭니다 그리고 그렇지 않다면 a와 b에 관해 더 이상 알 필요가 없습니다 정렬 할 수 있습니다 순서대로 여러 가지를 보여줄 수는 없습니다 그냥 계속 나아갈 수 있습니다

너는 알다시피, 오른쪽에있는 것을 보아라 손 쪽 솔직히 말해서 기본적으로 기본적으로 당신이 할 수있는 최악의 순서 이것은 단지 끔찍한 일입니다 그리고 이것에 대해 잠깐 보게되면, 이걸 얻게됩니다, 이런, 이런 종류의 재미있는 작은 집 그림 여기

이 사람은 모든 것을 먼저 가지고 있고 모든 b 그것은 끔찍한 일입니다 그 이유는 AI의 값을 결정할 수있는 BI 쌍이 필요하기 때문입니다 함수 그 말은 네가 나에게 모든 것을 주면 아이의 첫 번째, 나는 그들 모두를 기억해야한다

그래서 다이어그램의 첫 번째 단계는 a1, 나는 함수의 가치에 관해 당신에게 아무 것도 말할 수 없습니다 따라서 다이어그램의 다음 단계에는 두 개의 a2가 있으며 모든 것을 기억해야합니다 함수의 가치에 대해서는 말할 수 없기 때문입니다 BDD의 수준이 너무 낮 으면 네가 대답 할 수 없기 때문에 네 개의 a3이 있습니다 함수의 값에 대해

내가 40 a와 40 b를 가졌다면 2 이 계급의 40 가지 나는 아직 b가 없기 때문에 나는 말할 수 없다 당신에게 함수의 가치 그리고 제가 소개 할 때까지는 아닙니다 BDD에 실제로 결정을 내리고 그 결정의 가치를 말할 수 있습니다 기능

따라서 입력을 결정할 수있는 입력 그룹 그 기능 자체는 서로 가깝게 있어야하며 넓게 분리되어 있지 않아야합니다 왜냐하면 당신이 그것들을 널리 분리 시키면 BDD가 커질 것이기 때문입니다 그냥 넓어졌습니다 네가 가지고 있기 때문에 중간에 지방이된다 해당 BDD의 가능한 모든 값을 기억합니다

BDD가 가능한 모든 가치를 기억하는 방식은 노드와 많은 가장자리 그리고 그것은 모두를 불행하게 만듭니다 그래서 관련 입력은 서로 가까이 있어야합니다 기능을 스스로 결정할 수있는 입력 그룹은 가까이 있어야합니다 서로

그리고 최대한 멀리 할 수 ​​있습니다 BDD 상단으로 올라간다 항상 그럴 수는 없지만 그게 기본입니다 경험적 방법 그것은 아는 것이 중요합니다

알다시피, BDD의 경우 작동하며 BDD의 경우 작동하지 않는 작동은 다음과 같습니다 따라서 산술적 인 흐름이 정말로 중요합니다 사람들이 데이터를 만듭니다 항상 경로 BDD는 어떻게되어 있습니까? 기본 체인을 가진 회로는 선형 크기로 축소 된 순서를가집니다

BDD, 가산기, 감산기, 비교기 등이 있습니다 우선 순위 인코더에서 b보다 큼 그것들은 당신이 알고 있습니다 심장에는 운반 체인이 있고 선형 크기의 BDD가 있습니다 그리고 규칙은 항상 캐리 체인에 대한 BBD 순서로 변수를 대체한다는 것입니다 회로

그래서, 당신이 아무것도 기억하지 못한다면 주문하는 법에 관해서는 이걸 기억해, 그렇지? A0, b0, a1, b1, a2, b2 일반적으로 낮은 주문 입찰가가 무엇이든 종류의 순서가 있습니다 첫 번째로 가장 적은 작업으로 계산할 수있는 것이 무엇이든간에 주문 그리고 언제나, 항상 항상 변합니다 절대로 절대 절대로 모든 것을 수행하지 말고 모든 것을하십시오

따라서 모든 산술 회로가 쉽고 모두 가능하면 멋질 것입니다 유감스럽게도 틀린 것입니다 또한 최상의 순서는 선형입니다 그것은 우리를 행복하게합니다 최악의 순서는 기하 급수적입니다

그렇게 좋았어 나쁘다 선형 정렬은 a와 b를 번갈아 사용합니다 기하 급수적 인 순서는하지 마라 곱셈, 오, 그건 아주 불행한 사람

두 가지를 곱하십시오 항상 지수 적 BBD입니다 그것은 정말로 나쁜 것입니다 다른 데이터 구조가 필요하며 실제로 존재합니다 그들은 다른 종류의 정식 양식을 가진 다른 종류의 결정 다이어그램입니다

승수와 같은 것을 나타낼 수 있습니다 우리는 그들에 대해 말할 시간이 없지만 그들은 실제로 존재합니다 따라서 바이너리를 사용한 일반적인 경험 결정 다이어그램은 많은 작업이 BDD 크기의 합리적인 순서로 정렬되어 있으며, 감소 된 차수의 BDD 크기 알고리즘은 실용적입니다 알다시피, 1 억 노드는 정말로 큰 메모리 양을 알고 있습니다

그리고 사람들은 작동하는 순서를 찾는 데 많은 노력을 기울입니다 그것은 BDD의 유일한 단점입니다 그래서 여기 있습니다 우리는 우리의 마지막 단계에 있습니다 중요한 데이터 구조, 감소, 정렬, 이진 결정 다이어그램, ROBDD 또는 요즘 모두 BDD라고 부르는 요즘

그것들은 표준 형태입니다 부울을위한 데이터 구조입니다 기능 두 개의 부울 함수는 BDD가 동일한 경우에만 가능합니다 불리언 함수는 단지 포인터 일뿐입니다

BDD 그래프의 루트 노드 공유 BDD의 모든 노드는 일부를 나타냅니다 우리는 그 공유를 매우 지능적으로 사용할 수 있습니다 공유 BDD에서 함수 F가 함수 G와 똑같은지 테스트 할 수 있습니다 그들의 포인터가 평등한지 점검함으로써 실제로 루트 노드를 가리 킵니까? 정말 멋지다

오늘 일반의 많은 부분을위한 기초 부울 것들에 대한 조작 Bdd는 매우 광범위하게 사용되고 있습니다 CAD 업계에서, 그리고 실제로 많은 다른 응용 프로그램에서 문제는 가변 주문이 중요하다는 것입니다 그것은 BDD의 백만 노드를 필요로하는 것과, 아시다시피, BDD의 100 노드에 2 개, 그리고 때때로 BDD가 너무 크고 그냥 그것을 만들 수 없습니다 우리를 다른 모든 계급으로 인도합니다

표현 및 알고리즘 아시다시피 놀랍습니다 그러나 때로는 SAT라고 불리는 것을 알고 싶어합니다 때로는 부울 함수를 작성하여 표시 할 내용을 묻는 경우도 있습니다 더 간단한 질문이지만,이 부울 함수를 만족시키고 그것을 만들 수있는 방법이 있습니까? 1? 그렇다면, 제게 가치를주십시오

그 일을하는 변수? 그리고 이것을 만족시킬 수 없다면 부울 함수, 나를 위해 그것을 증명하십시오 그리고 그 정보를 반환하십시오 아니요,이 부울 함수를 만족시킬 수 없습니다 얼마나 많은 실용적인 것들이 다른 형태로 만들어 질 수 있는지는 놀랍습니다 이는 우리를 대표하는 계획에 관한 다음 강의 시리즈로 인도 할 것입니다

부울 만족을위한 해법

VLSI CAD: Logic to Layout Lecture 012 SAT Part 1

[음악] 그래서 강의 4에서 우리는 우리의 탐구를 완료 할 것입니다 전산 부울 대수 (boolean algebra)를 사용하여 다른 훌륭한 클래스를 보여줄 것입니다

부울 객체를 데이터 구조 및 연산자로 다루는 메소드 지난 강연에서 우리는 바이너리 결정 다이어그램을 매우 강력한 것으로 보여주었습니다 정말 훌륭하고 유용한 작업 세트를 지원하는 데이터 구조 BDD에 대해 흥미로운 점은 부울 함수 대단하네요

하지만 많이 있습니다 내가 정말로 알아야 할 모든 엔지니어링 예제는 부울 함수를 만든다 1 출력이나 그럴 방법이 없다 부울 함수를 1로 만들고 그 놀라운 것은 그 것만으로 충분합니다

그러나 많은 엔지니어링 시나리오에서이 강좌에서 볼 수 있습니다 그건 사실이야 그리고이 강의에서, 강의 41에서, boolean이라고 불리는이 새로운 클래스의 메소드를 소개 할 것입니다 또는 만족성에 SAT가 많이 있기 때문에

짧게 BDD와 같은 짧은 토 그래서 우리는 SAT에 대해 이야기 할 것입니다 우리는이 소개 강의에서 이야기하려고합니다 우리가 효율적으로 SAT를 할 수 있도록하는 결합 표준 형태 그래서 몇 가지 용어로 시작하겠습니다

부울 (boolean)이라고 불리는 것을보고 있습니다 satisfiability 및 satisfiability 많은 음절이 있기 때문에, 그것은 정말 한입 거의 모두가 그것을 토, 토라고 부릅니다 짧은 그리고 이것은 정말로 당신이 원한다면, 부울 대수의 물리학

방정식을 쓰고 싶습니다 그것을 해결하십시오 그리고 그것을 해결하는 것이 무엇을 의미합니까? 그것은 저에게 함수의 표현을 일종의 제게 알려줄 것입니다 변수 x1 ~ xn의 함수 그리고 우리는 변수가 0과 1이되도록 변수를 할당하면 기능 1

그리고 그것이 정말로 의미하는 것입니다 부울 함수는 1을 만들면 만족됩니다 이제이 할당은 고유하지 않을 수도 있습니다 제비 뽑기와 제비 뽑기가있을 수 있었다 만족스러운 솔루션

우리가 할 수만 있다면 행복하게 될 것입니다 그들 중 하나를 찾으십시오 그러나 만족스러운 과제가 없다면 전혀, 우리는 우리의 기술이 그것을 증명할 것으로 기대합니다 즉, 결론적으로이 부울 함수를 1로 만드는 방법은 없습니다 그것을 만족시키고 그 정보를 우리에게 돌려 줄 수있는 방법이 없습니다

이제 BDD로 할 수있는 일이 많다는 것을 알게되었습니다 근본적으로 전체의 구조를 표현하기에 좋다 부울 함수 하지만 가장 효율적이지는 않습니다 기술, 당신이 원한다면 그것을 만족시켜야합니다

그래서 당신이 단지 그것을 풀기를 원한다면 그것이 가능할지를 결정해야합니다 1 개 또는 2 개를 만들지 만, satisfiability 기술은 더 쉽고, 더 빠르며, 문제의 더 큰 경우 그래서 정말 좋은 솔루션입니다 사물을 해결하기 위해 그래서 SAT는 여러분이 단지 만족스러운 과제를 찾거나 하나가 없다는 것을 증명하고 싶습니다

그래서, 그 예가 무엇입니까? 오, 그 중 하나를 보여 줬어 이것은 초기 계산 부울 대수에 대한 네트워크 복구 예제입니다 강의 그래서, 여러분이 어떤 것을 가질 수 있다고 가정 해보십시오 알려진 좋은 버전의 논리

부울 방정식을 옳은 일과 게이트 수준의 구현은 효과가 없습니다 저 그림이 상단에 있습니다 그리고 우리는 당신에게 이것을 매우 흥미롭게 보았습니다 용의자 논리 게이트를이 경우 4 대 1로 대체 할 수있는 아이디어 멀티플렉서가 2 입력 게이트 인 경우 우리는 d0 또는 d3을 넣지 않았습니다 그리고 우리가 말했지, 알았어

의심스러운 논리 네트워크를 가져 와서 게이트를 꺼내 의심스럽고 4 : 1 멀티플렉서로 바꾸고, 더 큰 기능을 만드십시오 이 새로운 변수는 그것과 관련이 있습니다 그것을 노어 게이트를 통해 넣으십시오 평등 게이트입니다

이 두 블록이 논리는 1을 만들고 있습니다 그리고이 새로운 기능을 원래 입력의 함수 및 멀티플렉서를 지정하는 새로운 변수 그리고 나서,이 불리언 함수가 모든 시간에 하나가되기를 바랍니다 가능한 입력 값 그리고 보편적으로 정량화하십시오 우리는이 기능을 만들었습니다

우리가 말한 것은 당신이 그것을 해결할 수 있다면, 그것은 말하자면 1과 같게 만들 수 있다면 부울 네트워크에 영향을 미칠 수 있습니다 수리 그래서 여기에 그것은 하나의 예가 있습니다 이 중 단지 시나리오의 종류를 해결하고 싶습니다 모든 abz에 대한 정량화 함수를 만들 수 있다고 가정하면, D 값을 얻기위한 SAT 지정? 그렇다면 네트워크를 복구 할 수 있습니다

반대로, SAT 솔버가 돌아와서 이봐 요 이 정량화 된 부울 표현식을 해결할 방법이 없습니다 네트워크 복구가 불가능합니다 여기에 아주 좋은 콘크리트가 있습니다 부울 방정식을 푸는 엔지니어링 지향 시나리오 내가 뭘하고 싶은지

글쎄요, 이것들에 대한 용어가 있습니다 흥미롭게도 이러한 것들을위한 표준 형식이 있습니다 A,이 솔루션을 추구하는 가장 편리한 형태 이것은 conjunctive normal form CNF라고 불리는 것입니다 그리고 놀라운 점은 당신이 이것을 알고 있다는 것입니다, 당신은 그 이름을 모른다는 것입니다

이것은 합계 형태의 산물입니다 각 개별 용어는 괄호는 참 또는 칭찬 형태의 변수이거나 또는 우리와 모두 함께 이제 네가 뭘 생각하는지 알 겠어 와우, 너 내가 대학 시절에 배웠을 때 배운 것 같아 학습 디지털 디자인

하지만, 대부분 기억 나는 대부분 I 제품 형태의 합계를 기억하십시오 알다시피, 나는 카르노 (Karnaugh)지도를 만들 거니까 나는 1을 동그라미로 표시하고 제품처럼 보이는이 친숙한 용어를 얻을 수 있습니다 그들 사이에 더하기 기호가 있습니다 그리고 나는 그들이 나를 배우게 만들었다 고 생각합니다

0을 원으로 그리는 방법, 그리고 함수를 나타낼 수도 있습니다 하지만 나는 0을 대변하고 있었고, 나는 반전해야했기 때문에 매우 복잡했습니다 모든 변수와 나는 방금 그것을 잊었다 고 생각했습니다 죄송합니다 여기 있습니다

돌아왔다 합계의 제품을 배울 이유가 있습니다 형태 그리고 솔직히, 제품을 배우는 이유 왜냐하면 그것은 합당성에 대한 올바른 표현이기 때문입니다 그러면 괄호 안에있는이 용어들은 각각 무엇이라고 불 립니까? 그리고 대답은 절이라고 지칭됩니다

좋아요, 그래서이 각각 괄호 안에있는 것을 절이라고합니다 그리고 절 중 하나에 나타나는 변수를 살펴보면 사실입니다 형태가 아니기 때문에 보완되지 않는 것은 긍정적 인 문자라고합니다 그리고 여러분이 그러한 변수들 중 하나를 보았을 때 그것이 보완되면, 그것은 음수 리터럴 이제 여기서 주목할 사항 중 하나는 이, 각도 굴곡 기호 이런 종류

이것은 아닙니다 권리? 그래서 이것은 c bar 또는 c라고 말하는 것과 같습니다 초기 이것은 수학 논리의 종류입니다 부정에 대한 표기법

그리고이 재료는 50 년 전 우주의 수학 논리 측면 문학은 이와 같은 것들로 가득 차 있습니다 그래서 저는 여러분을 그렇게 유지할 것입니다 여러분은 그것이 어떻게 생겼는지에 대해 약간의 감각을 가지고 있습니다 왜 CNF가 유용합니까? 이봐 요, 만약 당신이 절은 0으로 평가하여 전체 수식이 0인지 여부를 확인합니다

이봐, 그들은 모두 그 안에있어 너는 1을 만들고 싶다 0 일때는 더 좋았습니다 만족스럽지는 않지만 물론 만족시키고 싶다면 모든 조항을 동일하게 만드십시오 1, 알다시피, 그것은 아마도 어려운 부분 일 것입니다 그래서 CNF 형식은 합계 형식의 표준 제품입니다

실제로 보았던 것입니다 전에 한 가지 더 많은 용어 및 할당 할당은 일부 사용자에게는 값을 제공하지만 그렇지 않은 사용자에게는 값을 제공합니다 반드시 모든 변수가 필요합니다

그리고 다른 용어는 꽤 똑바르다 앞으로 바로 여기 과제를 완료하고 모든 학생들에게 가치를 할당합니다 변수, 부분 할당은 일부 변수에 값을 할당합니다 그리고 과제는 조항 및 조항의 상태를 평가할 수 있음을 의미합니다

무심한 종류의 상태 일 수 있습니다 따라서 임의적 인 결정 만 내릴 수 있습니다 A는 0, b는 1이지만 c와 d는 지정되지 않습니다 그리고 몇 가지 질문을하고 조금만 보아라 전문 용어의 따라서, a가 0이고 b가 1이면, 첫 번째 절 a plus b가 0이 될 것입니다

또한 0으로 변하고이 전체 절은 0으로 평가되고 이 용어는이 절이 상충된다는 것입니다 왜 상충됩니까? 우리의 만족 목표와 충돌합니다 boolean 방정식 우리는 일종의, 우리가 할 수있는 일종의 희망입니다 이 phi 함수를 a1로 만드는 방법을 찾으십시오

절이 0으로 평가되면 그 목표와 충돌하고 우리는 그것이 상충된다고 말합니다 자, 다음 조항은 어떨까요? 플러스 b가 아니라 플러스 c 음, a가 1로 바뀔 것입니다 그리고 b는 0이 될 것입니다 그리고 더 이상 알 필요가 없습니다

이 절은 실제로 1입니다 그리고이 조항은 만족 스럽습니다 큰 놀라움은 없습니다 이 절은 1이므로 만족합니다 다음 절인 플러스 C 플러스는 어떨까요? 디? 글쎄, a는 0이고 나는 모른다

아무것도 더 우리가 솔직히 말해서 절이 해결되지 않았다는 것입니다 나는 그것이 가는지 알기에 충분하지 않다 0이되고 갈등이되고 나는 그것을 1로 만들고 그것을 말하기에 충분하지 않습니다 만족

그래서 나는 모른다 해결되지 않았다 마지막 하나는 a가 1이 아니고 b는 0이 아니며이 값은 0이 될 것입니다 절도 만족합니다 그래서, 그것들은 우리가 할 수있는 것들입니다

부울 (boolean) 방정식을 만족시키는 우리의 목표와 상충되는 부분에 대해 말하면, 만족 스럽습니다 1이나 이봐, 잘 모르겠다 해결되지 않았다 이런 것들을 어떻게 해결합니까? 음, 재귀 적으로 바라기를 당신은이 시점에서 놀랄만하지 않습니다

이것은 VLSI CAD 우주에서 반복해서 볼 수있는 패턴이 될 것입니다 정말 거대한 복잡한 문제가있어 해결 방법을 모릅니다 그것, 어쩌면 당신은 모든 조각에 작은 조각으로 그것을 나눌 수 있고 다시 함께 대답한다 그래서 저는 약간의 방법을 보여 드리겠습니다 재귀는 다음 슬라이드에서 작동합니다

그러나 재귀에는 두 가지 큰 아이디어가 있습니다 첫번째 결정은 결정이고 어떤 결정 수단이 보이는가, 때때로, 당신은 단지 변수를 선택하고 값을 지정하십시오 일종의 일이지만 목표는 변수에 값을 할당하면 CNF 수식을 단순화 할 수 있습니다 어쩌면 당신은 뭔가를 배울 수있을 것입니다 아마 그것은 만족 스럽습니다

어쩌면 충돌 일 수 있으며 나쁜 생각이고 실행을 취소해야합니다 기본 아이디어는 당신이 무언가를 임의로 결정한 다음 CNF 형식이 어떻게 단순화되는지, 그리고 여러분이 알 수 있든 없든 그것을 해결할 수 있는지에 대한 정보를 제공합니다 솔직히 더 관심있는 부분은 공제 부분입니다 그리고 공제에서, 당신은 새로 단순화 된 절을보고 계속해서 반복적으로 단순화하십시오 조항의 구조에 따라 귀하는 다른 값들이 다른 변수들에 할당되어야한다고 추론 할 수있다

그리고 이것은 부울의 만족스러운 부분의 멋진 부분입니다 임의로 몇 가지 변수 만 결정한 경우에도 다른 변수는 특정 값을 가져야 할 수도 있습니다 그렇지 않으면, 만족은 불가능합니다 그리고 그것은 정말로 가슴으로 밝혀졌습니다 부울 만족 성의 그래서 아무것도 할 때까지이 일을 계속합니다

단순화 한 다음 만족시킬 수 있습니다 그리고 그렇지 않다면 다시 돌아와 결정해야합니다 계속, 당신은 이것을 계속 추구합니다 이게 뭐야? 글쎄, 여기 결정 부분은 부울 방정식입니다 X 플러스 y 플러스 z 플러스 x 플러스 y

y 플러스 z가 아니라 x 플러스 y 플러스 z 없습니다 여기서 몇 가지 진전을 시도하겠습니다 그래서 우리는 x가 1이라고 결정할 것입니다 그럼 왼쪽 상자에서 저는 첫 번째 절에 대해 하나를 얻습니다 두 번째 절

세 번째 절에는 y와 z가 없습니다 y가 아니라 z가 아닙니다 그리고 그것은 나에게 여전히 복잡하다 아무것도 그래서 왜 그것의 1과 무슨 일이 일어나는 지 알기 만하면 나는 조금은 알고있다

복잡도 1 z, z 막대 이제이 시점에서 생각하고있을 것입니다 이봐, 우리는 일주일 내내 이진에 대해 배우는 것만 큼 많이하지 않았다 의사 결정도? 알다시피, 그것은 z와 같지 않습니다 z-bar는 정말 복잡한 기능, 나는 그것을 대표 할 수 없었습니다

a 0? 그리고 대답은 잘 알고 있습니다 예, 개념적으로 그렇습니다 그러나 실제로는 아니오, 왜냐하면 우리가 해결하려고하는 부울적 인 SAT 수식은 너무 거대합니다 이 검색 노드마다 BDD를 작성할 시간이 없어도됩니다 실제로 매우 다른 매우 가벼운 기술을 사용해야합니다

가서 질문하고 대답하십시오 우리를 위해서, 당신은 아직도 이것에 대답 할 수 없습니다 문제 이게 1인가요? 예 혹은 아니오 아니, 대답 할 수 없어

그래서 저는 더 멀리 가서 z를 0으로 지정해야합니다 그러면 여러분도 알 수 있습니다 그러면 저는 할 수 있습니다 실제로이 일이 만족스럽지 못하다고 말합니다 그래서 저는 다시 돌아가서 z를 다른 값으로 만들어 보겠습니다

그리고 여전히 만족스럽지 않다는 것을 알게 될 것입니다 다시 돌아가서 y를 1로 바꾸고 y를 0으로 만들면 다시 발견하십시오, 만족스럽지 않습니다 다시 돌아가 x가 1과 같은 결정을 취소합니다 결정 x는 0과 같아요 오, 이런, 복잡해

거기에서 아무 것도 할 수 없으므로 z를 1로 설정하기로 결정할 것입니다 그것을 만족시켰다 그래서 나는 끝났어 그리고 나머지 트리를 검색 할 필요가 없다는 것을 알게 될 것입니다 불린 satisfiability는 이것 같이 작동한다

나에게 만족스러운 임무를 찾아라 일단 찾으면 나에게 줘 나는 행복한 사람이다 만족할만한 과제가 없다면 실제로 검색해야합니다 영리한 방법으로 모든 것이 끝나고 해결책으로 돌아갑니다

미안하지만, 너는 이것을 만족시킬 수 없다 그래서, 아시다시피, 큰 질문은, 어떻게할까요? 당신은 많은 변수들을 알고 있기 때문에 당신은 이것을 빨리합니다 많은 일과 많은 일이 될 것입니다 그러니 다음에 조금 이야기하게하십시오 우리가 이것을 어떻게 풀어 냈는지 그리고 그런 종류의 것을 배우는 강의 알고리즘 적으로 흥미로운 부울 만족의 핵심

이것이 우리가 다음 강연에서 할 일입니다

Autocad:Implementing scales in drawings (e g 1:200)

안녕 얘야, 오늘 우리는 비늘과 오토 캐드에 대해 이야기 할 것이고, 우리는 AutoCAD에서 저울을 구현하는 간단한 방법 그래서, 저는 AutoCAD Civil 3D 2008을 사용합니다

오래된 계획, 구식 디자인, 그리고이 디자인에 저울을 구현하고 싶습니다 1 : 200이다 그럼, 어떻게해야합니까? "레이아웃"으로 이동 여기에있는 내용은 삭제합니다 그리고 지금 "파일", "페이지 설정 관리자"로 이동합니다 새 페이지 설정 관리자를 만듭니다 이름은 1 ~ 200, 나는 OK를 누른다 여기에 플로터의 이름으로, 나는 플로터를 넣었다

이름은 "종이 크기"에 넣을 수있는 최대의 수는 "ISO 확장 0" 언 클릭하면 여기에 클릭하면 "종이에 맞게" 그리고 규모에서는 밀리미터로합니다

나는 넣는다 1 밀리미터, 제로 포인트 제로 1을 "단위"로 나타냅니다 나는 OK를 누른다 나는 그것을 "현재로 설정"한다 중요한

그리고 나는 닫는다 레이아웃에 아무 것도없는 것을 보면 알 수 있습니다 새로운 "뷰포트"를 만들어야합니다

새로운 뷰포트는 어떻게 만듭니 까? 명령 "mview"로 나 언론을 입력 하나의 가장자리를 다른 양식을 형성 나는 사각형을 엽니 다 그리고 여기 내 레이아웃입니다

그래서 어떻게 이제 1 : 200의 눈금을 설정합니까? 뷰포트의 가장자리에서 여기를 눌러 지금 저는 등록 정보 탭의 "pr"이 나오면 1에서 200까지는 영점 0입니다 다섯 번째

이제 "커스텀 스케일"에서 나는 0005를 쓰고 이제는 나의 스케일

(나는 디자인의 바깥 쪽), 이제 저울이 준비되었습니다 0005는 1 : 200을 의미합니다

지금 나는 음모를 꾸미기를 계속합니다 "음모"그리고 우리는 매우 음모를 꾸미기 위해 아주 고마워요 많은

VLSI CAD: Logic to Layout Lecture 013 Sat Part 2

[음악] 그래서 여기 우리는 강의 42에 있습니다

우리는 계속 작업 할 것입니다 전산 부울 대수 (boolean algebra)에 대한 논의를 계속할 것입니다 부울 적합성 또는 SAT 마지막 강의에서는 Conjunctive Normal Form, CNF로 표현 체계 그리고 이제 우리는 어떻게 실제로 하나의 조항으로 시작할 것인가를 보여줄 것입니다

CNF 양식을 작성하고 만족 스러운지 여부에 대한 질문에 대답하십시오 그리고 우리는 놀라지 않을 것입니다 그것은 재귀적인 계산의 또 다른 종류입니다 그러나 더 중요한 것은, 매우 강력하고 중요한 반복적 인 좀 더 많거나 적다면, 특정 변수가 가지고 있다고 가정 해 봅시다 가치, 그리고 무슨 일이 일어나는 지 보자

부울 수식이있는 경우 많은 변수와 많은 변수, 많은 변수, 많은 변수가 있습니다 이 간단한 절차로 수행 된 작업 그리고 이것을 부울 제약이라고합니다 전파 또는 BCP 그리고 우리가 다음에 이야기 할 내용은 BCP가 어떻게 작동하는지

그래서 마지막 강연에서 우리는 부울 satisfiability 두 가지 큰 부분을했다 결정을 내 렸습니다 변수에 어떤 값을 임의로 설정하기는 어렵습니다 그리고 우리는 CNF 양식을 간소화하고 어떤 일이 일어나는지 봅니다 우리는 그것을 만족시킬 수 있습니까? 아니면 우리가 갈등합니까? 문제는 그것이 지금까지만 갈 것이라는 것입니다

일부 변수는 값을 가지므로 그 값을 추론 할 수 있습니다 다른 변수에는 값이 있어야합니다 그리고 그것은 정말로, 정말로 정말 큰 부울 함수에 대한 CNF의 큰 인스턴스, 거대한 가능한이 공제액 사실, 이것은 실제로 모든 부울의 만족성에 깊은 일이 일어납니다 그리고 이것은 물건이 이름을 가지고 있다는 것을 의미합니다

부울 제약이라고 불립니다 번식 그래서 주어진 고정 변수 집합 과제, 다른 과제에 대해 당신이 추론 할 수있는 다른 것 변수? 글쎄, 당신은 전파함으로써 그것을 할 수있다 제약 조건 이제는 매우 유명한 전략이 있습니다

이것은 Unit Clause Rule이라고 부르며, 이것은 50 세와 같습니다 하나의 할당되지 않은 리터럴이 정확히 있다면 절이 단위라고합니다 그래서 단위 절은 여러분이 그것을 만족시킬 수있는 한 가지 방법을 가지고 있습니다 즉, 1 절의 극성을 선택해야합니다 당신은 선택의 여지가 없습니다, 당신은 임의로 그 극성을 선택하지 않아도됩니다

문자 그대로 그 선택을 암시라고합니다 그래서 여기에 약간의 부울 함수 phi, a plus c, b plus c, a plus a not b plus 우리가 이러한 선택을하기로 결정했다고 가정합시다 그래서 a는 1이고 b는 1입니다 그래서 우리는 무엇을 압니까? 첫 번째 절에서 a는 1이므로 해당 절이 충족됩니다 나는 그것에 대해 걱정하지 않을 수 있습니다

그리고 두 번째 절에서 b는 1입니다 그 조항은 만족스럽고, 그것에 대해 걱정하지 않을 수 있습니다 그러나 세 번째 절에서 a는 0이됩니다 b 항은 0이됩니다 무슨 일이 일어난? 이 조항은 단위가되었습니다

정확히 하나의 할당되지 않은 리터럴이 있기 때문에 단위입니다이 경우에는 C 바 그래서 내가 아는 것은, 나는 c가 반드시 있어야한다는 것을 안다 0이어야합니다 왜냐하면 유일한 방법은 이 절을 만족시킬 수있는 것은 c가 0 인 경우입니다

그리고 그 절은 1이됩니다 만약 내가 정말로이 불리언을 만족 시키길 원한다면 나는 a와 b에 대한 결정 때문에, 나는 추론했다 그 의미에 의해, c는 0이되어야합니다 그것은 거대한 CNF에서 실제 산업 회로라면 이러한 단위 절을 엄청나게 추론 할 수 있습니다 당신은 수천 개의 변수 값을 추론 할 수 있습니다

모든 실제 SAT 엔진에서 진행됩니다 일종의 방법을 살펴 보겠습니다 일할 수도 있습니다 그래서 여기에 약간의 예가 있습니다 이것은 내 친구들 John이 체크 아웃 할만한 가치가있는이 논문의 한 예입니다

마르케스 실바와 카렌 사 칼라 둘 다 대학에 있었을 때 완료 미시간 Marques는 현재 Dublin에 있습니다 그래서, phi, 내 작은 부울 함수는 9 개의 절이 있습니다 오메가 1, 오메가 2, 3, 4, 5, 6, 7, 8, 9

9 절 그리고 오메가 1, 아니 x1 플러스 x2 오메가 2, 아니 x1 플러스 x3 플러스 x9 오메가 3, x2 플러스 x3 플러스 x4, 오메가 4, x4 플러스 x5 플러스 x10, 오메가 5 아니 x4 플러스 x6 플러스 x11, 오메가 6, x5 플러스 x6, 오메가 7, x1 플러스 x7 플러스 x12, 오메가 8, x1 + x8 오메가 9 x7 플러스 x8 플러스 x13 아니

이런 이러한 것들이 만족 스러운가? 그리고 그것이 힘든 일이라면 상상해보십시오 13 개의 변수가있는 함수에 대해 13 개의 변수가 무엇인지 상상해보십시오 이것이 우리가 알고리즘과 질문에 대한 전산 접근법을 필요로하는 이유입니다 이러한 문제를 해결합니다

그럼 어떻게 시작하니? 우선, 다소 임의적으로 부분 할당 x9, 10, 11을 수행해 봅시다 x12 및 13은 여기에 표시된 부호있는 값이고 x9, 10, 11은 0, x12 및 1은 13입니다 우리는 함수의 절을 살펴볼 것입니다 이러한 값을 삽입하여 단순화하십시오 그래서 여기에 우리가 간다

9, 10, 11, 12, 13 값을 삽입했습니다 그래, 무슨 일이 일어나고 대답은 그다지 발생하지 않는다 나는이 조항들 중 어느 것도 만족시킬 수 없으며,이 조항들에 분쟁이있다 기본적으로 여기에 단위 절이 없습니다 이 운동의 흥미로운 부분

나는 거의 아무것도 할 수 없다 나는 지금 무엇을 말할 수 있으며 대답은 내가 결정해야 할 것 같아 흥미로운 것이 없으므로 임의로 변수 값을 설정해야합니다 여기에서 일어났습니다 나는 당신이 정말로 모르고 있었고, 나는 그렇지 않았습니다

아무 것도 결론 지을 수 없었다 좋아, 그럼 우리가 다음에 무엇을 할거야? 변수에 값을 할당하도록 선택할 것이므로 x1을 1로 지정하십시오 그래서, 저는 다시 부울로갑니다 여기 방정식과 나는 지난 라운드의 모든 이전 과제를 가졌어 회색으로 표시되고이 값을 할당 할 것입니다 그리고, 오메가 1과 오메가 2 절에서 x1 항이 0이됩니다

그리고 오메가 7과 오메가 8 절에서 x1 항은 1이됩니다 오, 이거 좋은데 이것은 도움이됩니다 두 절, 그리고 여기에이 동그라미를 긋겠다 처음 두 절에서 절의 오메가 1에 속한 유닛 x2는 홀로 존재합니다

값없이 나는 그것이 무엇이되어야 하는지를 안다 그것은 1이되어야한다 그리고 x3에서는 오메가 2에서 유감입니다 x3은 값이없는 유일한 변수입니다

그렇지 않으면 0이고 그래서 x3은 1이되어야한다는 것을 알게됩니다 그래서, 내 단위 조항 규칙은 나에게 뭔가를 알아 낸 것 같아 X2는 1이되어야하고 x3은 1이되어야합니다 그렇지 않으면 더 이상 진전을 이루지 못합니다 마찬가지로 오메가 7에서는 x1을, 오메가 8에서는 x1을 사용해야합니다

이 두 절은 만족 스럽습니다 나는 그들에 대해 걱정하지 않을 수있다 훌륭합니다 그래서 이봐, 내가 실제로 만든 것 같은 느낌이야 진행

내 조항 중 두 개가 내 목록에서 제외되었습니다 내가 걱정해야 할 것들 오메가 7과 오메가 8 내 절 중 두 개가 단위 였기 때문에 두 개 더 내 목록에서 제외되었습니다 나는 그들에게 무슨 일이 일어나는 지 압니다

X2와 x1은 또는 x2와 x3입니다 죄송합니다 1 앞으로 나아가고 무슨 일이 일어나는 지 봅시다 그래서 여기 있습니다

나는 다시 모든 것을 회색으로 표시했다 우리가이 시점까지 얻었던 과제, 그리고 실제로 x2를 1로 설정하려고합니다 x3에서 1로 그래서, 어떻게되는지 봅시다 그리고 이것은 여러분이 알다시피, 1 절과 2 절에서 x2와 x3 각각 1이되고, 당신도 알다시피 만족 스럽습니다

그러나 오메가 3 절에서 x2와 x3은 이제 값 0을 취하고 x4는 단위 리터럴 이 절에서는 유닛에 선택 나는 무엇이 일어나야하는지 정확히 알고있다 x4, x4는 1이어야합니다 사실 변수에 몇 가지 값을 할당했다는 사실은 전체적으로 많은 것을 의미합니다

우리가 만족할만한 방향으로 나아가려면 다른 변수들도 값을 가져야한다 해결책 그리고이 거대한 산업 규모의 SAT 문제가 생기면 BCP는 계속해서 계속 켜져 있습니다 이러한 알고리즘 알고리즘의 핵심은 이러한 기술입니다 그래서 x4는 오메가 3가 단위라는 것을 발견했습니다

훌륭합니다 그것은 우리에게 뭔가를 말해줍니다 우리는 앞으로 나아갈 수 있고 우리는 단순화 할 수 있습니다 그래서, 어떻게되는지 봅시다 그래서 우리는 x4를 1과 같게하려고합니다

그리고 다시 나는 모든 것을 회색으로 표시했습니다 이전 과제 그래서 들어가서 x4를 1로 설정하면 잘됩니다 절 오메가 3가 만족되면 깜짝 조항 오메가 4는 이제 단위가 아니므로 x4는 0 X5는 노출되어 있어야합니다

가치 그리고 오메가 5 절에서 x4도 0입니다 리터럴 x6은 내가 아는 가치로 드러납니다 그래서 저는 x5와 x6을 발견했습니다 암시, 가치있다

그것들은 각각 1과 1이어야합니다 X5는 1이어야하고 x6는 1이어야합니다 좋아요, 전 진전을 이루고있는 것 같아요 나는 하나의 단위 인 조항을 밝히고있다 나는 그 조항을 만족하게하는 과제를하고 나는 다른 것을 밝힌다

단위 인 조항은 계속 유지됩니다 그것은, 와우,이 일은 그 자체를 단순화하는 것과 같습니다 그럼 그 과제를 만들어 보겠습니다 오메가 4와 오메가 5는 이제 단위 절입니다 우리는 x5와 x6이 무엇인지 알아야합니다

가자 따라서 앞으로 x5와 x6을 각각 값 1에 할당하려고합니다 그리고 어떻게되는지 봅시다 오메가 4 절에서 x5는 1입니다 오메가 4가 만족됩니다

오메가 5 절에서 x5는 1입니다 만족합니다 그리고 뭔가 나쁜 일이 일어났습니다 오메가 6 조항에서 무슨 일이 일어 났는지보십시오 x5는 0입니다

x6은 0이 아닙니다 그것은 행복하지 않다 괜찮아? 오메가 6 조항은 이제 만족스럽지 않게되었습니다 권리? 오메가 6 절은 갈등이 있습니다 특정 변수의 값을 순서대로 가지도록 한 다른 절의 포인트 그들을 만족시키기 위해서는 절의 오메가 6이 반드시 충돌해야합니다

죄송합니다 죄송합니다 이것은 이것이 작동하는 방식입니다 이것이 바로 이런 종류의 문제입니다 재귀 적

너도 행복 할 때까지 갈거야 당신이 그것을 만족시키는 과제를 찾거나 당신이 무언가가 될 때까지 불행한 일이 생겨서, 갈등이 생겼어 나는 어떤 결정을 내리기 위해 일찍 결정을 취소해야 할 것 같아 앞으로 진행 그래서 꽤 많이, 당신도 알다시피

SAT 엔진의 핵심 인 BCP가 통과를 완료하면 SAT 해결자가 있습니다 일어날 수있는 정말로 세 가지 전 SAT 시험을 모두 볼 수 있었어 내가 돌아갈 수있을 정도로 내가 일하고 있었던 조항 이 조항 중 많은 부분이 만족 스러웠습니다

또는 상황이 해결되지 않을 수 있습니다 우리는 사실 미해결 조항을 가지고있었습니다 여기서 오메가 9 조항은 해결되지 않았습니다 나는 그것이 만족 스럽거나 만족스럽지 않을지 충분히 알지 못한다 하지만 실제로 가장 큰 문제는 omega라는 것이 었습니다

6은 만족하지 못했습니다 그것은 갈등이었습니다 우리는 갈등을 발견했습니다 하나 이상의 절이 0으로 평가됩니다 너는 무엇을해야만 하는가? 결정한 사람 중 하나를 실행 취소해야합니다

변수 할당 너는 다시 길을 가야 해 임의로 변수 값을 결정한이 프로세스의 시작과 당신은 그것을 취소하고 다른 것을 시도해야합니다 이것은 정말 유명한 이름입니다 이것은 DPLL입니다

그래서 데이비스 퍼트 남 -로만 만 – 러블랜드입니다 그래서 Davis와 Putnam은 기본을 발표했다 1960 년 부울 만족을 해결하기위한 재귀 적 프레임 워크 와우, 오래 전 이었어 그리고 나서 Davis, Logemann 및 Loveland는이 똑똑한 부울 제약 전파를 발견했으며, 기본적으로 그들은 1962 년에 단위 조항 규칙 방식을 제안 했으므로 50을 약간 넘었습니다 여러 해 전에

놀랍게도, 그것은 50 년입니다 오래되었지만 여전히 현대의 모든 SAT 엔진의 마음과 정신입니다 첫 번째 논문을 기리는 의미에서 종종 데이비스 – 퍼트 남 (DP)으로 불리우거나 부정확하게, 데이비스 – 퍼트 남 -로만 만 – 러블랜드 그들 중 네 명이 실제로 한 적이 없었습니다 이 모든 것을 함께 게시하십시오

그리고 큰 아이디어는 완전한 것입니다 변수 할당에 대한 체계적인 검색, CNF 형식은 효율성을 높이기위한 유용한 형식입니다 그 중 하나가 0이기 때문에 즉시 이러한 것들을 만족시킬 수 없습니다 그리고 검색을 더 일찍 멈추게하는 단위 절이있는 BCP 더 많은 것을 반복하지 않고 배정 그래서 이것은 정말로 정말로 유명합니다

물건 그것은 매우 유명합니다 자체 Wikipedia를 가지고 있습니다 페이지, 헤이, 헤이 그래서 그것은 확실히 가치있는 체크 아웃입니다

당신이 있다면, 당신은 역사에 대해 조금 알고 싶습니다 사실 많은 이 사람들은, 그들이 60 년대 초에 그 물건을 출판하고 있다는 사실에도 불구하고, 아직 살아있다 그들은 저기에 올라가고 있지만 그들은 여전히 ​​주위에있어,에 대한 개인적인 전기를 볼 수 있습니다 재미있는 Wikipedia 이제 SAC는 엄청난 거대한 엄청난 규모를 가지고 있습니다

지난 20 년 동안 진보 그래서 DPLL은 물건이 시작되는 곳입니다 그러나 SAT는 강렬한 연구의 주제였습니다 불행히도 압축 된 시간 제약 조건을 Armook 나는 진짜로 2 주 그것을 보내지 않는다

계속되는 모든 재미있는 것들에 대해 이야기하려고합니다 하지만 정말로 네 가지 일이 있습니다 효율적인 데이터 구조가 있습니다 그 (것)들을 빨리 찾을 수있다 그래야 괜찮아

효율적인 변수 선택이 있습니다 추론을 사용하면 가능성이있는 변수를 선택할 수 있습니다 boolean 제약 조건 전달 동작을 많이 제공합니다 단편화되고 단순화되는 많은 절을 만들려고합니다 그리고 그것은 멋진 아이디어입니다

어떻게 할 수 있습니까? 음, 그렇게 할 수있는 흥미로운 발견법이 있습니다 그래서 당신은 많은 함의를 발견 할 수 있습니다 놀랍고 효율적인 BCP가 있습니다 메커니즘 그 이유는 SAT가 거의 모든 시간은 BCP 안에 있습니다

당신이 당신의 모든 시간을 찾기 때문에 단위가되는 절, 단위 인 변수를 찾는 것, 그들에게 내포 된 값을 할당 한 다음 절 데이터베이스로 돌아가서 당신이 그것을 다음에 할당해야하는 것을 알아내는 것 그리고 당신은 매우 가벼운 터치가 필요합니다 단위가 될 수없는 절을 보지 않도록해야합니다 그리고 당신은 다음과 같은 조항에 대해 가능한 한 최소한의 계산 작업을 수행해야합니다 단위로 무엇을해야할지 파악합니다

정말 멋진 데이터 구조가 있습니다 당신이 그렇게하게 만들었습니다 실제로 몇 가지가 있습니다 소위 학습 메커니즘 그들은 갈등 학습이라고 불립니다

재귀 적 탐색을 진행하면서 패턴을 찾을 수 있습니다 만족감을 유발할 수없는 변수 당신은 그것들을 배울 수 있고 그것들을 배우는 것은 당신이 실제로 그것을 창조 할 수 있다는 것입니다 이러한 변수의 구조를 캡처하는 데이터베이스의 새로운 절 그것을 데이터베이스에 다시 추가 할 수 있습니다

그래서 당신은 결코 그것을 찾으려고 노력하지 않을 것입니다 패턴을 다시 사용하면 주기적으로 반복되는 비효율을 피할 수 있습니다 1과 0 중 특정 패턴을 피해야하는 변수들의 부분 집합 매우 흥미로운 알고리즘 세트 결과는 좋은 SAT 코드이며, 그들은 거대한 문제를 일으킬 수 있습니다

거대한 문제가 뭐니? 커다란 문제는 5 만 개의 변수를 가지고 있습니다 커다란 문제는 2,500 만 개의 리터럴이 있습니다 거대한 문제에는 5 천만 개의 조항이 있습니다 왜 헤이, 내가 왜 못 만들지 궁금해 각 절에 대한 BDD가 0인지 또는 1인지 여부를 확인합니다

그렇기 때문에 아무도 5 천만 BDD를 만들고 싶어하지 않습니다 괜찮아 그것은 단지 일어나지 않는 것입니다 따라서 지난 20 년 동안 이러한 매우 차가운 효율 메커니즘의 결과 몇 년 동안 놀라운 SAT 코드가있었습니다 당신은 실제로 나가서 이런 것들을 발견 할 수 있습니다

그들 중 많은 수가 있습니다 유용한 SAT 해결사가 많이 있습니다 온라인 오픈 소스 스웨덴의 두 Niklas 출신의 많은 SAT 아주 작은 작은 최소의 솔버 코드 갖고 계신다면 개인 기계에 붙잡기가 매우 쉽습니다

우리는 MOOC에서 이것을 사용하지 않을 것입니다 우리는 당신과 함께 놀 수있는 Coursera 서버에 이것을 설치합니다 샤프 말릭 (Sharad Malik)과 프린스턴 대학교 (Princeton University)의 학생 인 채프 (Chaff) 미시간 대 (University of Michigan)의 Marques-Silva와 Sakallah에서 파악하십시오 당신이 약간의 인터넷 검색을하면, 실제로 갈 수 있습니다, 당신은 실제로 모든 것을 찾을 수 있습니다

이러한 것들 중 그리고 너도 알다시피, 이것은 아마도 당신이 그렇게하기에 흥미 롭습니다 소년, 제비 뽑기와 제비 뽑기가있다 웹상에 SAT에 대한 정보가 있습니다 나는 당신이 주변을 둘러 보도록 권합니다

읽을만한 흥미로운 정보가 많이 있습니다 그러나 이것은 SAT 내부에서 일어나는 일들에 대한 우리의 논의 일 것입니다 우리가 다음에해야 할 일은 질문을합니다 음, 엔지니어링이 있습니다 VLSI 사람들이 디자인하려고했던 우주의 모습

게이트 블록들 이제 우리는 무엇을합니까? 실제 로직 디자인처럼 보이게하려면 어떻게해야합니까? 우리에게 유용한 것을하십시오 그럼 다음에 대해 이야기하겠습니다

VLSI CAD: Logic to Layout Lecture 014 Sat For Logic

[음악] 그래서, 강의 4

3에서 우리는 전산 부울 대수학에 대한 탐험을 완료하십시오 Boolean SAT에 대한 토론 그리고 지금까지 우리가 본 것은 높은 수준, CNF 형식으로 SAT 문제를 표현하는 방법 및 부울 제약 조건 전파는 만족성에 대한 질문에 대답하는 데 도움이 될 수 있습니다 또는 불만족 하지만 당신이 아직 모르는 부분은 사실 논리 게이트의 현실적인 네트워크를 가져 와서 이것을 조금만 바꾸면됩니다

이상한 찾고 CNF 양식 그리고 실제로 내가 어떻게 포즈를 취할 것인가? 엔지니어링 관련 질문,이 두 가지 구현은 큰, 논리 게이트와 같은 복잡한 부울 기능,이 두 가지가 동일하거나, 안 그래? 무슨 일이야? 실제 상황에서 벗어나기위한 놀랍도록 간단한 기계 절차가 있음을 알 수 있습니다 게이트와 와이어가있는 논리를 CNF 형식으로 만듭니다 그래서 우리는 그것을 살펴보고 부울에 대한 토론을 완료 할 것입니다 이 강의에서 만족할만한 성질을 보여줍니다

나는 실제로 그것이 실제로 처음에는 좋다고 생각한다 조금 뒤로 물러서 라 이번 주에 우리가 실제로 한 일 때문에 물론, 이번 주 전반기에 우리는 이진 결정을했습니다 다이어그램을 작성하고, 주 후반기에는 부울 만족 성을 수행했습니다 그것들이 동일하지 않다는 것을 아는 것이 중요합니다

그들은 무료입니다 그래서 이것은 일종의 슬라이드입니다 당신도 알다시피, 그들은 정말로 평등하지 않습니다 알다시피, 그들은 아니에요 정확히 같은

그리고 두 가지를 아는 것이 중요합니다 그래서 우리는이 한 주 전체를이 중요한 두 가지 주제에 보냈습니다 그러니 Bdd는 종종 많은 문제에 대해 잘 작동하지만, SAT는 종종 많은 문제에서 잘 작동합니다 그러나 둘 다 항상 효과가 있다는 보장은 없습니다

죄송합니다 그것은 바로 사물을 해결하는 본질에 있습니다 기하 급수적으로 힘들어서 때로는 당신의 경험적 기법이 작동하지 BDD의 경우 기본적으로 우리가 할 수있는 일은 우리는 기능을 표현할 BDD를 구축 할 수 있을지도 모릅니다 그리고 SAT 측면에서 우리는 예 또는 아니오로 만족감을 해결할 수 있습니다

그 기능 그리고 그 것들은 정말로 다릅니다 소지품 괜찮아 이제는 BDD를 구축 할 수없는 경우가 있습니다

합리적인 컴퓨터 자원 그리고 일반적으로 발생하는 것은 당신이 부족합니다 메모리의 당신은 단지 기가 바이트가 충분하지 않습니다 BDD를 작성하십시오

그리고 SAT 측면에서, 때때로 당신은 할 수 없습니다 SAT 솔루션을 찾으십시오 만족스러운 과제를 찾을 수 없거나 합리적인 컴퓨터 자원으로 존재하지 않는다는 것을 증명하십시오 일반적으로 시간이 없습니다 너 알다시피, 너 그냥 방금 검색하는거야

검색 및 검색 및 검색 및 당신은 그냥 완료하지 마십시오 따라서 기억해야 할 사항 중 하나는 BDD가 실제로 빌드하는 것입니다 함수의 완전한 표현 그것은 모든 것을 나타냅니다 사실, 함수의 표준 표현입니다

이것은 실제로 BDD에 관한 멋진 것들 그러나 SAT 해결사는 전체 기능 말하자면, 그들은 그것을 대표하지 않는다 크고 풍부하고 아름다운 조작을 지원하는 방식으로 불리언에 일종의 임의의 종류의 계산적인 일을하고 싶습니다 기능

BDD로 시작하는 것이 좋습니다 당신이이 풍부한 팔레트를 가지고 있기 때문입니다 하지만, 그냥 부울 함수를 풀고 싶다면 말하자면, 할 수 있을까요? 0? 예 또는 아니오, 사용하고자 할 때입니다 SAT 예를 들어, 실존 적 및 보편적 인 양을 나타내는 함수

그것은 BDD에서 할 수있는 조작 방법 중 하나입니다 우주 SAT 우주에서, 그것은 SAT 솔버의 버전은 실제로 다릅니다 모든 SAT 솔버가 아니지만 SAT 솔버 버전이 있습니다 그들은 정량화 된 SAT 솔버라고 불리며, 여러분이 말할 수 있습니다

기능을 사용하면 CNF 형식으로 그에게 줄 수 있습니다 그리고 나서 여러분은 말합니다 그리고 여기에 계량화하고자하는 변수들이 있습니다 부디 그리고 SAT 해결사는 흥미로운 일을합니다

내부 마법을 사용하고 정량화 된 기능에 대한 만족 성을 해결합니다 그것은 SAT 솔버의 완전히 다른 범주입니다 그러나 SAT 솔버를 사용하여 임의의 부울 연산을 수행 할 수는 없습니다 SAT를 풀 수 있습니다 그것이 그들이하는 일입니다

부울 함수에서 임의의 작업을 수행하려는 경우 BDD가 필요할 수 있습니다 BDD로 SAT를 할 수 있습니다 아마 그럴 것입니다 효율적인 방법 괜찮아? 그렇게 중요한가? 어쩌면 약간의 미묘한 세트 구별하지만, 알다시피, 만약 당신이 이것을 내면화 시키면

당신은있을 겁니다 당신은 존재를 향한 진전을 이루게 될 것입니다 심각한 [알 수없는] 사람입니다 알다시피, 전형적인 실용적인 것은 무엇입니까? 토 문제가 있습니까? 두 가지 논리 네트워크가 있습니다 그리고 그것들은 똑같은 입력의 로직 네트워크입니다

같은 부울 함수인지 확인합니다 나는 F가 G와 정확히 똑같은 일을하는지 알고 싶습니다 그래서 저는 단지 G가 F라는 질문을하고 있습니다 어떻게 그걸합니까? 글쎄, 당신은 일반적으로 수행원 출력 쌍마다, 그냥합시다

F1이 G1이라고 가정한다 그들은 같은 일을하기로되어있다 맡은 일 그리고 F2는 G2로되어 있습니다 그들은 똑같은 일을하기로되어 있습니다

출력 쌍마다 Exclusive OR Gate를 넣습니다 그래서 당신은 거기에 F1과 G1을 넣습니다 그리고 여기에 또 다른 Exclusive OR Gate와 거기에 F2를 놓고 거기에 G2를 놓습니다 자, 잠깐 생각 해보자 Exclusive OR Gates를 만드는 것은 무엇입니까? 1

F와 G 입력이 일치하지 않으면 대답이됩니다 괜찮아 그래서 이걸로 1을 만드는 유일한 방법은 XOR 게이트는 F와 G가 같은 기능을 갖지 않도록하는 것입니다 승인 그래서, 우리가 여기서 무엇을 찾고 있습니까? 우리는 하나의 OR 게이트를 찾고 있습니다

승인 그걸 Z라고 부르 자 그리고 진실은 무엇인가? 자, 사실은 Z가 1이 될 것입니다 그것은 만족할만한 것입니다, 맞죠? 우리는 X의 패턴을 찾을 수있을 것이다 그것은 F가 G와 같지 않은 경우에만 Z를 1로 만듭니다

권리? 그 말이 맞죠? 그리고 우리가 Z를 만족스럽게 찾을 수 있다면 권리? 그러면 우리는 속성을 가진 X를 찾을 것입니다 권리? 그건, 알다시피, F X는 G가 X를 사용하는 것과 동일하지 않습니다 적어도, 알다시피, 그 중 하나, 그 중 하나 인 것입니다 입력이 다를 것입니다

그렇게 멋진 데, 맞죠? 나는 두 개의 큰 복잡성을 가지고 있습니다, 당신도 알다시피, 실제 공학 논리의 조각들입니다 그리고 나는이 두 가지가 똑같은 일을하고 있다고 말하고 싶습니다 독점적으로 또는 관련 출력, 또는 모든 독점적 OR을 함께 사용하면 부울 satisfiability 그것을 해결하는 질문 이봐, Z를 1로 할 수 있을까? Z를 1과 같게 만들면 네트워크가 동일하지 않습니다 이 입력 패턴은 출력을 다르게 만듭니다

그리고 이것이 사실 일뿐만 아니라 입력 X를 얻을 것입니다 실제로 F와 G가 다르게 만들어서 디버깅 도구로 유용 할 것입니다 그리고 그것이 만족스럽지 않다면, Z가 항상 0이면, 그렇습니다 그들은 사실 동일한 논리입니다 그들은 똑같은 일을하고 있습니다

그래서 아주 멋집니다 그러나 그것은 많은 질문을 제기합니다 그리고 첫 번째 질문은 게이트 레벨 설명으로 시작하여 CNF? 이게 어렵지 않니? 권리 부울 대수가 필요하지 않습니다 BDD 또는 뭔가 복잡한가? CNF 양식은 조금 이상합니다

아시다시피, 조금 어색함을 느꼈습니다 그리고 내가 50,000 게이트가있는 거대한 논리 네트워크를 가지고 있다면, 그렇지 않습니다 그게 끔찍한가? 대답은 '아니오'입니다 사실, 정말 쉽습니다 그것은 놀랍게도 쉽습니다

그러나 우리는 약간의 기술을 구축해야합니다 약간의 수학이 필요합니다 우리를 거기에 데려와 이제 살펴 보도록하겠습니다 여기에 약간의 논리 네트워크가 있습니다

NAND 게이트에는 1과 2가 두 개 있습니다 입력 및 NOR 게이트 번호 2를 포함한다이 회로의 3 개의 입력 중, 그 중 하나는 게이트 1과 게이트 2간에 공유됩니다 게이트 1은 인버터 3 번 게이트로 가고, OR 게이트 4 번 게이트의 한 입력으로 간다 또한, 게이트 (2)는 게이트 (4)의 다른 입력이다

그리고 게이트 5는 인버터 3과 OR 게이트 4의 출력을 취하는 AND 게이트이고, 그게 다야 그래서, 어떻게이 CNF 일을합니까? 큰 멋진 간단한 아이디어는 당신이 CNF 하나의 게이트를 시각 그래서 개념을 소개해야합니다 개념은 우리가 호출 할 게이트 일관성 기능입니다 전체가 함수라고하면, phi라고하는 것입니다

게이트 일관성 기능은 출력의 하위 이름입니다 자,이 NAND 게이트가 여기 있다고 가정합시다 입력 a와 b가 있습니다 d라는 출력이 있습니다 그래서 게이트 일관성 기능은 다음과 같습니다

phi d라고합니다 그리고 이것은 실제로 d 값과 같습니다 게이트의 기능에 자 여기 기억하십시오 이 문이 정말로하고있는 것

이 게이트는 NAND 게이트입니다 그래서 그것은 바입니다 그것이 바로이 문이하는 일입니다 그래서 이것은 실제로 우리가 출력물에 사용하는 상징 이상의 것입니다 gate,이 게이트가 가정 한 부울 수식이있는 Exclusive NORd ab 바입니다

그리고 당신이 조금이라도 부울을한다면 이것을 단순화하면 더하기 d, b + d, 바 + b 바, d bar이고 이것은 phi sub d와 같습니다 자, 알았어 내가 왜 이러는거야? 있잖아,이게 무슨 소용 이니? 이것은 정말로, 정말로, 당신도 알다시피, 마법의 작은, 조금 도움이되는 것으로 밝혀졌습니다 실제로 우리가 전체 네트워크에 대해 CNF를 얻을 수있게 해주는 도우미 기능 얼마나 복잡한 지, 한 번에 하나의 문 그래서 처음에는 약간의 리뷰를했습니다

여러분 모두 알고 있습니다 독점적 인 OR, XOR 아시다시피, 우리는 더하기 기호 B로 동그라미로 작성합니다 a와 b가 다른 경우에만 출력이 1입니다 괜찮아? 권리 그래서 그것이 일반적으로이 게이트입니다

그것의 또 다른 술집과 OR 게이트의 종류입니다 A와 B는 입력 값입니다 Y가 출력이라고합니다 이것은 Y가 막대 b와 AB 막대를 더한 것과 같습니다 그래서 이것은 1을 만드는 문입니다

그것의 입력은 다르다 독점적 인 노어 나는이 방법으로 그것을 쓰고 싶다 나는 그것 위에 막대기와 함께 독점적 인 OR 문으로 그것을 쓰고 싶다 다른 사람들은 주위에 원과 함께 AND 함수처럼 그것을 쓰고 싶습니다 나는 아니에요, 그게 아니에요

그것은 개인적인 취향입니다 다시 NOR 게이트이지만, 거품이 그려져 있습니다 독점 노어 그것은 두 개의 입력 A와 B를 가지고 있으며, 다시 한 출력 Y 그리고 A는 미안 해요 Y, 출력 1, 입력이 같아도됩니다

권리? 그리고 이것은 Y 플러스 AB 플러스 바, B 바입니다 그리고 당신은 부울에서 볼 수 있습니다 수식은 그들이 독점적 인 OR은 단지 그들이 다르다면 1입니다 배타적 NOR는 동일하다면 1입니다 그래서 일종의 알림입니다 권리

그리고 게이트 일관성 기능은 심볼의 배타적 NOR입니다 게이트 출력 부울 수식을 사용한 독점 NOR'D 게이트가하는 것의 자, 그게 뭐지? 실제로 다소 좋은 것입니다 게이트 일관성 함수는 1을 만듭니다 입력과 출력의 조합에만 해당됩니다

게이트가 실제로하는 것과 일치합니다 그리고 그것이 의미하는 것은 게이트 일관성 기능이 흥미 롭습니다 당신이 a에 넣을 수있는 작은 물건과 ab에 넣을 수 있습니다 광고 및 게이트 일관성 기능은 1을 말합니다 예, 게이트가 수행하는 것 또는 0, 아니, 그건 문이하는 게 아니야

예를 들어, 내가 a를 0, b를 a 0과 d는 1? 음, 이것은 NAND 게이트입니다 그래서 저는 여기에 0을 넣었습니다 나는 여기에 0을 넣었다 0과 0은 0입니다 반전 된 0은 1입니다

네, 사실 저는 1을 만들어야합니다 이것은 일관성이 있습니다 그리고 계속하십시오 시도 해봐 당신이 발견 할 수있는 것은 당신이 이것을한다면, 피는 1입니다

Phi d는 예라고 말하고 a는 0, b는 0, d는 1입니다 네 확실합니다 그것이이 게이트의 역할입니다 그러나 만약 당신이 대신했다면, 이것 2 대 1을 넣으면 어떨까요? 1 및 1은 1입니다

반전 된 1은 0입니다 불행히도, 나는 방금 내가 생각한다고 말했다 이것은 일치하지 않습니다 실제로 여기서 일어날 일은 바로 그것입니다 φd는 0이 될 것이다

권리? 피디가하는 일입니다 피는 이봐 요, 이거라고 말하는 기능입니다 문은 무엇을합니까? 당신이 정말로 필요로하는 모든 것이 전체 게이트 네트워크에 대한 적합성 공식을 만들려면 어떻게해야합니까? 함께 그리고 함께 모든 게이트 일관성 기능을 게이트 일관성 기능 중 하나는 기본적으로 입력을 출력에 연결합니다 대부분의 게이트에서 출력은 다음 게이트의 입력입니다 권리? 그리고 이것은 이것이 절이 서로 붙어서 값이 모두 겹치게됩니다 따라서 전체 함수를 1로 만드는 유일한 방법은 일관되게 끝까지

그 흥미있는 믿어지지 않는 정도로 실제적인 개념 따라서 논리 네트워크의 경우 각 와이어에 라벨을 붙이십시오 모든 것, 맞죠? 여기에이 네트워크의 입력이 있습니다 여기에이 네트워크의 출력이 있습니다 그리고 이것은 이전의 동일한 논리 네트워크입니다

게이츠 1, 2, 3, 4, 5 1은 NAND이며, ab 출력을 입력합니다 d 2는 NOR, 입력 bc 출력 e입니다 3은 입력되지 않습니다 d 출력 f

4는 OR, 입력 출력 g입니다 5는 AND, 입력 fg 출력 h입니다 모든 단일 내부 라벨에 라벨을 지정해야합니다 변수 이름을 가진 철사 권리? 그 이유는 모든 단일 항목에 대해 부울 수식을 작성하게 될 것이기 때문입니다

문 따라서 모든 입력과 모든 출력에는 이름을 그래서, 우리가하고 싶다고 가정합시다 g 용 좋아, 그럼 내가 원하는 건 내가 나야

그 문을 봐야 해 좋구나 그래서 그것들은 이름을 필요로하는 내부 노드입니다 그리고 그것은 이름을 필요로하는 내부 노드입니다 그래서 이것은 OR 게이트 인 게이트입니다

그 안에 d와 e가 들어갑니다 그리고 그것에서 나가고있어 우리가 실제로이 일을한다면, 게이트 일관성 함수, phi g는 g의 출력 이름이 될 것입니다 그리고 이것은 Exclusive NOR'd가 될 것입니다 것은하고, 그것은 d + e입니다

우리가 실제로 그것을 연마한다면, 우리는 그것을 발견 할 것입니다, 그것은 d bar plus g ANDed e bar plus g, ANDed d plus e 플러스 g 바 그리고 거기에 우리가 가지고 있습니다 그리고, 당신도 알다시피, 다른 이들 중 일부는이 작업을 수행할만한 가치가 있습니다 당신의 손을 시험해보고 여기에서 무슨 일이 벌어지고 있는지 스스로 깨닫게하십시오 그럼, 우리는 다음에 무엇을해야합니까? 전체 CNF를 얻으려면 net list, 당신이하는 일은 다음과 같습니다

이 CNF를 작성하십시오 좋아, 파이 그리고 두 부분으로되어 있습니다 실제로 출력 변수를 절의 하나에 넣어야합니다 그리고 실제로, 출력 변수가 있습니다

그리고 실제로 거기에 넣어야합니다 바로 거기에 있습니다 그리고 아이디어는 우리가 모든 것을 만족시킬 수 있는지를 해결한다는 것입니다 그 중 하나는 h가 하나라는 것이 진실이어야한다는 것입니다 그리고이 절 데이터베이스에서 h가 1인지 확인하는 방법은 h가 1 인 경우에만 만족할 수있는 h가있는 절

권리? 그리고 나서 그것은 제품을 가지고 있습니다 제품이란 네트워크의 모든 게이트를 통해 큰 AND를 의미합니다 그런 다음 게이트를 일관성 기능 그것은 phi k가있는 것입니다 그리고, 게이트 1에 대해서는 게이트 일관성 기능이 있고, 게이트 1에 대해서는 게이트 일관성 기능이 있습니다

게이트 2에 대한 일관성 기능, 게이트 3에 대한 게이트 일관성 기능 게이트 (4)에 대한 게이트 일관성 기능, 게이트에 대한 게이트 일관성 기능 5 맞아 그래서 같은 논리 네트워크, NAND 게이트 1, NOR 게이트 2, NOT 게이트 3, OR 게이트 4 AND 게이트 5, 똑같은 그리고 나는이 멋진 큰 절 CNF를 얻었다 형식으로 문자 그대로 읽을 수 있습니다

게이트 1은 게이트 일관성 기능을 만듭니다 빵, 내려 놔 게이트 2는 게이트 일관성을 만듭니다 기능 빵, 내려 놔

게이트 3은 게이트 일관성 기능을 만듭니다 내려 놔 4 개를 내려 놓으십시오 그 중 하나를 내려 놓으십시오 하나의 절을 넣으십시오

출력 변수입니다 당신은 그것을 가지고 있습니다 이것은 귀하의 로직 네트워크를위한 CNF입니다 게이트와 전선에서 할 수 있습니다 네트워크를 걷는 것

그래, 꽤 커질거야 죄송합니다 그것이 작동하는 방식입니다 SAT 해결사에게 건네주십시오 당신이하고 싶은 질문을하십시오

따라서, 각각에 대해서가 아닌 실제 부울 대수 단순화를 읽지 마십시오 개별 게이트 레벨 기능 그리고 네트워크 수준에서 당신과 그들 모두 함께 이제이 결과로 영리한 사람들 수식을 작성했습니다 계속해서 진행해야하기 때문에 지루합니다

이것들을 파생시킨다 그리고 이것은 아주 복잡한 슬라이드입니다 그래서 나는 Fadi Aloul, Igor에서부터 꽤 유명한 논문에서이 공식들을 얻었습니다 마르코프, 카렘 사 칼라 미시건 대학의 모든 곳 그들은 SAT로 흥미로운 것들을 해보기 만했습니다

다음은 수식입니다 흥미롭게도 공식이 있습니다 충분하고, 철사 때때로 너는 전선이있어 당신은 한 게이트의 출력을 가지는데, x와 입력을합시다 다음 게이트의 이름이 z라고하자

그리고 당신은 부울 함수, z는 x와 같습니다 당신은 그것에 대한 부울 CNF 수식이 필요합니다 X 바 플러스 z, x 플러스 z 바 그런 다음 NOR 게이트 용 수식이 필요합니다 OR 게이트들, NAND 게이트들, AND 게이트들, 및 인버터들을 포함한다

인버터는 간단합니다 X 플러스 z, x 바 플러스 z 바 나머지는 모두 복잡합니다 그리고 그들은 일종의 복잡하지만 그것도 일종의 단순합니다 그들은 모두 정확히 세 부분을 가지고 있습니다

그럼 예를 들어 보겠습니다 문 첫 번째 부분은 제품입니다 그리고 그것은 모든 입력에 대한 제품입니다 n 개의 입력이 있습니다

그리고이 제품은 xi bar plus z bar입니다 4 개의 입력 NOR 게이트가 있다면 4 개의 제품을 얻을 수 있습니다 모두 xi bar plus z bar처럼 보입니다 그리고 나서, 그것은 합계 항과 ANDed됩니다 그 안에는 두 가지가 있습니다

권리 그래서 이것은 합계입니다, 이것은 당신이 알고있는 OR입니다 이것은 모든 입력의 OR입니다 그래서 4 개의 입력이 있다면, x1, x2, x3, x4 이것은 x1 + x2 + x3 + x4입니다

그리고 나서이 합계에 하나의 용어가 있습니다이 경우에는 z 기간 그리고 각각의 방정식을 보면 NOR 또는 NAND의 경우, 어디에서 발견 되는가에 따라 달라질 수 있습니다 보완 바, 바가 어디 있는지, 당신은 알고 있습니다 그리고 그것은 당신이 독점적 인 기능을 수행하고 기능의 대수를 갈아 치워 라

이것은 단지 패턴입니다 그래서, 기억할 가치가 있습니다 또는 아시다시피 손등에 적어 두십시오 나는 그것이 더 좋은 대답일지도 모른다라고 생각한다 이제, 내가 할 다른 한 가지, 내가 할 것이다

인정해라 그리고 이것은 불행한 일이다 그러나 당신은 알고있다, 나는 EXOR 게이츠가 어떻게 당신에게 말해야한다 EXNOR 게이트는 게이트 일관성 기능도 가지고 있기 때문에 작동합니다 그리고 문제는 EXOR 게이트이며 EXNOR 게이트는 SAT에 대해 다소 불쾌합니다

해결사 이 기본 구조는 어떤 거친 SAT 수색을 위해 그들은 오히려 큰 게이트 일관성 기능을 가지고 있습니다 너무 따라서 작은 두 입력 게이트 만 생성됩니다 많은 용어들

그래서 여기에 무슨 일이 일어나는가가 있습니다 z가 Exclusive OR와 동일한 경우 a와 b의 게이트 레벨 일관성 기능은 z XNOR ax 또는 b입니다 b 조금 불쾌한 부울입니다 대수학

나는 단지 너를 위해 그것을 쓰고있다 XNOR에 대한 정보를 알아내는 것이 좋습니다 우리는 그렇게 할 필요가 없습니다 원한다면 더 많은 공식을 도출 할 수 있습니다 입력

그것은 단지 불쾌한 일입니다 그것은 단지 크고 추한 것입니다 하지만 이제 알다시피, 당신은 게이트 레벨을 가지고 있습니다 알고 있어야 할 모든 게이트에 대한 일관성 기능 그리고 부울 표현식, 부울 논리 네트워크를 걸을 수 있습니다 게이트 레벨 일관성 기능을 구축 할 수 있습니다

그리고 그것은 단지 가치있는 것입니다 알다시피, 여기에서 하나를하는 것입니다 단지 설득력있는 것입니다 우리는 우리 자신을 압니다 여기에 일반적인 공식이 있습니다

n 입력 NAND 게이트 제품 용어가 있고 그것은 총계 기간과 ANDed이고, 하나의 추가 기여 기간이 있습니다 관련 출력합니다 n이 2 일 경우 어떻게됩니까? 권리? 당신은 무엇을 얻습니까? 여기에 제품 용어가 있습니다 권리? 이 제품은 AND를 의미하기 때문입니다

그리고 n은 2이기 때문에 권리 i의 제품은 xi의 1 – 2와 같습니다 더하기 z는 x1 + z와 x2 + z입니다 그게 전부입니다

그리고 나서 총항 (sum term)이 있습니다 그리고 다시, n은 2와 같습니다 그리고 이것은 i가 1에서 n까지의 합계입니다 그리고 합계는 OR을 의미합니다 권리? 여기에 한 가지 추가 용어가 있습니다

그래서 i의 합은 xi의 1과 2가 같습니다 bar는 x1 + x2가 아닙니다 그리고 나서 우리는 여전히 같은 액수 안에 있습니다 그리고 거기에는 언제나 하나의 용어가 있습니다이 경우 z 바입니다

그래서 이것이 여러분이이 공식을 읽는 방법이며, 여러분이 그것을하는 방법입니다 그것은 전부 기계적입니다 실제로 아무도 이것을 손으로하지 않습니다 당신은 프로그램을 쓴다 우리는 실제로 당신에게 글쓰기를 요청할 것입니다

네가 알기 때문에 네 인생에서 한 번 해보니 좋다 너도 알다시피, 3 ~ 4 개, 5 개의 게이트가있다 생성되는 것, 아시다시피, 10 개 또는 15 개의 조항 당신이 그것을 기계적으로 할 때, 당신도 알다시피, 종이와 연필 형태 저를 믿으십시오, 당신은 그것이 어떻게 작동하는지 알 것입니다

그렇기 때문에 부울 만족을 위해서입니다 그것은 매우 중요한 기술이며 BDD와 함께 꽤 많이 사용됩니다 표현의 종류와 큰 종류의 우주의 종류를 나타냅니다 불리언 방정식을위한 전산 도구 저는 SAT가 실제로 이진 결정 다이어그램을 많이 옮겼습니다

그저 놀라 울 정도로 큰 응용 프로그램 집합 만 해결하면됩니다 그것 나는 말할 필요가있다 이 큰 불리언 함수에 대한 할당을 만족시키고 있습니까? 네, 저 하나주세요 아니, 알았어

알 필요가있어 그래서 SAT를 만드는 형식으로 변형 된 많은 것들이 있습니다 선호되는 기술이지만 BDD는 여전히 중요합니다 장소 SAT의 가장 큰 이유는 확장 성

거대한 문제를 일으킬 수 있습니다, 50,000 변수, 2,500 만 조항, 5 천만 조항, 5 천만 조항 권리? 죄송합니다 당신이 알고있는 5 천만 개의 리터럴, 조항에 변수가 나타납니다 그러나 여러분도 알다시피 말 그대로, 수 만개의 변수, 수천만 절 그것들은 거대한 문제입니다 당신은 실제로 그러한 것들을 현저하게 빨리 해결할 수 있습니다

BDD와 같은 여전히 ​​SAT는 아닙니다 적당한 시간 또는 공간 아이디어는 40 ~ 50 년 전의 것입니다 당신이보고있는 종이에 따라 그러나 여전히 큰 아이디어입니다

Davisputnamlogemannloveland는 재귀의 계산적 내장의 일종 그러나 그것을 가능하게하는 몇 가지 놀라운 엔지니어링 진보가있었습니다 엄청나게 빠르다 그리고 우리는 실제로 경기에 나설 것입니다 이것으로 일부 숙제를합니다

내가 끝내기 전에,이 강의 리프, 나는 내 친구 중 일부에게 약간의 인정을하고 싶었습니다 Karem Sakallah는 미시건 대학교의 제 친구입니다 나는 미시간 대학 명반 대학이라고 인정할 것이다 나처럼 클로드 섀넌과 카렘은 너와 함께 매우 관대했고 시간과 이 강의 자료의 아주 초기 버전에 입력합니다 그리고 그의 이전 PHDA 학생 인 Joao Marques-Silva는 충돌 학습에 대한 가장 초기의 연구는 내가 이것을 사용하고있는 서류들

그리고 그는 현재 University College에 있습니다 더블린 두 사람 모두에게 큰 감사를드립니다 이 강의를 도와주었습니다 그리고 이제 우리는 사물을 종합하는 것에 사물을 나타냅니다

이것이 바로 우리의 다음 큰 주제입니다 [음악]

Importação de layout CAD para o FlexSim

네비게이션, 오토 데스크, AutoCAD, AutoCAD, AutoCAD, AutoCAD, AutoCAD, FlexSim AutoCAD 및 outas는 usadas를 상상합니다

como 레이아웃 없음 FlexSim 프레임 워크 가져 오기 및 내보내기 배경 그리기 마법사, "도구"를 "모델 배경"으로 변경하십시오 영형 도움을 주신 분들께서는 CAD 데이터를 가져올 수 있습니다 상상해보십시오 Assegure-se que "AutoCAD Drawing"은 도예도와 도둑 안에 "다음" 손자의 목소리와 청각적인 분위기 CAD que você quer usar; "열기"도발적인 경쟁에서 컴퓨터를 열어 라

Veja que você está usando um arquivo dwg; 변화를 불러 일으키고 FlexSim을 가져옵니다 Clique em "다음" 노바멘티스 파라 irmos para a tela 사용자 정의 레이어를 만들려면 네스트가 필요합니다 그 (것)들에게 CAD 데이터를 입력하십시오

Se você tiver algum recurso no desenho que는 모델을 시뮬레이션 할 필요가 없으며, 예를 들어, 우마르 항구, 우루과이 항구, 우루과이 항구, 이미지를 시각적으로 공유 할 수 있습니다 Clique em "다음"para 마지막으로, 마지막으로, 마지막으로, 긍정적으로, 긍정적 인, 긍정적 인 존재 colunas는 X, Y, Z를 나타냅니다 a posoção, rotação a tamanho ao longo de cada eixo 긍정적 인 환경 구성 eixo em "0"você vera a posição 원래 do 신 호, localizado no canto esquerdo underferior, 가장 많이 본보기가되는 모델은 모델입니다

문제가 없다면, 에스파뇰과 에스파뇰이 필요합니다 노스 iremos usar "feet"는 모델이 없습니다 FlexSim, mas este desenho está com comala escala em 인치 (polegadas), ou seja, está muito grande Existem 12 polegadas em 01 foot (pé), 십계명 대장 낙타 십자군 대서사 지휘관 12 대구 "1"의 순간적인 움직임, 정확도, 정확도 1의 출생자 12 타나노의 결과, 0

083 N oo se preocupe se você 10 진수의 소수점 이하 자릿수 Por padrão, o FlexSim é 이 페이지는 기계 번역 소프트웨어, 여기를 클릭하여 영어 버전을 얻을 번역입니다 que você digitar será "cortado" 그 (것)들, 선전하십시오 "숫자 정밀도 설정"과 같은 메뉴에서 "편집"을 선택하고 숫자를 입력하십시오

마이어 아고라 (Agora)는 양적으로 드물다 정확한 정보를 제공하고, 필수적인 정보를 제공합니다 Clique em "Finish" 보조기구를 수입 할 때 CAD에서 새로운 차원의 코드를 만들 수 있습니다

레이아웃은 모델을 수행합니다 귀하의 의견이나 질문은 어디에 게시 할 수 있습니까? janela de propriesades 패러 fazer isso, 배경을 그리기 마법사 e clique 아니 botão "마법사 건너 뛰기" FlexSim없이 FlexPim으로 편집 할 수 있습니다 신속한 속성 (Quick Properties)은 트리거를 유발합니다

"선택 없음", você pod movimentar o seu desenho CAD 더보기 모델이 적용됩니다 outro objeto 수술실 보조기구 세부 정보 FlexSim 또는 VisualSmoDicas와 Progutoses를 비교하여 스와 모델, 부탁, visite wwwflexsimbrasilcom

br