Browsed by
[Author:] skanto

Understanding Bidirectional Dijkstra Algorithm

Understanding Bidirectional Dijkstra Algorithm

Dijkstra Algorithm은 내비게이션의 길찾기 뿐만 아니라 최단거리를 찾는 알고리즘으로 잘 알려져 있다. Dijkstra Algorithm은 출발지와 목적지 사이의 최단 거리 탐색을 보장하긴 하지만 탐색 거리가 멀면 멀수록 소요되는 시간도 비례적으로 증가한다는 것이 맹점이다. 이런 문제점을 해결하기 위해 다양한 방법들이 시도 되었으며 그 중 대표적인 것이 A*와 양방향 탐색이라 할 수 있다. 이 글에서는 내비게이션 업계에서 주로 적용하고 A*알고리즘보다 최적 경로 탐색을 보장하면서 탐색시간을 거의 절반으로 줄일 수 있는 양방향 탐색(Bidirectional Dijkstra Algorithm)을 자세히 알아보고자 한다. 참고로 Dijkstra Algorithm에 대해 이해가 필요하다면…

Read More Read More

Implementing Mutable PriorityQueue

Implementing Mutable PriorityQueue

내비게이션 경로탐색 알고리즘으로 가장 잘 알려져 있고 많이 이용하는 알고리즘이 Dijkstra 알고리즘이다. 알고리즘 수행 결과로 만들어진 경로는 최단거리를 제외하면 빠른경로/운전하기 편한 경로와 같이 정성적으로 판단하는 부분이 많다. 이와 같은 척도를 제외하면 경로탐색 엔진의 품질을 측정하는 중요한 척도는 경로탐색 과정에서 소요되는 시간일 것이다.  Dijkstra 알고리즘을 이용하면 최적의 경로를 찾긴 하지만 탐색시간이라는 비용을 지불해야 한다. 내비게이션 품질에서 탐색시간이라는 비용을 줄이기 위해 A*와 같이 탐색공간(Search Space)을 줄이는 Heuristic 기법들을 많이 활용하고 있으며 최근에는 개념을 바꿔 전처리(Preprocessing) 단계를 이용하여 좀 더 교통공학적으로 접근하여 탐색속도를 개선하려는…

Read More Read More

연애 한 번 못해 보는 꽃, 水菊과 佛頭花

연애 한 번 못해 보는 꽃, 水菊과 佛頭花

꽃은 원래 사람들이 감상하라고 피는 것이 아니다. 식물의 생식기관으로 수정을 거쳐 자손을 퍼트리기 위한 것이다. 그런데 수정을 하지 못하는 꽃들이 있다. 주변에서 흔히 볼 수 있는 것으로 수국(水菊)과 불두화(佛頭花)가 대표적이다. 이 꽃들은 암술·수술이 없거나 퇴화해 수정을 하지 못한다. 벌이나 나비가 관심을 갖지도 않는다. 연애 한 번 못해 보는 꽃인 셈이다. 수국은 전 세계 화단을 장식하는 대표적인 꽃 중 하나다. 이름에서도 알 수 있듯이 물을 좋아하고 피는 시기도 6~7월 장마철이다. 요즘 꽃집 앞엔 빨리 개화시킨 수국을 전시해 놓은 것을 볼 수…

Read More Read More

수국

수국

둥글둥글한 수국 꽃이 여름을 부른다. 보라색, 하늘색 또는 분홍색이 어우러진 수국의 꽃송이가 마치 둥근 공 같다. 햇볕 잘 드는 따뜻한 곳의 집 대문 앞이나 작은 마당, 혹은 담장 옆에 풍성하고 아름다운 수국이 무리 지어 피어있다. 수국을 만나면 꼭 손으로 만져보고 싶은 충동이 생기는 이유는 뭘까? 요즘에는 공원에서도 흔하게 볼 수 있다.  수국은 범의귀과에 속하는 낙엽지는 나무이다. 꽃을 즐기기 위해 주로 심고 있지만 잎이 너무 무성한 탓에 초본으로 생각하는 이들도 많다. 수국의 고향은 중국이다. 중국에서는 뭉게뭉게 피어나는 수국 꽃송이를 두고 ‘수구화(繡毬花)’라고…

Read More Read More

Rust memory safety explained

Rust memory safety explained

What makes the Rust language one of the best for writing fast, memory-safe applications? Rust’s memory safety features are baked into the language itself. In Rust, behaviors that are not memory-safe are treated not as runtime errors but as compiler errors. Whole classes of problems, like use-after-free(해제된 메모리 접근) error, are syntactically wrong in Rust. This doesn’t mean that code written in Rust is entirely bulletproof or infallible. Some runtime issues, line race conditions, are still the developer’s responsibility. But…

Read More Read More

녹색의 어원

녹색의 어원

In language across the globe, the adjective “green” is etymologically rooted in the verb “to grow”. In free-association studies, participants linked the word “green” to concepts of nature, restfulness, peace, and positivity. Research has shown a brief glimpse of green significantly improved the creativity that people brought to bear on simple tasks. Every year since 1990s we have created more than eight billion new stumps. If we continue to fell healthy trees at this rate, less than six hundred years…

Read More Read More

척보면 딱 아는 벚꽃, 매화, 살구꽃 구별법

척보면 딱 아는 벚꽃, 매화, 살구꽃 구별법

만약 서울에 살고 있는데 동네에서 이미 피어있는 벚꽃을 보았다면? 이는 ‘매화’일 가능성이 크다. 매화는 매실나무의 꽃으로 벚꽃보다 조금 앞선 초봄에 피기 시작한다. 매화는 꽃잎이 붉은색, 흰색 등 다양하다. 이중 흰 꽃잎의 매화는 벚꽃과 비슷하게 생겨 헷갈리기 쉽다. 살구나무 꽃 역시 벚나무와 매실나무 꽃과 비슷하게 생겼다. 세 나무 모두 장미목 장미과 벚나무속에 속한다. 시기적으로 아주 약간 차이가 있을 뿐, 모두 초봄에 잎보다 꽃이 먼저 핀다. 따라서 먼발치에서 보면 세 꽃을 구분하기 어렵지만, 자세히 들여다보면 쉽게 구별할 수 있는 특징이 있다. 세…

Read More Read More

초봄 꽃은 왜 노란색이 많을까

초봄 꽃은 왜 노란색이 많을까

유채 꽃, 영춘화, 산수유, 생강나무, 히어리, 복수초, 개나리, 꽃다지, 민들레, 애기똥풀… 초봄에 피는 이 꽃들의 공통점은 노란색이라는 것이다. 초봄 노란꽃 물결을 보면 겨울이 다 가고 봄이 온 것을 실감할 수 있다. 초봄 꽃집에서 흔히 볼 수 있는 프리지아도 노란색이다. 물론 자주색인 광대나물, 연한 파란색인 큰개불알풀, 흰색인 냉이와 목련 등도 있고 진달래는 연한 붉은색이다. 그렇더라도 체감적으로 초봄에 피는 꽃들은 노란색이 압도적으로 많은 건 사실이다. 왜 초봄 피는 꽃은 노랑색이 많을까. 꽃색이 계절에 따라 일정한 패턴이 있는 것을 느낄 수 있다. 초봄에…

Read More Read More

5월에 흰색 꽃이 많이 피는 까닭은

5월에 흰색 꽃이 많이 피는 까닭은

봄은 노란색으로 찾아와 하얀색으로 마무리된다. 특히 5월은 하얀색의 계절이다.  거리의 가로수로 많이 식재돼 한창 꽃무리를 보여주고 있는 이팝나무와 근처 야산에서 쉽게 발견할 수 있는 아카시나무가 당장 가장 많이 보이는 흰색 봄꽃들이다. 그런데 산으로 눈길을 주면 더 많은 흰 꽃을 만날 수 있다.  산딸기와 산딸나무, 산사나무, 쥐똥나무, 백당나무, 불두화, 층층나무, 때죽나무, 찔레꽃 등 일일이 열거하기 힘들 만큼 5월엔 흰색의 꽃들이 많이 핀다. 이렇게 흰색의 꽃이 많은 이유에 대해서 산림청에서 연전에 그 까닭을 밝힌 바 있다.  결론부터 말하면 이렇다. 이 계절에 피는 꽃들이 압도적으로…

Read More Read More

세 번 놀라게 하는 모과

세 번 놀라게 하는 모과

모과나무는 장미과에 속하는 낙엽성 활엽 교목이다. 모과는 한자 이름 목과(木瓜)에서 나온 이름이다. 잘 익은 노란 열매는 참외와 같이 나무 참외라는 뜻이다. 누구나 모과나무의 열매만을 생각하기 쉽지만 꽃을 보고 배꽃처럼 아름답게 여겨 화리목이라고 하고 화초목·화류목·명려·명사란 이름도 있다. 우리나라 일부 지방에서는 모과를 모개라고 한다. 모과나무는 선입견과는 어울리지 않는 곱디고운 다섯 장의 꽃잎은 수줍은 새색시의 두 볼처럼 붉다. 꽃의 지름이 2.5∼4cm 정도이고 꽃잎은 5개, 수술은 20여 개, 암술머리는 5개로 갈라진다. 잎은 어긋나고 타원형이거나 긴 타원형이고 가장자리에 톱니가 있고 잎 표면은 광택이 있고 털이…

Read More Read More