1. A2조 이산치수학
프로젝트 보고서
Syntax of
languages
조장 : 20093451 김성현
조원 : 20093463 김창헌
20043695 이성욱
20113295 성주희
20093440 고정현
2. 과제수행일지
소속 조장 : 김성현 조원 : 김창헌, 이성욱, 성주희, 고정현
자료조사 : 프로그래밍 : 보고서 작성 :
A2
성주희, 고정현 김창헌, 이성욱 김성현
과제수행기간 13일 5시간
I. 계획의 작성
연구제목 Syntax of languages
연구배경 그래프에 대해서 학습하고 MST에 대해 이해한다.
Ⅰ ) http://kylog.tistory.com/47
Ⅱ ) http://alrospage.tistory.com/365
참고자료 Ⅲ ) http://alpak3737.blog.me/140108435964
Ⅳ ) http://blog.naver.com/ctpoyou?Redirect=Log&logNo=101953762
Ⅴ ) http://www.aistudy.com/math/tree_spanning.htm
II. 계획의 실행
첫째 날 2012년 4월 24일 목요일
오늘의 작업 조원의 업무 분담과 학습할 내용 및 과제에 대한 이해와 숙지
조장 : 김성현
자료조사 : 성주희, 고정현
프로그래밍 : 이성욱, 김창헌
토의 내용
이처럼 각자 역할 분담을 하였다. 그리고 각자 시간이 나는대로 소스를 생각해 보기로하
였다.
과제준비에서
3. 자료는 어떻게 하면 구할 수는 있을거 같았는데 코딩에서 문제가 있었다. 알고리즘을 어
느낀 점 떻게 짜야될지 생각보다 막막했다. 그래서 일단 각자 생각을 해보기로 하였다.
둘째 날 2012년 4월 30일 월요일
오늘의 작업 각자 조사해온 내용에 대한 토의
vertex
정점
edge
간선
multigraph
다중그래프로서 임의의 정점 쌍에 대하여 여러 개의 간선이 존재하는 그래프.
Eulerian path
오일러경로는 그래프의 모든 변이 딱 한번만 통과하는 경로이다.
simple graph
루프(loop)가 없고 두 정점 사이에 두 개 이상의 간선이 없는 그래프.
path of length k
토의 내용 노드의 경로 길이는 해당 노드에서 루트까지의 edge의 수를 의미한다. 이진 트리의 경로
길이는 모든 노드의 경로 길이를 더한 것을 의미한다. 모든 내부 노드의 경로 길이를 더
한 것은 내부 경로 길이가 되고, 모든 외부 노드의 경로 길이를 더한 것은 외부 경로 길
이가 된다.
cycle
어떤 체계가 처음 상태에서 변화하여 다시 원래의 상태로 되돌아오는 일을 말한다. 변화
를 겪어도 같은 과정을 반복하므로 순환하는 과정이다.
A graph is connected
어떤 정점에서 다른 모든 정점으로 가는 길이 존재하는 그래프를 말한다
Hamiltonian circuit
그래프에서 모든 꼭지점을 한번만 지나가며 다시 출발한 꼭지점으로 되돌아오는 회로가
있는 경우를 말한다.
4. tree
트리 회로. 나무가 하나의 root에서 trunk가 나와 branch로 나누어지는 것처럼, 어떤 하나의 집합으
로부터 하위 lower level로 가지가 나오는 집합 관계를 갖는 계층 구조를 말한다.
spanning tree
신장트리. 연결 그래프의 부분 그래프로서 그 그래프의 모든 정점과 간선의 부분 집합으로 구성되
는 트리. 모든 노드는 적어도 하나의 간선에 연결되어 있어야 한다.
minimum spanning tree
최소신장트리. 신장트리 중 에서 그 간선의 가중치 합이 가장 적은 것을 뜻한다.
여러 개의 가능한 신장트리중 가중치의 총합계가 가장 적은 트리를 최소 신장트리라고 함
① 정점의 수가 n일 때 (n-1)개의 간선을 가짐
② 연결되어 있음
③ cycle이 없음
깊이우선 검색방법이나 너비우선 검색방법으로 운행하여 얻어지는 경로는 결국 트리의 형태를 띈
다.
binary tree
이진 트리란, 트리 중에서도 한 노드가 자식노드를 최대한 두개까지 가질 수 있는 트리
즉, 이진 트리에서 한 노드가 가지는 자식 노드의 수는 0,1,2중 하나이다. 트리의 한 종류
인 이진트리에도 여러 형태가 있고, 이 형태 중 특징적인 형태를 가지는 트리는 그냥 이
진트리라고 하지 않고 다른 이름으로 부릅니다.
리스트 구조의 하나이며, 최상의 루트 노드로부터 서브트리 방향에 도달할 때, 각 루트로
부터 나와 있는 노드가 겨우 두 개인 모양의 트리. 데이터 집합을 기억 영역상에 표현한
경우 다음에 계속되는 데이터 항목으로의 포인터가 겨우 두 개인 모양의 구조를 가리킨
다.
이번 프로젝트에선, 조원들의 개개인 생각을 내어 토론하니, 각자가 생각했던 것 외의 관
과제준비에서
점으로 서로 의견을 주고받고 하는 과정에서 내가 생각하지 못했던 관점으로 문제를 해
느낀 점
결하려고 하는걸 보았을 때 많은 도움이 된 것 같았다.
5. 셋째 날 2012년 5월 1일 화요일
오늘의 작업 MST에 대한 토론
이번 프로젝트에서 해야될 공부를 같이 하였고, 소스에 대해서 토론을 하였다.
토의 내용
과제준비에서 MST라는 것이 생각보다 어려웠다. 평소 알지 못했던 내용이라, 이해하는데만 다소 시간
느낀 점 이 걸려 코딩하는데 많은 어려움이 있었다.
III. 결과
#include<stdio.h>
int main()
{
i n t
i,j,k,nodenum,numtemp,nodecnt=0,cycnt=2,cynode1=0,cynode2=0,buff=0,count=0;
char chtemp;
char node1[1000];
char node2[1000];
int cycle[100];
int weight[100];
scanf("%d" , &nodenum);// 입력
최종 프로그램 printf("입력완료 000 입력n");
소스 fflush(stdin);
for(;;) // 노드 사이의 가중치 입력받음
{
scanf("%c%c%d", &node1[nodecnt] ,&node2[nodecnt] ,
&weight[nodecnt]);
fflush(stdin);
//if(node1[nodecnt] == '0' &&node2[nodecnt] == '0' &&
weight[nodecnt] == 0) break;
if(node1[nodecnt] == '0') break;
nodecnt++;
}
for(i=0;i<nodecnt-1;i++) // 간선들을 오름차순으로 다시정렬
{
for(j=i+1;j<nodecnt;j++)
6. {
if(weight[i] > weight[j])
{
chtemp=node1[i];
node1[i]=node1[j];
node1[j]=chtemp;
chtemp=node2[i];
node2[i]=node2[j];
node2[j]=chtemp;
numtemp=weight[i];
weight[i]=weight[j];
weight[j]=numtemp;
}
}
}
printf("nMinimum Spanning Treen");
printf("%c%c, " , node1[0] , node2[0]); // 가중치 제일 작은 기준 하나 출력
cycle[0]=node1[0];
cycle[1]=node2[0];
for(;;)// 제일 작은 가중치 간선을 기준으로 집합을 만들어 가중치 작은 간선들을
늘려감
{
for(i=1;i<nodecnt;i++)
{
for(j=0;j<cycnt;j++) // 사이클 판단 buff 2라면 사이클이 된다
{
if( cycle[j] == node1[i] || cycle[j] == node2[i])buff++;
}
if( buff == 1 ) // 따로만든 집합 내에 노드 하나만 일치 하는것중 가중
치 제일 작은것을 선택
{
printf("%c%c", node1[i] , node2[i]);
if(count != nodenum-2) printf(", ");
else printf("n");
count++;
for(k=0;k<cycnt;k++)
{
8. Ⅳ. 반성
조원들이 각자 자료를 조사하고 개개인의 임무를 하여서 프로젝트를 보다 빠르고 신속하
게 하였습니다. 조사한 부분을 서로서로 가르쳐 주는 부분에서 시간이 좀 걸리긴 하였지
과제를 마치면서
만, 이번 프로젝트는 평소 알지 못한 부분을 배워서 이해 하는데만 다소 시간이 걸렸습니
느낀 점
다. 이 MST를 C로 코딩해야되는데 알고리즘생각하기까지 많은 시간이 소요되는 걸 보고
아직 많이 부족하다는걸 알게 되었고, 좀 더 공부하고 좀 더 연습해야 할 것같습니다. 서
로 자주 만나 회의를 못해 온라인으로 만나서 회의를 해서 보고서의 질을 보다 높이지
못해서 좀 아쉬움이 남았습니다.
조원평가 기여도(10점 만점)
김성현 8
김창헌 8
이성욱 10
성주희 8
고정현 0