과제 1
다음 질문들에 답하시오.


• 영철은 린다의 남편인가
주어진 Fact로는 추론 할 수 없다. 부부(영철,린다) 또는 아버지(영철.프랭크) 라는 Fact가 주어진다면 이 명제에
대하여 사실이다.

•누가 철수의 아내인가
은영. 부부(철수,은영)

•프랭크의 부모는 누구인가
부 : 알수없다 모 : 린다 어머니(린다,프랭크)

•영식의 삼촌은 누구인가
영철. 형제(영철,철수)

•모든 삼촌들을 나열하시오
영철. 형제(철수,영철)이기 때문에 삼촌(영철,영식),삼촌(영철,영희).
만약, 부부(영철,린다)이거나 • 형제(철수,린다)이면, 삼촌(철수, 프랭크)

•철수는 린다보다 나이가 많은가
주어진 fact로는 알수 없다

•철수는 어머니는 누구인가
주어진 fact로는 알수 없다
과제 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];
//--------------------------------입력 버퍼 시작
     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);
}
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("} ");
}
학습할 내용
• 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 : 여집합 베타집합
•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으로 쓰기도 한다.
[팀 이름] 소집단 활동 보고서, 과제수행일지
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
                 ▷팀 친구로부터 배운 아이디어나 관점들을 하나 이상 적으시오.


       사용되는 용어들을 단순한 영어번역이 아닌
          개념에 대해서 공부했습니다                               .




                 ▷보고서의 질을 높이기 위해 사용한 방법은 무엇인지 적으시오.

     각 항목별로 자료를 찾아 사용용도를 살펴 보았습니다                                    .


                                ◆개인에대하여


             ▷주제를 친구가 쉽게 알 수 있도록 사용한 방법 두 가지만 적으시오.

                          영어 번역      , 도서 참조


                 ▷팀 친구에게 가르쳐준 아이디어나 정보를 한 가지만 적으시오.
집합 연산자에 관해서 설명을 해주었다                                     .

           ▷친구로부터 배운 능력을 한 가지만 적고,                어떻게 배웠는지 적으시오.


                   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. 계획의 실행:

    첫째날                 둘째날                 ...                          마지막날
① 오늘의 작업:            오늘의 작업:
첫모임 각자 공부해           학습할 내용에
온 내용들을   공유          대해                                                   〃
및 종합 해 보고 서          조사해온 것을
로의 생각을 토의            공유하고
완성된 프로그
                    램을 보면서 프
                    로그램에  대
                    한 생각을 이야
해보았다.
                    기해보았다
② 과제준비
에서 느낀점:
                    ③ 과제준비에
Knowledge based
                     서 느낀점:무
system 을 구성하는
                     한대로 입력
기본적인 수학적 요
                     받기 위한 구
소들을 알게 되었습
                     조체를 만드
니다
                     는것에대한
                     감을 잡기가
                     어려웠습니
                     다.

III. 반성

    (1)        과제를 마치면서 느낀


          점:                   (2) 기타

    영어 실력이 부족하다                모르는      부분이   많아서   더   잦은

    기본적인 수학지식이                 만남을 가지자고 했습니다.

    부족하였습니다.

2012 Dm A0 01 Pdf

  • 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) 기타 영어 실력이 부족하다 모르는 부분이 많아서 더 잦은 기본적인 수학지식이 만남을 가지자고 했습니다. 부족하였습니다.