게시판 인덱스

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

[과제] Homework 1 공지드립니다. (3월 26일 update)

 
글 쓰기   답변 달기     게시판 인덱스 -> 046.016 Computational Civilization (Spring 2018)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
김덕은



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

올리기올려짐: 2018년3월22일 14:06    주제: [과제] Homework 1 공지드립니다. (3월 26일 update) 인용과 함께 답변

안녕하세요,
컴퓨터과학이 여는 세계 [Homework 1]이 나왔습니다.
내용 : http://ropas.snu.ac.kr/~kwang/046.016/18/hw1.pdf
제출 : Exercise 1 - 프린트 하여 4월 5일 수업시간에 제출
Exercise 2 - http://ropas.snu.ac.kr/~ta/046.016/18/submit/index.pl
기한 : 4/5 (목) 11:00 am

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

두번째 과제인 튜링기계는 반드시 제출 페이지에 학번으로 가입하신 뒤 작성한 "튜링기계 코드""스크린샷"을 업로드하여 제출하시면 됩니다.
튜링기계 코드와 스크린샷 둘 모두를 제출하셔야 합니다!
제출 페이지의 첫 번째 파일에는 튜링기계 코드를 텍스트 파일(*.txt)로 제출하시고,
제출 페이지의 두 번째 파일에는 스크린샷을 제출하시면 됩니다.
(파일 이름들은 가능한 영문으로 해 주세요.)

튜링기계 코드의 경우, 파일이 깨질 수 있으니 내용에 한글을 쓰지 말아주세요. 튜링기계 작성표는 물론, 코멘트 역시 영어로만 작성하셔야 합니다.
스크린샷은 "5 이상의 자연수"를 본인이 작성한 튜링기계로 비교한 내용이 보이도록 찍어서 업로드해주세요.
"Halted. 와 Initial Input 그리고 Initial State"가 잘 보이도록 화면을 찍어주시기 바랍니다.
스크린샷은 편집하시지 말고 화면 전체를 찍은 그대로 제출하시면 됩니다.
업로드하실 파일 이름은 자유롭게 쓰시면 됩니다.
재업로드도 가능합니다.

기한이 넘은 과제는 받지 않습니다.
특히 두 번째 과제의 경우, 4월 5일 오전 10시 59분 59초까지 제출해주세요!

<주의사항>

1. 에세이 쓰기
교수님께서 많이 강조하신 부분이니, 반드시 주어신 형식을 지켜주시기 바랍니다.
내용 구성, 양, 형식은 당연히 지켜야 합니다.
반드시 양면출력하시고, A4 2장을 넘어서는 안 되며, 특히 강조하신 두괄식을 꼭 지켜주세요.
이런 형식을 지키지 않아 감정 당하는 경우 어떻게 할 도리가 없습니다.
에세이를 쓰실 때에는 본교재의 1장과 2장, 튜링의 1935를 모두 필수적으로 포함해야 합니다.
과제는 반드시 출력하여 4월 5일 수업시간 시작 전까지 제출해주세요.

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

과제를 제출할 때에는 과제에서 만들어보신 규칙표는 제출하시지 않아도 됩니다.
과제의 3번에서 요구하는 'http://morphett.info/turing/'에서 동작하는 규칙표만 txt파일로 제출하시면 됩니다.
즉, 튜링기계의 작동을 확인하기 위해서 http://morphett.info/turing/ 홈페이지의 작동 코드 파일(.txt)을 제출하셔야 합니다.
튜링기계는 마커를 사용하지 않는 바닐라 튜링기계를 만들어도 상관 없습니다.
튜링기계의 구분자나 심벌은 원하시는 것을 아무거나 사용하셔도 됩니다.
다만, 제출하신 튜링기계는 과제에서 요구하는 기능을 충실히 수행해야 합니다.
즉, '모든 임의의 자연수를 비교하는' 튜링기계여야 합니다. 특정한 경우에만 옳은 답을 내는 것은 과제의 요구에 부합하지 않습니다.

튜링기계의 대략적인 문법을 소개해드리겠습니다.
기본은 수업시간에 배운 튜링기계의 문법과 같으며, 튜링기계 링크 하단에도 문법이 설명되어있습니다.

- 기본 형식 : <현재 상태> <읽을 심볼> <쓸 심볼> <방향> <다음 상태>
( 예를 들어 튜링기계에 s0 a b r s1 이라고 쓴다면, 이 뜻은 '현재 상태가 s0이고 테이프에 읽을 심볼이 a 라면,
현재 심볼에 b를 쓰고 테이프를 오른쪽(r)으로 이동시키면서 상태를 s1로 바꾼다' 는 뜻이 됩니다. )
- <상태>: 문자와 숫자의 조합이 가능합니다. 하나의 문자나 숫자 뿐만 아니라 단어도 가능합니다.
따라서 의미를 가진 단어로 상태를 작성하는 것이 튜링기계 작성에 도움이 될 것입니다.
- <심볼>: 하나의 문자나 숫자만 가능합니다. '_'는 빈칸(space)를 뜻합니다.
(상태와 심볼은 모두 대소문자 구분을 합니다)
- <방향>: 왼쪽(l), 오른쪽(r), 가만히 있기(*)가 가능합니다.
- * : 현재 상태와 읽을 심볼에 있는 *은 모든 상태와 모든 심볼을 의미합니다.
다음 상태와 쓸 심볼에 있는 *은 아무 변화도 주지 않음을 의미합니다.
- ! : 각 줄 마지막에 !를 쓴다면, 해당 줄을 실행한 후 잠시 멈추게 할 수 있습니다.
이를 잘 활용하면 작성한 튜링기계가 어떻게 돌아가는지 어디가 잘못되었는지 더 쉽게 찾을 수 있습니다.
- ; 이후에 오는 문단은 코멘트로 인식하여 튜링기계의 작동에 아무런 영향을 주지 않습니다. 영어로 작성해주세요.

튜링기계에서 *11*111* 이 입력으로 들어오면 2와 3을 비교한 결과를 내놓아야 합니다.
그런데 링크의 튜링기계에서는 '*' 심볼이 wildcard로 쓰이기 때문에, *을 적당한 다른 심볼(예, x)로 바꾸어 작성하시면 됩니다.
이와 관련해서 코멘트로 어떤 심볼을 사용하였는지 작성해주세요.


이해가 되지 않거나 궁금한 점이 있다면 이 게시판에 질문을 올려주세요.
질문을 공유하시면 다른 친구들에게 도움이 된답니다.

감사합니다.


TA 배요한
e-mail: yhbae@ropas.snu.ac.kr
office: bldg 302, 312-2

TA 김덕은
e-mail: dekim@ropas.snu.ac.kr
office: bldg 302, 312-2
위로
사용자 정보 보기 비밀 메시지 보내기
2015-10701



가입: 2018년 3월 23일
올린 글: 1

올리기올려짐: 2018년3월24일 13:48    주제: 결과값의 형식 인용과 함께 답변

튜링 기계 코드를 작성할 때 마지막 결과값이 입력값 옆에 나오게 해도 되나요?

예를 들어
2와 3을 비교할 때 결과값이
x11x111x1(2=<3)

5와 4를 비교할 때 결과값이
x11111x1111x0(5>4)

이런 식으로 출력되게 해도 되나요?
위로
사용자 정보 보기 비밀 메시지 보내기
배요한
Site Admin


가입: 2018년 3월 6일
올린 글: 107

올리기올려짐: 2018년3월26일 11:13    주제: 인용과 함께 답변

안녕하세요,

프로그램 종료할 때 Head가 결과값을 제대로 가리키고 있다면, 학생의 예시처럼 해도 됩니다.
위로
사용자 정보 보기 비밀 메시지 보내기
2017-16415



가입: 2018년 4월 3일
올린 글: 1

올리기올려짐: 2018년4월3일 0:49    주제: 질 인용과 함께 답변

!를 작성하게 되면 그 줄이 다 시행된 이후에 잠시 멈춘다고 되어있는데,
그렇게 되면 시행 이후 다음 규칙작동표의 줄을 다시 새로운 심볼로 새롭게 시작할 수 있는 건가요?
위로
사용자 정보 보기 비밀 메시지 보내기
2016-14472



가입: 2018년 4월 3일
올린 글: 1

올리기올려짐: 2018년4월3일 13:40    주제: 튜링 머신 관련하여 질문있습니다 인용과 함께 답변

1. 초기 입력값을 지우거나 바꿔도 되나요? 예를 들어, 처음에는 테이프에 "x\\x\\\x"가 써져있었지만 작동이 끝난 후에는 "1xxxxxx\x"가 써져있고 헤더는 1을 가리키는 상태이어도 되나요?
2. 결과값이 어디에 프린트되든 작동이 마친 후에 헤더가 출력값을 가리키게만 한다면 그 위치는 상관없나요?결과값이 프린트되는 부분 외에는 테이프에 어떤 문자가 써있어도 상관없는 것인가요?
3. 초기 상태(튜링머신 작동 전의 상태)는 그냥 주석으로 적어놓기만하면 되나요? 아니면 그것도 따로 설정하는 방법이 있나요?
위로
사용자 정보 보기 비밀 메시지 보내기
김덕은



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

올리기올려짐: 2018년4월3일 14:55    주제: 인용과 함께 답변

2017-16415 학생,
'!'은 프로그래밍에서의 'break point'와 같은 쓰임으로,
그 후 다시 실행하면 멈췄을 당시의 상태(state)와 심볼에서 시작하는 겁니다.
즉, 동영상을 보다가 일시정지를 눌렀다 다시 재생하는 것과 같지요.


2016-14472 학생,
1. 네 괜찮습니다.
마지막에 헤더가 결과값만 가르키면 됩니다.
2. 그 위치는 상관 없습니다.
3. 테이프의 초기값를 말하는 거라면, 페이지 오른쪽에 Initial input을 지정하는 칸이 있습니다.
상태의 초기값을 말하는 거라면, 페이지 오른쪽에 'Advanced options'을 누르시면 Initial state를 지정하는 칸이 있습니다.
초기상태를 주석으로 적어놓을 필요는 없고, 스크린샷을 찍을 때 Initial state가 나와야합니다.

감사합니다.
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
글 쓰기   답변 달기     게시판 인덱스 -> 046.016 Computational Civilization (Spring 2018) 시간대: GMT + 9 시간(한국)
페이지 11

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


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