1. 과제 1
다음 질문들에 답하시오.
• 영철은 린다의 남편인가
주어진 Fact로는 추론 할 수 없다. 부부(영철,린다) 또는 아버지(영철.프랭크) 라는 Fact가 주어진다면 이 명제에
대하여 사실이다.
•누가 철수의 아내인가
은영. 부부(철수,은영)
•프랭크의 부모는 누구인가
부 : 알수없다 모 : 린다 어머니(린다,프랭크)
•영식의 삼촌은 누구인가
영철. 형제(영철,철수)
•모든 삼촌들을 나열하시오
영철. 형제(철수,영철)이기 때문에 삼촌(영철,영식),삼촌(영철,영희).
만약, 부부(영철,린다)이거나 • 형제(철수,린다)이면, 삼촌(철수, 프랭크)
•철수는 린다보다 나이가 많은가
주어진 fact로는 알수 없다
•철수는 어머니는 누구인가
주어진 fact로는 알수 없다
2. 과제 2
만약 여자A와 여자B가 자식이 있다면 A와B는 형제이다.(그러면 A의 자식과 B의 자식은 4
촌 관계가 된다.)
경우 1 영철과 린다
or
경우 2 철수와 린다 가 할아버지가 같다면 그들은 사촌관계이다
and
경우 3 은영과 린다가
과제 3
//소스
#include <stdio.h>
#include <stdlib.h>
struct powerset{
char com;
};
typedef struct powerset ps;
void printer(int w[], int i);
void pset(int arr[], int a);
void _powerset(int arr[], int a, int q, int w[], int i);
int main(){
ps *set;
int i=0,j=0,k=0,n=0,m;
//메모리 할당.
set = (ps *)malloc(sizeof(ps));
//입력
while(1){
scanf("%c", &set[i].com);
if(set[i].com == 123) continue;
if(set[i].com == 10) break;
i++;
}
//입력 끝.
int temp_arr[i];
char temp_ray[i];
3. //--------------------------------입력 버퍼 시작
while(1){
if(set[j].com == '}'){
temp_arr[n] = atoi(temp_ray);
n++;
break;
}
if(set[j].com == ','){
temp_arr[n] = atoi(temp_ray);
n++;
for(k=0; k<i; k++){
temp_ray[k] = 0;
}
k = 0;
j++;
}
temp_ray[k] = set[j].com;
k++;
j++;
}
//----------------------------------입력 끝
pset(temp_arr, n);
printf("%c", 8);
return 0;
}
/*
temp_arr = 배열
a = 원소 갯수
*/
void pset(int arr[], int a){
int q;
int *w;
w = (int *)malloc(sizeof(int)*a);
for(q=0; q<=a; q++)
_powerset(arr, a, q, w, 0);
free(w);
}
4. void _powerset(int arr[], int a, int q, int w[], int i){
if(a<q) return;
else if(q<=0){
printer(w,i);
return;
}
else{
w[i] = arr[0];
_powerset(arr+1, a-1, q-1, w, i+1);
_powerset(arr+1, a-1, q, w, i);
}
}
//출력부
void printer(int w[], int i){
int q;
printf("{");
if(0<i) printf("%d", w[0]);
for(q=1; q<i; q++) printf(",%d", w[q]);
printf("} ");
}
5. 학습할 내용
• logic : 인간의 지식활동에 관련된 특정한 종류의 원리들을 분석하고 명제
화하며 이들을 체계화 하는 분야의 학문.
• axioms의 정의
1. 일반 사람과 사회에서 두루 통하는 진리나 도리.
•proposition이란
명제 : 어떠한 문제에 대한 논리적 판단 참,거짓을 구분할 수 있는 것.
•logical operation?
논리연산 논리연산자 and, not, or
•logically equivalent?
논리에 의하여 추론하는 것
몇 개의 논리 변수의 논리값 조합에 대하여 새롭게 논리값이 정해지는 연산
•predicate : 사태 판단의 주대상을 지시하는 명제의 조건(술어)
• predicate quantifiers
명제 조건에 주어의 크기/양/수 를 한정하는 명사
•mathematical induction
수학적 귀납법
•set
기준이 명확한 원소들의 그룹
• elements
원소 = 집합을 이루는 가장 작은 부분 개채
조건 : 원소는 기준이 명확해야한다.
•subset : 부분집합 = 임의의 집합 A에서 임의의 조건으로 묶은 집합을 부
분 집합이라고 한다
어느 집단에 속하는 항목 중에서 특정 조건을 만족하는 것으로 간주되는 것
들의 집단
ps : 부분지합과 부분집합의 차
• powerset (멱집합) : 부분집합을 원소로 가지는 집합 (갯수 : 2^n)
• union : 합집합 A와 B가 가지고 있는 모든 원소들의 집합
• intersection : 교집합 A와 B가 같이 가지고있는 원소들의 집합
• complement : 여집합 베타집합
6. •The Duality Principle(이중원리)
논리식 A 및 B 에서 A⇄B 인 관계가 성립할 때, A 및 B 중의 논리합 ∨ 및 논리곱 ∧ 기
호를 서로 교환해서 생기는 식을 각각 A1, B1이라 하면 A1↔B1이 성립한다. 이것을 이원
성 원리라고 한다.
간단한 예로는 드모르간 법칙이 있다.
•partition
집합 A의 부분집합이 공집합이 되면 안된다.
모든 부분집합의 교집합이 공집합이여야한다.
부분집합의 합집합은 전체 집합이다.
ex ) A = {1,2,3,4,5}
A1 = { 1,2} A2 = {3,4,5}
나쁜 예제
A1 = {1,2,3} A2 ={3,4,5}
가 되면 안됨
• 이번에 사용한 동적 분할[ dynamic partition ]
고정 분할에서의 고정된 경계를 없애고 작업을 처리하는 과정에서 크기에 맞도록 기억 장소
를 할당하는 방법. 동적 분할을 하기 위해서는 기억 장소를 배당하고 다시 회수하는 알고리
즘이 필요하다.
• Cartesian product (카티션 곱, 데카르트 곱)
임의의 두 집합 A, B에 대해 a∈A이고 b∈B인 모든 순서쌍(a, b)의 집합을 A와 B의 카티
전 곱이라 하며, A×B로 나타내고 A cross B라고 읽는다. 정의에 의해서 A×B={(a, b)|a
∈A, b∈B}이고, A×A는 A2으로 쓰기도 한다.
7. [팀 이름] 소집단 활동 보고서, 과제수행일지
A0
[팀원]
20073547 홍진욱 , 20083430 강승우 , 20093447 김도형 , 20093489 송하윤 ,20093516 장진승
, 20073457 김재찬
소집단 활동 자체 평가표
◆집단에대하여
▷집단활동을 수행하면서 그 절차에 대해 무엇을 배웠는가?
Logic, set, proof
Axioms, proposition, logical operation ,
logically equivalent, predicate, predicate
quantifiers, mathematical induction
Set – subset , union, intersection,
complement
▷팀 친구로부터 배운 아이디어나 관점들을 하나 이상 적으시오.
사용되는 용어들을 단순한 영어번역이 아닌
개념에 대해서 공부했습니다 .
▷보고서의 질을 높이기 위해 사용한 방법은 무엇인지 적으시오.
각 항목별로 자료를 찾아 사용용도를 살펴 보았습니다 .
◆개인에대하여
▷주제를 친구가 쉽게 알 수 있도록 사용한 방법 두 가지만 적으시오.
영어 번역 , 도서 참조
▷팀 친구에게 가르쳐준 아이디어나 정보를 한 가지만 적으시오.
8. 집합 연산자에 관해서 설명을 해주었다 .
▷친구로부터 배운 능력을 한 가지만 적고, 어떻게 배웠는지 적으시오.
malloc 함수에 대하여 알게 되었다 .
조원이 Win api에서 보여주었다.
▷친구의 연구를 관찰, 질문하여 배운 아이디어를 한 가지만 적으시오.
과제 1번에 대하여 추론 할 수 없는 관계에 대하여 조건을 추가하여 관계를 만드는
아이디어를 알게 되었다.
(예시 2)
과 제 수 행 일 지
이름: 20073547 홍진욱 , 20083430 강승우 , 20093447 김도형 , 20093489 송하윤 ,20093516
장진승 ,20073457 김재찬
소속: A0
과제수행기간: 2번 모임 2_일 총_5___시간
I. 계획의 작성
② 구제목: Knowledge based system
③ 구배경: AI에 대한 기초적 지식을 배워보자
④ 고자료: Discrete Mathematics and its applications
II. 계획의 실행:
첫째날 둘째날 ... 마지막날
① 오늘의 작업: 오늘의 작업:
첫모임 각자 공부해 학습할 내용에
온 내용들을 공유 대해 〃
및 종합 해 보고 서 조사해온 것을
로의 생각을 토의 공유하고
9. 완성된 프로그
램을 보면서 프
로그램에 대
한 생각을 이야
해보았다.
기해보았다
② 과제준비
에서 느낀점:
③ 과제준비에
Knowledge based
서 느낀점:무
system 을 구성하는
한대로 입력
기본적인 수학적 요
받기 위한 구
소들을 알게 되었습
조체를 만드
니다
는것에대한
감을 잡기가
어려웠습니
다.
III. 반성
(1) 과제를 마치면서 느낀
점: (2) 기타
영어 실력이 부족하다 모르는 부분이 많아서 더 잦은
기본적인 수학지식이 만남을 가지자고 했습니다.
부족하였습니다.