게시판 인덱스

 
 FAQFAQ   검색검색   멤버리스트멤버리스트   사용자 그룹사용자 그룹   사용자 등록하기사용자 등록하기 
 개인 정보개인 정보   비공개 메시지를 확인하려면 로그인하십시오비공개 메시지를 확인하려면 로그인하십시오   로그인로그인 

[과제] Homework 1 공지드립니다.

 
글 쓰기   답변 달기     게시판 인덱스 -> 046.016 Computational Civilization (Spring 2017)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
양준모17



가입: 2017년 2월 27일
올린 글: 21

올리기올려짐: 2017년3월20일 13:38    주제: [과제] Homework 1 공지드립니다. 인용과 함께 답변

안녕하세요.
컴퓨터과학이 여는 세계 [Homework 1]이 나왔습니다.

내용 : http://ropas.snu.ac.kr/~kwang/046.016/17/hw1.pdf
제출 : http://ropas.snu.ac.kr/~ta/046.016/17/submit/index.pl
기한 : 4/6(목) 11:00

첫 번째 과제인 에세이는 제출기한까지 인쇄하여 수업 시간에 교수님께 유인물로 제출하시면 됩니다.

두 번째 및 세 번째 과제인 튜링기계는 "반드시 제출 페이지에 학번으로 가입"을 하신 뒤 작성한 "튜링기계 코드""스크린샷"을 업로드하여 제출하시면 됩니다.
제출 페이지의 첫 번째 파일에는 튜링기계 코드를 올려주시고,
제출 페이지의 두 번째 파일에는 스크린샷을 올려주시면 됩니다.
튜링기계 코드의 파일 형식은 *.txt 파일로 제출해주세요.
파일이 깨질 수 있으니 내용에 한글은 쓰지 말아주세요. 튜링기계 작성표는 물론, 코멘트 역시 영어로만 작성해주셔야 합니다.
스크린샷은 비교-튜링기계의 경우에는 "5 이상의 자연수"를, 복사-튜링기계의 경우에는 "길이 10 이상의 목탄데생그림"을 본인이 작성한 튜링기계로 복사한 내용이 보이도록 찍어서 업로드 하시면 됩니다.


----------------------------------------------------------------------------------
과제 딜레이 패널티는 48시간마다 10%씩입니다.
----------------------------------------------------------------------------------

<주의사항>

1. 에세이 쓰기
----------------------------------------------------------------------------------

교수님께서 수업 시간에도 많이 강조하신 부분인 만큼, 반드시 주어진 형식을 지켜주시기 바랍니다.
내용 구성, 양 (반드시 "양면 출력"을 해주시고, 절대 "A4 2장"을 넘어서는 안됩니다), 형식은 당연히 지켜야 합니다.
특히 강조하신 "두괄식"을 꼭 지켜주세요.
이런 형식을 지키지 않아 감점 당하는 경우 어떻게 할 도리가 없습니다.
과제는 반드시 출력하여 유인물을 4/6 수업 시간 시작 전까지 제출해주세요.



2. 비교-튜링기계
----------------------------------------------------------------------------------

http://morphett.info/turing/?d364f2684a0af608b49e
위 링크에서 여러분이 작성한 튜링기계를 실험해 볼 수 있습니다.
우선은 0과 1을 반복해서 테이프에 쓰는 튜링기계를 작성해두었습니다. 1을 쓴 뒤 breakpoint를 잡아 두었으니 어떻게 작동하는지 더 잘 보일 것입니다.



3. 목탄데생 복사-튜링기계
----------------------------------------------------------------------------------

2번과 마찬가지로 링크에서 동작하는 튜링기계를 제출하시면 됩니다.



[숙제에 대한 코멘트]

특히 튜링기계를 작성하는 과제에 대해 설명해드리겠습니다.
우선 튜링기계 링크 하단에도 문법이 나와있지만, 대략적인 문법을 소개해드립니다. 기본은 수업 시간에 배운 튜링기계 문법과 같습니다.

:튜링기계의 문법:
----------------------------------------------------------------------------------

- 기본 형식 : <현재 상태> <읽을 심볼> <쓸 심볼> <방향> <다음 상태>
( 예를 들어 튜링기계에 s0 a b r s1 이라고 쓴다면, 이 뜻은 '현재 상태가 s0이고 테이프에 읽을 심볼이 a 라면, 현재 심볼에 b를 쓰고 테이프를 오른쪽(r)으로 이동시키면서 상태를 s1로 바꾼다' 는 뜻이 됩니다. )
- <상태>: 단어와 숫자의 조합이 가능합니다.
- <심볼>: 하나의 글자나 숫자만 가능합니다. _ 는 빈칸(space)를 뜻합니다.
(상태와 심볼은 모두 대소문자 구분을 합니다)
- <방향>: 왼쪽(l), 오른쪽(r), 가만히 있기(*)가 가능합니다.
- ; 이후에 오는 문단은 코멘트로 인식하여 튜링기계의 작동에 아무런 영향을 주지 않습니다. 영어로 작성해주세요.

그 외에 위 사이트에서 유용한 팁을 드리자면,
- 상태변수는 단어가 가능합니다. a, b와 같은 1글자도 가능하지만 state0 과 같이 뜻을 가진 단어로 풀어 쓰는 것이 가능하므로, 튜링기계 작성 시에 최대한 의미를 풀어 써서 상태 변수를 작성하는 것이 도움이 됩니다(e.g. copying1 은 `1을 복사 중인 상태'로 사용)
- <현재 상태>와 <읽을 심볼>에서 * 를 사용하여 <모든 상태>와 <모든 심볼>을 나타낼 수 있습니다.
- <다음 상태>와 <쓸 심볼>에서 * 를 사용하여 아무런 변화도 주지 않을 수 있습니다.
즉, <현재 상태를 그대로 유지>하거나 / <심볼을 쓰지 않고 넘어감>을 할 수 있습니다.
- 각 줄 마지막에 ! 를 써서 해당 라인을 실행한 뒤 잠시 멈추게 할 수 있습니다. 이것을 잘 활용하면 내가 작성한 튜링기계가 왜 틀렸는지 쉽게 찾을 수 있을 것입니다.



:그 외:
----------------------------------------------------------------------------------

<비교-튜링기계>
- 비교 튜링기계에서 예를 들어 *11*111* (혹은 11*111)이 들어오면 11과 111을 비교한 결과를 내놓는 것이 스펙입니다.
그런데 링크의 튜링기계로 설계를 하려면, '*'라는 심볼이 wildcard로 쓰이기 때문에 맞지 않습니다. 따라서 적당히 다른 심볼(e.g. x)로 바꿔서 작성하시면 됩니다. 이와 관련해서 코멘트에 어떤 심볼을 표시로 사용하였는지 작성해주시면 감사하겠습니다.

- 비교 튜링기계는 5이상의 자연수끼리 비교한 결과를 스크린샷으로 찍어서 함께 제출해주시면 됩니다.

- 이번 과제가 요구하는 사항은 "모든 임의의 자연수를 비교"하는 튜링기계여야 합니다. 1과 2의 경우에만 옳은 답변을 내놓는다던가 하는 경우는 과제 스펙에 맞지 않습니다. 이 점 유의하시길 바랍니다.

<복사-튜링기계>
- 복사 튜링기계의 예시는 *0113210* 을 입력으로 받아 *0113210*0113210* 을 출력하도록 되어 있습니다.
그런데 링크의 튜링기계로 설계를 하려면, '*'라는 심볼이 wildcard로 쓰이기 때문에 맞지 않습니다. 따라서 적당히 다른 심볼(e.g. x)로 바꿔서 작성하시면 됩니다. 이와 관련해서 코멘트에 어떤 심볼을 표시로 사용하였는지 작성해주시면 감사하겠습니다.

- 복사 튜링기계에서, 직관적으로 '복사'라는 작업을 하기만 하면 됩니다.
예를 들어 표시로 x를 이용하는 경우, x0123x 를 받아 복사한 결과가 x0123x0123x , x0123x0123 , xxxxx0123x, xaaaax0123x , ... 등, `입력을 복사했다'는 것을 직관적으로 알 수만 있으면 제대로 작성한 것으로 판단하겠습니다.

- 길이 10 이상의 목탄데생그림을 복사한 결과를 스크린샷으로 찍어서 함께 제출해주셔야 합니다.

- 역시 이번 과제가 요구하는 사항은 "모든 임의의 목탄데생 그림을 복사"하는 튜링기계여야 합니다. 과제 문서에 예시로 나온 0113210 의 경우에만 복사되는 것은 과제 스펙에 맞지 않습니다. 이 점 유의하시길 바랍니다.

- 듀를 최대한 지켜주세요. 딜레이되는 경우는 제출 페이지 외의 다른 방법으로 받겠습니다.




그 외 이해가 되지 않거나 궁금한 점이 있으면 질문을 올려주세요.

감사합니다.

TA 양준모
e-mail: jmyang@ropas.snu.ac.kr
phone: 010-4182-3309
office: bldg 302, 312-2

TA 조상우
e-mail: swjoh@ropas.snu.ac.kr
phone: 010-9152-0008
office : bldg 302, 312-2
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
글 쓰기   답변 달기     게시판 인덱스 -> 046.016 Computational Civilization (Spring 2017) 시간대: GMT + 9 시간(한국)
페이지 11

 
건너뛰기:  
새로운 주제를 올릴 수 없습니다
답글을 올릴 수 없습니다
주제를 수정할 수 없습니다
올린 글을 삭제할 수 없습니다
투표를 할 수 없습니다


Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group
Translated by kss & drssay