글로 남기는것과, 사진 찍는것, 동물을 좋아해요. Lisp, Emacs, Scala, FP 에 관심이 많습니다.

Regular Expression, NFA

December 29, 2014 Blog

Regular Expression 이전까지 배웠던 패턴매칭 기법들은 모두 단일 패턴만을 찾았었. (e.g substring search) 일치하는 집합 을 원한다면 어떻게 해야할까? 예를 들어 유전자 분석에서는 Fragile X syndrome 은 GCG(CGG|AGG)*CTG...

Maximum Flow

December 28, 2014 Blog

Min Cut edge weighted 그래프에서 st-cut 이란 vertices 를 두개의 disjont sets 으로 나누는 것이다. 이때 s, t 는 각각 다른 집합 A, B 에 속해있다. (http://en.wikipedia.org) capacity...

Reactive Programming 5, Actor

December 27, 2014 Blog

(http://prabhubuzz.wordpress.com) Actor 는 원래 1973년에 인공지능 연구를 위해 개발되었는데, 1995년에는 Erlang/OTP 에서 텔레커뮤니케이션 플랫폼을 위해 사용되기도했다. 2006년에는 스칼라 스탠다드 라이브러리로 구현되었고, 2009년에는 Akka 가 만들어졌다. Why Actors? 액터가...

Reactive Programming 4, Observable, Rx

December 26, 2014 Blog

지난시간엔 단일 데이터에 대해 latency 를 지원하는 Future, Promise 에 대해서 알아봤다. 이번에는 컬렉션에서 latency 를 지원하는 방법인 Observable 을 배워보자. One Many Synchronous T/Try[T] Iterable[T] Asynchronous Future[T]...

Process Mining, Week5

December 24, 2014 Blog

지난 4주간 배운바를 간단히 정리해보면 첫 2주는 model discovery 지난 2주는 conformance checking 이 것들은 control flow 에 관련된 것들이었다. 이제는 기본적인 event log 의 데이터 뿐만 아니라...

Reactive Programming 3, Futures, Promises

December 21, 2014 Blog

이번시간엔 Try, Future, Awaitable, Async, Promise 에 대해 알아본다. 모나드가 삶을 윤택하게 하리라 Monads and Effects 프로그래밍에서 4가지 본질적 effects 는 One Many Synchronous T/Try[T] Iterable[T] Asynchronous Future[T]...

Reactive Programming 2, Stateful

December 21, 2014 Blog

지금까지 우리가 작성한 프로그램은 side-effect free 였기 때문에, time 이 중요한 요소가 아니였다. 무슨말인고 하니, 모든 프로그램은 sequence of actions 에 대해 항상 같은 결과를 주게 되어있었다. 이건...

하스켈로 배우는 함수형 언어 9

December 18, 2014 Blog

Intro 이번시간엔 함수형 프로그래밍에서 property 를 증명하는 방법인 induction 에 대해 배워보고, 하스켈에서 알고리즘의 성능이 어떨까에 대해 좀 논의해 보겠습니다. 마지막엔 Rose Tree 를 구현하면서 Function, Monoid, Foldable...

Substring Search Algorithm

December 18, 2014 Blog

Intro to Substring Search N 길이의 텍스트에서 M 길이의 패턴을 찾는 문제다. 일반적으로 N >> M 이다. N 이 좀 많이 (무한히) 길기 때문에 지난시간까지 배운 알고리즘을 적용하기가...

Reactive Programming 1, Monads

December 17, 2014 Blog

What is Reactive Programming? reactive 란 뜻은 React to events (event-driven) React to load (scalable) React to failures (resilient) React to users (responsive) Event-driven event-driven 을 통해 scalable,...

Process Mining, Week4

December 17, 2014 Blog

Two-Phase Process Discovery, Limitations 지난시간에 두 단계를 거치는 프로세스 마이닝 알고리즘을 봤었다. 하나는 heuristic mining 으로 dependency graph 를 만들고, 이것을 C-nets 으로 변환했었다. 다른 하나는 transition system...

R-way, Ternary Search Tries

December 16, 2014 Blog

String Symbol Table 지난 시간에 symbol-table 의 구현으로 red-black tree, hash table 의 성능을 살펴봤었다. red black tree 는 search, insertion, delete 에 compareTo 를 이용해 log N,...

Machine Learning, Week 10

December 15, 2014 Blog

이번 주에는 mini-batch, stochastic graident descent, online learning, map-reduce 등의 개념에 대해 배운다. Learning With Large Datasets (http://blog.csdn.net/linuxcumt) 왜 그렇게 큰 데이터 셋이 필요할까? 좋은 퍼포먼스를 얻기 위한...

Radix Sort, Suffix Sort

December 11, 2014 Blog

Strings in Java 문자열은 Character (문자) 의 나열이다. C 에서 하나의 캐릭터는 8-bit 인데, 자바의 경우에는 16-bit unsigned integer 로 표시한다. 스트링의 길이를 얻기 위해 length, 인덱싱 하기...

Process Mining, Week3

December 9, 2014 Blog

Four Quality Criteria For Process Discovery real process 로 부터 event log 를 얻고 이것으로 process model 을 만든다. process model 을 평가하기 위해 해야하는 질문은 Is the...

Machine Learning, Week 9

December 8, 2014 Blog

이번시간엔 anomaly detection 과 recommender system 을 배운다. Anomaly Dectectoin (http://blog.csdn.net/linuxcumt1) (http://blog.csdn.net/linuxcumt1) anomaly 는 정상집단에서 떨어진 데이터라 보면 된다. 공장에서 품질이 떨어지는 제품을 골라낼때 사용할 수 있는데, 위...

A Poor Man’s Concurrency Monad

December 7, 2014 Blog

FP 101x 의 최종 보스입니다. Rose Tree 는 거들뿐 Koen Claessen 가 1999년에 발표한 Poor Man's Concurrenc Monad 를 배경으로 하는 과제인데, 언어에 primitive 추가 없이 concurrency 를...

하스켈로 배우는 함수형 언어 8

December 4, 2014 Blog

고차함수가 있는 다른언어와 비교했을 때 하스켈은 무슨 특징이 있을까요? 하스켈은 expression 을 평가하기 위해 디폴트로 lazy evaluation 을 사용한다는 점에서 다른 언어들과 다릅니다. 이번시간엔 evaluation 의 개념부터 시작해서,...

Graph Challenges, Minimum Spanning Trees, Shortest Paths

December 3, 2014 Blog

Graph Process Challenge 1 Is a graph bipartite? 그래프가 bipartite 인가 하는 문제는, 그래프의 노드를 이렇게 두 그룹으로 나눌 수 있느냐 하는 문제다. (http://en.wikipedia.org) 알고리즘이 얼마나 어려운가는 이렇게...

Machine Learning, Week 8

November 30, 2014 Blog

이번시간에는 PCA 와 clustering 을 배운다. PCA 가 어떻게 돌아가는지 알기위해 covariance matrix, eigen decomposition, singular value decomposition 등의 배경지식도 익혀보자. K-means 는 거들뿐 Unsupervised Learning Intro clustering...

하스켈로 배우는 함수형 언어 7

November 27, 2014 Blog

the countdown problem 은 프랑스 퀴즈 프로그램에서 유래한 문제입니다. 주어진 양수를 단 한번씩만 이용하여 특정 숫자를 만드는 문제입니다. 사용가능한 연산자는 +, *, -, / 입니다. 예를 들어 (25...

Process Mining, Week2

November 26, 2014 Blog

지난 주 수업을 듣고 보니, 이벤트 로그를 만들어서 악성 사용자나, 비 정상적인 유저의 행동으로 부터 모델을 만들어서 어뷰징을 막거나, 부족한점을 개선해 서비스의 품질을 높일수도 있겠단 생각이 들었다. 근데...

하스켈로 배우는 함수형 언어 6

November 25, 2014 Blog

이번시간엔 어떻게 type 과 class 를 정의하는지 배울겁니다. 이렇게 commonality 를 추출해서 type 과 class 로 만듦으로써 작업의 양을 줄일 수 있습니다. 이 과정을 추상화라 부르기도 합니다. 마지막엔...