본문 바로가기

반응형

전체 글

(63)
최적화 - 동적 알고리즘(Dynamic programming) 이번에는 동적 알고리즘과 이것을 통해 0-1 knapsack problem (배낭 채우기)를 다루려고 합니다. 우선적으로 동적 알고리즘에 대해 알아보자면 사전적 의미로서 복잡한 문제를 간단한 여러 개의 문제로 나누어 푸는 방법이라고 되어 있습니다. 그리고 그 대표적인 예로 재귀 함수 형태의 피보나치 수열이 떠오를 텐데요. 예를 들어 f(1)을 넣게 되면 1, f(2)를 넣게 되면 f(1) + f(0) = 2, f(3) = f(1) + f(2) = 3, f(4) = f(3) + f(2) =5...... 이렇게 됩니다. 하지만 이 함수를 메모리 관리적인 차원에서 본다면 매우 비효율적이라고 할 수 있습니다. f(7)을 컴퓨터에서 컴파일했을때 f(7)을 구하기 위해서 f(7) = f(6) + f(5) 를 호출하..
상속, this, super 자식 클래스가 부모 클래스를 상속받게 되었을 때 둘 다 동일한 타입과 이름의 변수가 존재하거나 매서드들이 오버 라이딩되어버리면 더 이상 부모의 것이 아닌 자식의 성분이 되어버립니다. 그래서 부모의 것, 자식의 것을 구분 짓기 위한 식별자 this와 super에 대해 알아보려고 합니다. 이번에는 child(name, number) 를 통해 이름과 나이가 입력된 객체를 선언하겠습니다. child child2 = new child("Chris",20); 로 자식객체 하나를 만들었습니다. 그런데 부모의 이름과 나이 역시 자식과 동일하게 Chris, 20살이 되어버렸습니다. 일단 복습하자면 자식 생성자가 생성될 때는 부모의 객체를 먼저 생성한다고 했습니다. 아무것도 입력되어 있지 않으면 super(); 가 호출됩..
문법 동사 2형식 1 형식에 이어 2 형식에 대해 알아보겠습니다. 사실 가장 기본적인(?) 영어 문장인 be 동사가 2 형식 구조입니다. 주어 + be동사 + 주격 보어(명사, 형용사 등) 로서 주어의 상태를 꾸며주는 문장입니다. She is so pretty. 그녀는 너무 이쁘다. This book is very good. 이 책은 매우 좋다. I am a student. 나는 학생이다. 이렇게 그녀 = 이쁘다, 이책 = 좋다, 나 = 학생 같이 주어와 주격 보어가 동일시되며 상태나 신분, 지위를 설명해 주고 있습니다. 2 형식 역시 자동사이기 때문에 수동태가 불가능합니다. 그리고 가장 중요한 사실 주격 보어라는 be동사 뒤에 오는 이놈은 오직 명사 또는 형용사만 가능합니다. The player is skillful (..
최적화 - 탐욕 알고리즘, activity selection problem 이전 글에서 최적화에 대한 개념에 대해 알아봤습니다. 이번 글에서는 대표적인 최적화 문제 중 하나인 An activity selection problem과 이를 해결하기 위한 Greedy-Algorithm 또는 탐욕 알고리즘에 대해 다뤄보도록 하겠습니다. An activity selection problem (활동 선택 문제) 활동 선택 문제는 쉽게 말하면 한 강의실에서 여러 개의 수업을 하려고 할 때 겹치지 않고 한 번에 가장 많은 수업들을 고르는 알고리즘입니다. A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 시작시간 1 3 0 5 3 5 6 8 8 2 12 끝시간 4 4.5 6 7 9 9 10 11 12 14 16 위의 스케줄들을 가지고 가장 많은 개수의 일정을 만들어라는 문제가 주어..
문법 동사(자동사와 타동사, 1형식) 오랫동안 영어를 공부해오고 외국에서 대학까지 졸업했지만 생각보다 영어 수준이 떨어지는 제 자신이 부끄럽더군요. 이번에는 제대로 공부해보고 싶은 맘과 공부했던 내용을 같이 공유하고 싶은 마음에 글을 올리게 되었습니다. 같이 공부할 수 있는 시간이 되었으면 좋겠습니다. 개인적으로 영어학습에서 문법이 제일 중요하다고 생각합니다. 특히 문법이 잘 학습되어야 다양한 형태의 영어 문장을 이해하고 또 다시 사용할 수 있기 때문입니다. 그리고 문법 중에서 동사 부분이 70%의 비중을 차지한다고 생각합니다. 동사부터 시제, 수동태, 동명사, to 부정사, 조동사 등 직접적으로 동사와 연결된 내용들이 많고 영어 문장을 잘 살펴보면 보통 주어가 + 동사하다 + 목적어에게 기본구조에서 동사하다만 잘 알아도 문장 전체를 이해할..
상속 이른바 객체지향 언어라고 불리는 자바를 공부해보려고 합니다. 기본적인 문법은 배제하고 자바의 주요 특징인 객체지향이 무엇인지 개념적인 이해 위주로 공부해 보려고 합니다. 객체지향의 언어 바의 주요 특징중 하나인 상속에 대해 알아보도록 하겠습니다. 문자 그대로 부모님의 재산을 물려받아 내 것이 된다는 의미로서 자바에서는 부모 클래스 내의 존재하는 모든 것들을 모두 이어받어 자식 클래스 내에서 사용 가능하다는 것을 의미합니다. 부모 클래스인 pa 입니다. 생성자 pa(), pa(name, number)를 통해 객체를 생산할 수 있고 changeVariable 메서드를 통해 인스턴스 변수 name과 number를 설정할 수 있습니다. 부모 클래스를 상속받은 자식 클래스 child 입니다. 3가지 생성자 chi..
최적화 Optimisation 글을 올리기 앞서 저는 인공지능을 대해 뛰어난 지식을 갖추진 못했지만 제가 학교 다닐 때 배웠던 인공지능에 대해 조금 더 제대로 알고 싶은 마음에 제가 공부한 것을 같이 공유하고 싶어 블로그를 개설했습니다. 단순히 사전적 내용을 덧붙이기보다는 제가 이해한 내용을 알기 쉽게 표현하려 노력하겠습니다. 오류나 부족한 부분들이 존재할 수 있으니 미리 양해 부탁드리고 혹시 제가 잘못 알고 있는 부분이 있다면 겸허히 받아들여 더 발전할 수 있도록 노력하겠습니다. 일단 최적화의 사전적 의미란 주어진 범위 안에서 최댓값 또는 최솟값을 찾아 자원 또는 비용의 효율성을 추구하는 것입니다. 이것이 인공지능에서는 어떤 의미로 씌는지 알아보도록 하겠습니다. 수학 문제를 풀게 될 때 우리는 단 하나의 정답을 찾아야 합니다. 수많..

반응형