아래 소스는 옥션의 메뉴와 같이 하위메뉴를 보여주는 샘플소스.

------------------------------------------------------------------------------

 

<style>

table{
font-size:9pt;
font-family:"arial";
}

</style>

 

<!-------------------------------------->


<script type="text/javascript">

var TimeOut         = 300;
var currentLayer    = null;
var currentitem     = null;

var currentLayerNum = 0;
var noClose         = 0;
var closeTimer      = null;

// Open Hidden Layer
function mopen(n)
{
    var l  = document.getElementById("menu"+n);
    var mm = document.getElementById("mmenu"+n);
   
    if(l)
    {
        mcancelclosetime();
        l.style.visibility='visible';

        if(currentLayer && (currentLayerNum != n))
            currentLayer.style.visibility='hidden';

        currentLayer = l;
        currentitem = mm;
        currentLayerNum = n;           
    }
    else if(currentLayer)
    {
        currentLayer.style.visibility='hidden';
        currentLayerNum = 0;
        currentitem = null;
        currentLayer = null;
    }
}

// Turn On Close Timer
function mclosetime()
{
    closeTimer = window.setTimeout(mclose, TimeOut);
}

// Cancel Close Timer
function mcancelclosetime()
{
    if(closeTimer)
    {
        window.clearTimeout(closeTimer);
        closeTimer = null;
    }
}

// Close Showed Layer
function mclose()
{
    if(currentLayer && noClose!=1)
    {
        currentLayer.style.visibility='hidden';
        currentLayerNum = 0;
        currentLayer = null;
        currentitem = null;
    }
    else
    {
        noClose = 0;
    }

    currentLayer = null;
    currentitem = null;
}

// Close Layer Then Click-out
document.onclick = mclose;
</script>
<style>
#dd
{   margin: 0;
    padding: 0}

#dd li
{   margin: 0;
    padding: 0;
    list-style: none;
    float: left;
    font: bold 11px arial}

#dd li a.menu
{   display: block;
    text-align: center;
    background: #BB0A0A; /*메뉴 바탕색*/
    padding: 4px 10px;
    margin: 0 1px 0 0;
    color: #FFF;
    width: 145;
    height: 20px;
    text-decoration: none}

#dd li a.menu:hover
{   background: #FF0000}

.submenu2
{   background: #EAEBD8;
    border: 1px solid #13000A;
    visibility: hidden;
    position: absolute;
    z-index: 3;
 width: 155px;}
 .submenu2 a
    {   display: block;
        font: 11px arial;
        text-align: left;
        text-decoration: none;
        padding: 5px;
        color: #13000A}

    .submenu2 a:hover
    {   background: #FF0000;
        color: #FFF}

.submenu3
{   background: #EAEBD8;
    border: 1px solid #13000A;
    visibility: hidden;
    position: absolute;
    z-index: 3;
 width: 155px;}
 .submenu2 a
    {   display: block;
        font: 11px arial;
        text-align: left;
        text-decoration: none;
        padding: 5px;
        color: #13000A}

    .submenu2 a:hover
    {   background: #FF0000;
        color: #FFF}
</style>
</head>
<body topmargin="0" leftmargin="0" marginheight="0" marginwidth="0">
<table border=0 cellpadding=0 cellspacing=0>
<tr><td>
<table cellpadding=0 cellspacing=0 border=0 width=100%><tr><td><table cellpadding=0 cellspacing=0 border=0  width=1050><tr><td >
<ul id="dd">
    <li>
        <a href="/racing/about/about_1.asp" class="menu" id="mmenu1" onmouseover="mopen(1);" onmouseout="mclosetime();">패션 브랜드 뷰티</a>
        <div class="submenu2" id="menu1" onmouseover="mcancelclosetime()" onmouseout="mclosetime();">
           
   <a href="#">BRAND+</a>
   <a href="#">THE SOHO#</a>
   <a href="#">여성의류</a>
   <a href="#">남성의류</a>
   <a href="#">빅사이즈/시니어</a>
   <a href="#">언더웨어/잠옷</a>
   <a href="#">신발/구두/운동화</a>
   <a href="#">가방/패션잡화</a>
   <a href="#">국내화장품</a>
   <a href="#">해외화장품/향수</a>
   <a href="#">쥬얼리/시계</a>
        </div>
    </li>
 <li><a href="/racing/race_card.asp" class="menu"  id="mmenu2" onmouseover="mopen(2);" onmouseout="mclosetime();">식품 유아용품 </a>
 <div class="submenu2" id="menu2" onmouseover="mcancelclosetime()" onmouseout="mclosetime();">
         <a href="#">쌀/과일/농수축산물</a>
   <a href="#">건강식품/다이어트</a>
   <a href="#">음료/과자/가공식품</a>
   <a href="#">기저귀/분유/이유식</a>
   <a href="#">물티슈/생리대/성인패드</a>
   <a href="#">출산/유아동/임부복</a>
   <a href="#">장난감/교육완구/인형</a>
   <a href="#">유아동의류/신발/가방</a>
        </div>
 </li>

 <li><a href="/racing/jockey/ja_lank.asp" class="menu"id="mmenu3" onmouseover="mopen(3);" onmouseout="mclosetime();">가구 생활 취미</a>
 <div class="submenu2" id="menu3" onmouseover="mcancelclosetime()" onmouseout="mclosetime();">
          <!--  <a href="/racing/jockey/ja_01.asp">Jockey's Profile</a>
            <a href="/racing/tra/tra_01.asp">Trainer's Profile</a>-->
            <a href="#"></a>
   <a href="#"></a>
   <a href="#"></a>
   <a href="#"></a>
   <a href="#"></a>
   <a href="#"></a>
   <a href="#"></a>
        </div>
 </li>

     <li><a href="/racing/horse/horse_info.asp" class="menu"id="mmenu5" onmouseover="mopen(5);" onmouseout="mclosetime();">디지털 가전 컴퓨터</a>
 <div class="submenu2" id="menu5" onmouseover="mcancelclosetime()" onmouseout="mclosetime();">
            <a href="#"></a>
   <a href="#"></a>
   <a href="#"></a>
   <a href="#"></a>
   <a href="#"></a>
   <a href="#"></a>
   <a href="#"></a>
        </div>
 </li>
</ul>
</td></tr></table></td><td valign=top width=100%><img src=/racing/racing_img/top_3.jpg height=22 width=100%></td></tr></table>

'Any Notion > Making Homepage' 카테고리의 다른 글

자바로 구현하는 상단 메뉴바 샘플 소스  (0) 2013.05.20
Posted by 도닦는공돌이

댓글을 달아 주세요

OSI 7 Layer는 왜 만들어 졌을까?


OSI (Open System Interconnection) 7 Layes...왜 귀찮게 7계층으로 나누었을까?... 그냥 한번에 통신하면 되지..왜 나누었을까?...


7계층은 아래와 같다.


Application


Presentation


Session


Transport


Network


Data Link


Physical


"애-프-스-트-엔-들-피"


이유> 한마디로 "통신의 편리"를 위해서 나누어 놓은 것이다! 단계별접근..심플하지 아니한가요?..


1) 데이터의 흐름이 딱 보인다.


2) 문제 해결이 쉽다 (hierarchical Layer)


3) 표준화를 했기에 여러 브랜드의 상품사용이 가능하다


 예: 데이터케이블 or 허브 - PHY계층

      스위치나 브리지 - Data계층

      라우터 - Network계층


--------------------------------------------------------------------------------------------------------

추가적인 아래의 3계층에 대한 설명


PHY : 전기적,기계적인 특성을 이용하는 계층이다. 즉, 통신 케이블로 데이터를 전송한다. 0 1 0 1 0 1...

이것은 전기적으로 ON/OFF의 반복을 의미하는 것이다. 단지 데이터만을 전달하는 계층이다.

대표적인 통신장비로는 - 케이블, 리피터, 허브 등이 존재한다.


 *리피터 : 장거리 전송 회선의 중간에 삽입하여 신호의 증폭, 파형의 정형 등을 하는 중계장치.


DAT : 안전한 정보전달을 위해서 PHY단을 통하여 송수신 되는 정보의 오류와 흐름을 관리하는 역할을 한다. 

즉, 통신에서 오류검출, 재전송시도, MAC Address 를 통한 통신 을 할수있게 해준다. 전송되는 데이터의 단위는 "프레임"

이라고 부른다.

대표적인 장비로는 - 브리지, 스위치 등이 존재한다.


 *브리지 : 두 개의 LAN을 연결한다는 점에서 리피터(Reapeter)와 같을 수도 있지만, 리피터가 모든 신호를 한꺼번에 보내서 통신량을 증가시키지만, 브리지는 통신량을 조정할 수 있다. 즉 통신하고자 하는 노드가 같은 통신망 안에 있을 경우는 데이터가 다른 통신망으로 전달되지 않도록 한다. 또한 리피터와 마찬가지로 데이터를 재생성할 수 있다는 점에서는 같지만 데이터를 재생성하는 위치가 다르다.


브리지는 ① 통신망의 범위와 길이를 확장할 때, ② 통신망에 더욱 많은 컴퓨터들을 연결시킬 때, ③ 통신망에 과다하게 연결된 컴퓨터들로 인한 병목현상을 줄이고자 할 때, ④ 서로 다른 물리적 매체(통신선로)를 구성된 통신망으로 연결할 때, ⑤ 이더넷(Ethernet)과 토큰링(Token Ring) 같은 서로 다른 통신망 구조의 통신망을 연결할 때 등에 사용할 수 있다. 
일반적으로는 로컬(Local) 브리지와 원격(Remote) 브리지로 구분한다. 로컬 브리지는 말 그대로 동일지역 내에서 다수의 LAN을 서로 연결할 때 쓰이는 것이고, 원격 브리지는 LAN과 광역통신망(WAN)을 연결하는 것으로 지역이 다르고 멀리 떨어져 있는 LAN을 연결하는 것이다. 지금은 라우터가 원격 브리지의 기능을 대신하고 있다.
[출처] 브리지 | 두산백과


NET : 데이터를 목적지까지 가장 빠르고 안전하게 전달하는 역할을 가지고 있다. =  이과정을 라우팅이라 함.

즉, 경로를 선택 - 주소를 정하고 - 경로에 따라 패킷전송을 해주는 것이다. 

대표적인 장비로는 - 라우터이며 스위치중에서도 라우팅기능을 가진 장비가 존재한다.


Posted by 도닦는공돌이

댓글을 달아 주세요

A CAUTIONARY PERSPECTIVE ON CROSS-LAYER DESIGN


VIKAS KAWADIA, BBN TECHNOLOGIES P. R. KUMAR, UNIVERSITY OF ILLINOIS AT URBANA-CHAMPAIGN



Kawadia, V.; Kumar, P.R.

Wireless Communications, IEEE [see also IEEE Personal Communications]

Volume: 12  Issue: 1  Feb. 2005 

Page(s): 3- 11 



 작성중..



'N.&C. > CrossLayer' 카테고리의 다른 글

[R.Papers] A CAUTIONARY PERSPECTIVE ON CROSS-LAYER DESIGN  (0) 2013.05.20
[Cross_Layer] What is a notion?  (0) 2013.05.20
Posted by 도닦는공돌이

댓글을 달아 주세요

예시)


For---------------------------------------------------


It's easy for me to read this book 


It is difficult for him to finish the work in a week 


It is not safe for the kids to play on the street 



Of--------------------------------------------------


It was wise of you to refuse his offer 


It is very cruel of him to do such a thing. 


It was careless of her to break the dishes 


It's foolish of him to say such a thing. 




Posted by 도닦는공돌이

댓글을 달아 주세요

Notion::


The existing networks layer consists of OSI 7 layers. The rule is, each layer work independent.


The Cross layer, however, even break the rules of such a hierarchy, a independent property of OSI 7.


That is, the cross layer means that specific information send to a non-adjacent layer, or shared variables to share In 


order to improve the efficiency in communication,


Why need::


It help the wireless communication that based on a existing OSI 7 layer,  to improve about efficiency. Because the 


wireless communication is not good in existing OSI 7 layer.


2 problems::


1) small scale channel variations


2) Large-scale channel variation


Therefore, we need a another architecture for wireless communication compared with OSI 7 layers. 

'N.&C. > CrossLayer' 카테고리의 다른 글

[R.Papers] A CAUTIONARY PERSPECTIVE ON CROSS-LAYER DESIGN  (0) 2013.05.20
[Cross_Layer] What is a notion?  (0) 2013.05.20
Posted by 도닦는공돌이

댓글을 달아 주세요

출처 : http://blog.naver.com/zizz37?Redirect=Log&logNo=70148414094

Cellular Network


 Cellular phone, 휴대전화를 10년 가까이 사용하고 컴퓨터공학과 학생으로 네트워크 관련된 수업을 들었음에도 불구하고 이 휴대전화의 통신 구조가 어떻게 구성되어있는지 부끄럽게도 아는 바가 거의 없어 개념과 구조를 조사해보고자 한다.


 Cellular Network(Mobile Network)는 이동통신망에서 Cell이라 불리는 하나의 기지국이 포괄하는 육각형의 지역(세포모양)으로 분포된 Radio Network이다. Cellular phone이라는 말도 여기서 유래하였다. 제한된 주파수 대역을 다수의 사용자가 이용하도록 하기 위해서 주파수 대역을 달리하는 몇 종류의 셀을 조합하여 서비스 지역을 확대할 수 있다.  뿐만 아니라 대부분의 공공 또는 민간네트워크에서 사용 될 수 있을 정도로 유연하고, 증가된 용량, 감소된 전력, 확장된 서비스영역, 다른 신호의 간섭 축소 등의 장점이 있다.


 왜 세포 구조인가? 

 초기 이동통신기술은 모두 한정된 무선 주파수를 작게 나누어서 여러 명의 가입자들에게 사용하도록 하는 주파수 분할접속 방식(FDMA : Frequency Division Multiple Access)이란 기술이 사용되었다. 무선 주파수는 특성상 근접한 주파수 대역간에는 간섭 현상을 발생시키는데 이 문제는 통화 품질에 중요한 영향을 미치기 때문에 여러 개의 세분화된 주파수들간의 간섭을 최소화하면서도, 전파가 도달하지 않는 지역(음영지역)을 최소화하기 위해 개발된 것이 바로 육각형 모양의 세포모양으로 기지국의 커버리지를 구분하는 것이다. 아래 그림과 같이 사업자들은 사용자가 늘어남에 따라 기지국을 추가로 구축할 때 인접 주파수와는 다른 주파수를 사용하는 기지국들을 주변에 설치하여 주파수 간섭현상을 최소화하면서 음영지역도 최소하게 기지국 위치를 설계한다.






Cells

 Cellular System의 기본적인 지리적 단위로 육각형으로 표시된다. 실제 지형에서는 자연

환경 및 구조물로 인해 완벽한 육각형태는 아니다.


Clusters

 Cluster는 Cell들의 Group을 의미한다. 한 Cluster내에서 채널은 재사용

될 수 없다. 오른쪽 그림에서 진한 선으로 이어진 부분을 한 그룹으로 볼 수 있다.


Frequency Reuse

 동일한 주파수로 이루어진 Cell들의 Group, Cluster를 적당한 거리를 유지하여 재사용 할 수 있다.



Cell Splitting

 도시와 농촌의 인구 수가 차이가 나는 것과 같이 지역마다 통신 사용량이 차이가 나게 되고 이로 인해 도시 같은 경우 heavy-traffic이 발생 하는데 이를 해결하기 위해서 Cell Splitting을 이용하여 traffic이 몰리는 곳은 Cell을 더 세분화하여 나눔으로써 이 같은 문제를 해결하는 방법이다.


Handoff(Handover)

 모바일 장치가 이동함에 따라 기존에 있던 Cell의 서비스구역에서 벗어나게 되는 경우가 생기는데 이 때 신호가 약해지면 기존의 기지국이 이동하려는 기지국에 Handoff를 요청하여 자연스럽게 주파수 채널을 변경함으로써 이동중 통화가 끊기거나 방해받지 않도록 하는 기능이다.

 


 이로써 Cellular Network의 간단한 개념과 망구조, 그리고 기능들을 살펴 보았는데 한글로 된 참고자료가 별로 없어서 이해가 부족하다고 생각되지만 어렴풋이라도 알게 된 것 같다. 기회가 된다면 좀 더 관심을 가지고 공부해 보아야겠다.




# Reference

http://en.wikipedia.org/wiki/Cellular_network

http://ko.wikipedia.org/wiki/%EC%85%80_(%EC%9D%B4%EB%8F%99_%ED%86%B5%EC%8B%A0)

http://www.gsmfavorites.com/documents/introduction/gsm/

http://blog.naver.com/cache798?Redirect=Log&logNo=130009018143

[출처] Cellular Network|작성자 지쯔



Posted by 도닦는공돌이

댓글을 달아 주세요

A few days ago, I learned the notion of FSM in a major class. This means kind of expression tool to show system or any-state, when we want to explain the complicated situation or CS algorithm. This is a contents below in my textbook for easily understanding.


THE ONLY IN DISCRETE DYNAMICS,


1.The Notion of State

: the state of a system is its condition at a particular point in time.


we can define the state to be an encoding of everything about the past that has an effect on the system’s reaction to current or future inputs. The state is a summary of the past.


2.Then, What is a Finite-State Machines??..'제한된 상태들의 변화를 순차적으로 나타내는 장치'

:

A state machine is a model of a system with discrete dynamics that at each reaction

maps valuations of the inputs to valuations of the outputs, where the map may depend on

its current state.

Therefore, A finite-state machine (FSM) is a state machine where the set States of possible states is finite.

 

States = {State1; State2; State3}


3.Transitions


A transition is represented as a curved arrow, as shown in Figure 3.3.



The guard determines whether the transition may be taken on a reaction. The action specifies what outputs are produced on each reaction. In other words, the guard is condition for progressing next step(state) and the action means the an assignment of values (or absent) to the output ports.



EXAMPLE>


The transition is a symbol of arrow to move to next state, and the 'enabled' means can be a next state, when the conditions (such as P1,P2) is satisfied. (present(P) means there is a event at that time.) And also, the present has the meaning of true, the absent is false.

**Pure signal is input which has both a absent and present (event) such as UP,DOWN.


above example, The transition from state 0 to 1 has a guard written as up^:down. This is a predicate that evaluates to true when up is present and down is absent. 

------------------------------------------------------

UP : the event like a "come in 1 vehicle" (present),  DOWN : the event like a "come out 1 vehicle" (present)

if the absent occur, it means there isn't event.


These are standard logical operators where present is taken as a synonym for true and absent as a synonym for false. The symbol : represents logical negation. The operator ^ is logical conjunction (logical AND), and _ is logical disjunction (logical OR).





On a transition, the action (which is the portion after the slash) specifies the resulting valuation on the output ports when a transition is taken. If q1 and q2 are pure outputs and q3 has type N, then the following are examples of valid actions:

 


Any output port that is not mentioned in a transition that is taken is implicitly absent. (1Line)

When assigning a value to an output port, we use the notation name :=value to distinguish the assignment from a predicate, which would be written name = value. As in Figure 3.4, if there is only one output, then the assignment need not mention the port name.


::A default transition that need not be shown explicitly because it returns to the same state and produces no output.


The reaction is not shown explicitly in the diagram. Sometimes it is useful to emphasize such reactions, in which case they can be shown explicitly. A convenient way to do this is using a default transition, shown in Figure 3.6. In that figure, the default transition is denoted with dashed lines and is labeled with “true / ”.












'Nobody tells you about.. > RTOS' 카테고리의 다른 글

[Overview] OSEK  (0) 2013.06.04
[Embedded Systems] FSM :: Finite-State Machines  (0) 2013.05.17
Posted by 도닦는공돌이

댓글을 달아 주세요

some expressions..

English is .. 2013. 5. 17. 13:16 |

sooner rather than later

단어장 저장

 
차라리 일찌감치

We urged them to sort out the problem sooner rather than later.예문 발음듣기

우리는 그들에게 차라리 일찌감치 그 문제를 해결하라고 촉구했다.


  • [일반]hope and pray that that day is reached sooner rather than later.예문 발음듣기 (출처:Hansard)

    [이용자 참여 번역문] 나는 차라리 일찌감치 그날이 되기를 희망하고 기도한다 (번역:gorainge***)

  • [일반]Health care reform may be on the way sooner rather than later.예문 발음듣기 (출처:YBM)

    건강보험개혁은 더 늦기 전에 시작해야 합니다.

  • [일반]Democrats all correspond that there should be a redeployment starting sooner rather than later.예문 발음듣기(출처:YBM)

    민주당은 더 늦기 전에 조속히 미군을 철수시켜야 한다는데 의견의 일치를 보고 있습니다.

  • [일반]We urged them to sort out the problem sooner rather than later.예문 발음듣기 (출처:옥스포드)

    우리는 그들에게 차라리 일찌감치 그 문제를 해결하라고 촉구했다.

  • [일반]Hopefully her work will lead to hard results and freedom for the Burmese people sooner rather than later.예문 발음듣기 (출처:타임즈코어)

    조만간 그녀의 활동이 확실한 결과와 버마 사람들의 자유로 이어지기를 바란다.

Posted by 도닦는공돌이

댓글을 달아 주세요

마르코프체인(Markov Chain)   AI / Tip  2010/02/02 01:58

원문출처 :  http://blog.naver.com/ojs83/120100904784   ::  http://happyengine.tistory.com/


마르코프체인(Markov Chain)은 마르코프성질(Markov Property)을 지닌 이산 확률과정(discrete-time stochastic process)을 의미한다.

 

확률과정이란 무엇인가?

확률과정(stochastic process or random process)이란 어떤 확률분포에 의해 벌어지는 일련의 연속현상들을 수학적으로 모델링하는데 사용되는 개념이다.


가장 간단한 확률과정을 예로 들자면 베르누이과정이 있겠다. 베르누이과정(Bernoulli Process)은 독립적으로 수행되며 오로지 두 결과값만을 갖는 사건이 연속적으로 발생할때, 그 결과값의 열을 모델링하는데 사용된다. 베르누이실험(Bernoulli trial)이라는 것이 "결과가 랜덤하게 둘 중 하나만 나오는 실험"이고, 베르누이 랜덤변수(Bernoulli random variable)이라는것이 베르누이실험의 결과 중 하나는 1로 하나는 0으로 매핑시켜주는 함수니까, 베르누이과정을 좀 더 수학스럽게 얘기하자면, "베르누이 랜덤변수 값의 열" 이라고 할 수 있겠다.

그럼 베르누이과정으로는 무엇을 모델링할 수 있을까? 동전던지기의 결과열이 그 대표적인 예가 되겠다. "앞뒤뒤앞앞뒤앞뒤.." 와 같은 열. 이런 열은 어떤 모델에 의해 생성이 되었냐는 물음에, 바로 "베르누이과정"에 의해 생성되었다고 하면 된다는 얘기다. 이 베르누이 과정에 의해 생성되는 열은 "앞뒤뒤앞앞뒤앞뒤..."가 될 수도 있고, "뒤뒤앞뒤앞뒤앞..."이 될 수도 있겠다.


이보다 아주 조금 복잡한 확률과정을 들자면, 포아송과정(Poisson Process)가 있겠다. 이 과정은 시간축 위에서 독립적으로 랜덤하게 발생하는 사건들의 열을 의미한다. 예를 들자면, 어떤 서버에 있는 홈페이지가 방문되는 사건들이나, 내 전화기에 걸려오는 전화들 같은 것들이 되겠다.또 조금만 생각을 달리하면, 책한권에 있는 오타들 도 될 수 있다. 위에서 예를 든 동전던지기의 경우, 만일 "앞"이 나오는 사건들의 열을 생각한다면, 이것도 포아송과정이다.

왜 이것들이 포아송과정인가? 모두 얘기하자면 매우 수학적이 될것같다. 간단히만 얘기하자면, 몇가지 사소한 조건만 만족할 경우, 이 포아송과정에 의해 발생하는 사건들에는 포아송분포를 따르는 특징이 있기 때문이다. 무엇이 포아송 분포를 따르냐 하면, 바로 특정 시간동안에 발생하는 사건의 수이다.

예를 들어, 10분동안 홈페이지가 방문될 회수가 어떤 확률분포를 따를지 곰곰히 생각해보자. 평균잡아 10분에 5번정도 방문되더라 하는 기존의 계산이 있었다면, 아마도 5번 방문될 확률이 제일 클 것이다. 4번이나 6번은 그보다 조금 작고, 3번이나 7번은 좀 더 작고, 그럴것이다. 이 분포가 포아송분포를 따름이 증명이 되어 있다는 얘기다

베르누이과정이 이산 확률과정인데 반해 포아송과정은 연속 확률과정이다. 베르누이과정에서는 시간의 개념이 1회,2회,3회와 같이 이산적이지만, 포아송과정에서는 0초부터 무한대까지 연속공간의 특정위치이기 때문이다.

 

그럼 이제 마르코프체인을 알아보도록 하자.

마르코프체인도 어쨌건 이산확률과정이므로 뭔가 1회,2회,3회에 발생하는 사건의 열을 의미하겠다. 중요한건 마르코프성질을 지닌다는 것이다. 그럼 마르코프성질이란 무엇인가? 마르코프성질이란 n+1회의 상태(사건의 결과)가 오로지 n회에서의 상태(사건의 결과)에만 영향을 받는것을 의미한다. 결과가 랜덤하게 나오는 동전던지기는 분명 마르코프성질을 따르지 않는다. 지금 던졌을때 나온 결과가 다음 던졌을때의 결과에 전혀 영향을 주지 않기 때문이다.

그러나 세상에는 그렇게 해석될 수 없는 "사건의 열"이 더 많다. 예를 들어, 1일날씨, 2일날씨, 3일날씨 라던가, 아니면 지금 이 글에서 첫번째단어,두번째단어, 세번째단어 등을 생각해보자. 2일의 날씨는 1일의 날씨와 완전히 무관하게 나타나는 현상일까? 아니면 (말이 되는 문장을 쓰지는 않는다고 가정할 때) 다음에 쓸 단어는 바로 이전 단어와 전혀 독립적으로 나타날까? 그렇지 않다. 그렇다고 위에서 든 두가지 예가 마르코프성질을 지니고 있다고 단정하는 것은 아니다. 3일의 날씨가 2일의 날씨와만 상관있다고 할 수 있지도 않고, 다음에 쓸 단어가, 몇단어 이전의 단어와 상관이 있을 수도 있는 것이기 때문이다. 그러나 이러한 현상들을 단순하게 모델링할때는 마르코프체인이라고 가정한다. 이러한 가정이 실제로 모델을 매우 단순하게 만들며, 때로는 이렇게 단순하게 만들어진 모델이 엄청난 위력을 발휘하기도 한다.


마르코프체인을 약간 다르게 해석하자면, n개의 상태가 있고, 그 상태들 중 임의의 상태로 시간에 따라 변해가는 과정을 생각할 수 있다. 예를 들어 상태가 {R, G, B} 이렇게 세개가 있다면, 첫번째는 G, 두번째는 R, 세번째는 G, 네번째는 G, 다섯번째는 B, 여섯번째는 B, 일곱번째는 R ... 이렇게 말이다.

물론 마르코프 성질을 지니니까, 두번째에 어떤 상태를 가질지는 첫번째 상태가 무엇이었냐에 따라 결정되고, 세번째는 두번째 상태에, 네번째는 세번째 상태에 의해 결정된다. 여기서 주의할것이 있다. 위 예를 보면, 첫번째 상태는 G였고 두번째상태는 R인 경우도 있고, 세번째 상태가 G일때 네번째 상태가 G인 경우도 있다. 즉, 마르코프체인은 "상태가 G일때 무조건 X상태로 간다" 이렇게 만들어지는게 아니라, "상태가 G일때 다음 상태가 R일 확률은 얼마, G일 확률은 얼마, B일 확률은 얼마" 이런식으로 정의된다.

따라서, 마르코프체인에서는 "상태전이확률"(state transition probability) 행렬이 핵심이 되고, 이 확률들을 사용하면 아래와 같은 다이어그램이 그려진다. 




이 게 머냐하면, 아주 간단한 영어문장뼈대의 생성과정을 Markov Chain으로 묘사한 그림이다. <start>는 시작상태, ART는 관사상태, V는 동사상태, N은 명사상태, P는 전치사상태이다. 즉 <start>상태에서 관사상태와 명사상태로 갈 확률이 각각 71%, 29%이고, 명사상태에서 다시명사, 동사, 전치사상태로 갈 확률은 각각 13%, 44%, 46% 라는거다. 이 모형에 따르면, 아주 여러가지 형태의 문장들이 생성될 수 있을 것이다. 이 모형은 음성인식과 자연언어처리의 품사태깅(각 형태소에 적절한 품사를 자동으로 부착하는 작업)의 근간으로 아주 오랫동안 사용되어져왔으며, 지금도 사용되고 있다. 시간이 되면 Hidden Markov Model(은닉 마르코프 모형)이라고 하는 잘 알려진 모형에 대해서도 한번 써보려 한다.


여하간, 중요한 수식 등 자세한건 좀 더 인터넷을 찾아보면 공부할 수 있을 것이고...


그렇다면, 마르코프체인과 구글의 페이지랭크는 어떤 관계가 있을까?


이 제 페이지랭크와 이 마코프체인의 관계를 생각해보자. 그러기 위해 지구상에 존재하는 모든 웹페이지들과 그 페이지간에 걸려있는 링크들을 위의 다이어그램에 매핑시켜보자. 그리고 임의의 한 페이지에서 링크를 따라 아무데로나 페이지를 따라가는 Random Surfer(랜덤서퍼)를 생각해보자. 링크에 위에서처럼 확률값이 붙어야 하는데, 확률값은 대충 준다. 어떻게 주냐면, 어떤 페이지에 링크가 2개면 각 링크를 따라 다른페이지로 갈 확률은 각각 50%, 50%라고 하고, 10개면 10%, 10%..., 10% 라고 그냥 하자. 


대충 저 위의 다이어그램하고 매핑이 되는지?


페이지랭크는 웹을 이런 단순한 구조로 추상화하는데서 시작됐다. 웹을 각 페이지가 노드이고 링크가 간선이며, 간선위의 확률값은 그 간선이 출발한 노드(페이지)에 위치한 링크수분의 1로 단정짓고, 일단 마르코프 체인을 그린거다. 그리고 어떤 문제를 푸냐하면, 이런 마르코프체인 위에서 Random Surfer가 마구 이동을 해대다가 누군가 Stop! 이라 외쳤을때, 각 노드(페이지)에 위치할 확률을 구한것이다. 그 값이 제일 높은 노드가 바로 인터넷상에서 가장 권위있는 페이지라는 것이다!


이렇게 한번 예를 들어보자. 나랑 내 친구 철수랑 그의 친구 영희랑 그의 오빠 영철이랑 네명이 각각 홈페이지를 갖고 있고 거기에 네이버 홈페이지, 이렇게 딱 다섯개의 웹페이지가 있는 공간을 생각해보자. 상식적으로 이 다섯개의 웹페이지에 링크들이 어떻게 서로가 서로를 가리키고 있을지 가정해보고, Random Surfer를 그 마르코프체인위에 올려놓고 돌아다니라고 해보자. 그리고 몇분후에 Stop했을때, 그 Random Surfer가 어디있을 가능성이 제일 클것같은가?


거의 예외없이 네이버홈페이지라 생각할 것이다. 왜냐하면 머리속에 그린 그림은, 네이버가 제일 화살표를 많이 받고 있었기 때문일 것이다. 대충 그렇다. 근데 꼭 많이 받고 있는다고 거기에 머물 확률이 제일 큰건 아니다. 여기서부터 이제 임의의 순간에 각 페이지에 머물러 있을 확률을 구하기 위한 몇가지 수학공식들이 나오게 되는 것이다. 






좀 더 수식적으로 깊이 이해하려면, 구글의 창업자 중 한명인 세르게이 브린이 직접 쓴 논문 (번역판) 이나, 기타 여러가지 강의자료 등을 직접 구해 읽어보는게 제일 좋을것이다. 


세 르게이 브린의 논문에는 Markov Chain이라는 용어가 언급도 되어 있지 않은데, 많은 사람들은 브린이 논문을 쓸 당시 Markov Chain에 대해서는 모르고 있었다는 얘기가 있다. 바꿔 말하면, Markov Chain에 대해 열심히 연구하던 사람들은 따로 있고, 세르게이는 그와 똑같은 생각을 해서, 시스템을 만들고 막대한 부를 거머쥐었다고나 할까~





Posted by 도닦는공돌이

댓글을 달아 주세요

  1. L 2014.09.16 13:06 Address Modify/Delete Reply

    설명이 깔끔하고 명쾌합니다!! 복잡한 내용을 쉽게 이해하고 갑니다

  2. aaa 2015.01.11 03:55 Address Modify/Delete Reply

    감사여. 명쾌하게 이해되네요.

  3. 2016.04.20 17:42 Address Modify/Delete Reply

    명쾌하십니다. 설명 진짜 잘하시네요

  4. 조원주 2016.08.05 16:40 Address Modify/Delete Reply

    정말 감사합니다.. 은닉마코프모델을 찾다가 들어왔는데 설명에 감복하고 가요

  5. 손동훈 2017.06.13 23:23 Address Modify/Delete Reply

    저같은 스타터에게 유용한 글입니다. 추천합니다.

  6. 하승우 2018.12.24 16:07 Address Modify/Delete Reply

    감사합니다. 논문에서 갑자기 마르코프 모델이라는게 나와서 무슨말인지 알 수가 없었는데 명쾌하게 설명해 주셔서 이해가 됩니다.

whether or not

English is .. 2013. 5. 3. 15:21 |

  • 인지 아닌지~  , 이든 아니든간에,  (추측의 느낌)


    [학문]Whether or not this is literally happening though is questionable.예문 발음듣기 (출처:Example Essays)

    [이용자 참여 번역문] 그 일이 정말로 일어났는지 아닌지는 의심스럽다. (번역:marina_p***)

  • [학문]Time Travel theorists have argued for years whether or not time travel is possible.예문 발음듣기(출처:Example Essays)

    [이용자 참여 번역문] 시간 여행 이론가들은 시간 여행이 가능한지 아닌지에 대해 몇 년 동안 논쟁해왔다. (번역:vivian***)

  • [예술/연예]Exactly whether or not that is good enough depends on who you are.예문 발음듣기 (출처:Rotten Tomatoes)

    [이용자 참여 번역문] 정확하게 그것이 충분히 훌륭한지 아닌지는 당신이 누구인지에 달려있다. (번역:nsh9***)

  • [학문]The question is whether or not they are using performance enhancing drugs.예문 발음듣기 (출처:Example Essays)

    [이용자 참여 번역문] 문제는 그들이 경기력 향상 약물을 사용했는지 아닌지이다. (번역:jey***)

  • [일반]would like to ask whether or not that is your experience.예문 발음듣기 (출처:Hansard)

    [이용자 참여 번역문] 난 그것이 너희 경험인지 아닌지 묻고 싶다. (번역:nsh9***)

  • [일반]believe it is worth considering whether or not that is still valid.예문 발음듣기 (출처:Hansard)

    [이용자 참여 번역문] 나는 그것이 여전히 타당한것인지 고려할 가치가 있다고 믿는다. (번역:nsh9***)

  • [일반]Whether or not to move overseas was a cross the Rubicon for the family.예문 발음듣기 (출처:YBM)

    해외로 이주할 것인가 말 것인가가 그 가족에게는 매우 중대한 결정이었다.

  • [일반]One can argue whether or not that is right or wrong.예문 발음듣기 (출처:Hansard)

    [이용자 참여 번역문] 사람은 그것이 올바른지 또는 잘못된 것인지 주장 할 수 있다. (번역:nsh9***)

  • [일반]Whether or not he comes(=Whether he comes or not), the result will be the same.예문 발음듣기 (출처:두산 동아)

    그가 오든 안 오든 결과는 같을 것이다.

  • [일반]It is arguable whether or not viruses are living organisms.예문 발음듣기 (출처:YBM)

    바이러스가 생물이냐 아니냐 하는 것은 논쟁의 여지가 있다.

'English is ..' 카테고리의 다른 글

To 부정사의 의미상의 주어  (0) 2013.05.20
some expressions..  (0) 2013.05.17
whether or not  (0) 2013.05.03
by + Which 용법  (0) 2013.04.23
Which 관계대명사적 용법  (0) 2012.11.03
[관계대명사] that과 which/who의 사용법  (0) 2012.11.02
Posted by 도닦는공돌이

댓글을 달아 주세요