Algorithm for identifying Markov chain communicating classes

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
2
down vote

favorite












Let $P$ be a transition matrix of a time-homogeneous Markov chain with at least one closed communication class.



Is there an algorithm / optimization problem that outputs the identification of the communication classes?
For example, if $$P=left(beginmatrix 0.5 &0 &0.5 &0 \ 0 &0.5 &0 &0.5 \ 0.5 &0 &0.5 &0 \ 0 &0.5 &0 &0.5 endmatrixright)$$
Then the output will be $(1,3),(2,4)$.



Thank you.







share|cite|improve this question
















  • 2




    math.wustl.edu/~feres/Math450Lect04.pdf
    – d.k.o.
    Jul 2 '15 at 8:31






  • 2




    I think you can take a look here.
    – thanasissdr
    Jul 2 '15 at 8:32






  • 2




    Also, if you use Matlab, you can take a look here, as well.
    – thanasissdr
    Jul 2 '15 at 8:39















up vote
2
down vote

favorite












Let $P$ be a transition matrix of a time-homogeneous Markov chain with at least one closed communication class.



Is there an algorithm / optimization problem that outputs the identification of the communication classes?
For example, if $$P=left(beginmatrix 0.5 &0 &0.5 &0 \ 0 &0.5 &0 &0.5 \ 0.5 &0 &0.5 &0 \ 0 &0.5 &0 &0.5 endmatrixright)$$
Then the output will be $(1,3),(2,4)$.



Thank you.







share|cite|improve this question
















  • 2




    math.wustl.edu/~feres/Math450Lect04.pdf
    – d.k.o.
    Jul 2 '15 at 8:31






  • 2




    I think you can take a look here.
    – thanasissdr
    Jul 2 '15 at 8:32






  • 2




    Also, if you use Matlab, you can take a look here, as well.
    – thanasissdr
    Jul 2 '15 at 8:39













up vote
2
down vote

favorite









up vote
2
down vote

favorite











Let $P$ be a transition matrix of a time-homogeneous Markov chain with at least one closed communication class.



Is there an algorithm / optimization problem that outputs the identification of the communication classes?
For example, if $$P=left(beginmatrix 0.5 &0 &0.5 &0 \ 0 &0.5 &0 &0.5 \ 0.5 &0 &0.5 &0 \ 0 &0.5 &0 &0.5 endmatrixright)$$
Then the output will be $(1,3),(2,4)$.



Thank you.







share|cite|improve this question












Let $P$ be a transition matrix of a time-homogeneous Markov chain with at least one closed communication class.



Is there an algorithm / optimization problem that outputs the identification of the communication classes?
For example, if $$P=left(beginmatrix 0.5 &0 &0.5 &0 \ 0 &0.5 &0 &0.5 \ 0.5 &0 &0.5 &0 \ 0 &0.5 &0 &0.5 endmatrixright)$$
Then the output will be $(1,3),(2,4)$.



Thank you.









share|cite|improve this question











share|cite|improve this question




share|cite|improve this question










asked Jul 2 '15 at 8:15









yoki

741516




741516







  • 2




    math.wustl.edu/~feres/Math450Lect04.pdf
    – d.k.o.
    Jul 2 '15 at 8:31






  • 2




    I think you can take a look here.
    – thanasissdr
    Jul 2 '15 at 8:32






  • 2




    Also, if you use Matlab, you can take a look here, as well.
    – thanasissdr
    Jul 2 '15 at 8:39













  • 2




    math.wustl.edu/~feres/Math450Lect04.pdf
    – d.k.o.
    Jul 2 '15 at 8:31






  • 2




    I think you can take a look here.
    – thanasissdr
    Jul 2 '15 at 8:32






  • 2




    Also, if you use Matlab, you can take a look here, as well.
    – thanasissdr
    Jul 2 '15 at 8:39








2




2




math.wustl.edu/~feres/Math450Lect04.pdf
– d.k.o.
Jul 2 '15 at 8:31




math.wustl.edu/~feres/Math450Lect04.pdf
– d.k.o.
Jul 2 '15 at 8:31




2




2




I think you can take a look here.
– thanasissdr
Jul 2 '15 at 8:32




I think you can take a look here.
– thanasissdr
Jul 2 '15 at 8:32




2




2




Also, if you use Matlab, you can take a look here, as well.
– thanasissdr
Jul 2 '15 at 8:39





Also, if you use Matlab, you can take a look here, as well.
– thanasissdr
Jul 2 '15 at 8:39











1 Answer
1






active

oldest

votes

















up vote
0
down vote













Yeah, there is one although the algorithm is really more defined as a graphing problem. That's the case since probability theory really isn't needed to identify communication classes. The only thing you need to know is whether or not jumps between states can occur in both directions.



You could replace the P matrix you gave with a binary matrix, just replace all non-zero entries with 1 and leave all zero entries as zero.



You would then do something like below to add to a communication class after you've established a basic communication class. Each state is in a communication class so you can start from there. You'll end up with redundancies this way but you could then just pick only the unique communication classes for your output.



for all states j in the matrix 

for all states i in the communication class

if P(i,j) * P(j,i) > 0 then

add j to the communication class

end if

next i

next j


After you've computed the Markov Chain's communication classes it's then useful to
label each class as either transient or recurrent, if either exists in the Markov Chain, and to then form a block matrix that's useful to compute absorption probabilities and expected number of hitting times for transient states.



The form of the block matrix is ordered so that the recurrent states are placed before the transient states in the rows and columns.



Image of a generic Markov Chain being reconfigured into a useful block matrix. The grey matrix is the original matrix and the colored one is the block matrix






share|cite|improve this answer




















    Your Answer




    StackExchange.ifUsing("editor", function ()
    return StackExchange.using("mathjaxEditing", function ()
    StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
    StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
    );
    );
    , "mathjax-editing");

    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "69"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: false,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    noCode: true, onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );








     

    draft saved


    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f1346760%2falgorithm-for-identifying-markov-chain-communicating-classes%23new-answer', 'question_page');

    );

    Post as a guest






























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    0
    down vote













    Yeah, there is one although the algorithm is really more defined as a graphing problem. That's the case since probability theory really isn't needed to identify communication classes. The only thing you need to know is whether or not jumps between states can occur in both directions.



    You could replace the P matrix you gave with a binary matrix, just replace all non-zero entries with 1 and leave all zero entries as zero.



    You would then do something like below to add to a communication class after you've established a basic communication class. Each state is in a communication class so you can start from there. You'll end up with redundancies this way but you could then just pick only the unique communication classes for your output.



    for all states j in the matrix 

    for all states i in the communication class

    if P(i,j) * P(j,i) > 0 then

    add j to the communication class

    end if

    next i

    next j


    After you've computed the Markov Chain's communication classes it's then useful to
    label each class as either transient or recurrent, if either exists in the Markov Chain, and to then form a block matrix that's useful to compute absorption probabilities and expected number of hitting times for transient states.



    The form of the block matrix is ordered so that the recurrent states are placed before the transient states in the rows and columns.



    Image of a generic Markov Chain being reconfigured into a useful block matrix. The grey matrix is the original matrix and the colored one is the block matrix






    share|cite|improve this answer
























      up vote
      0
      down vote













      Yeah, there is one although the algorithm is really more defined as a graphing problem. That's the case since probability theory really isn't needed to identify communication classes. The only thing you need to know is whether or not jumps between states can occur in both directions.



      You could replace the P matrix you gave with a binary matrix, just replace all non-zero entries with 1 and leave all zero entries as zero.



      You would then do something like below to add to a communication class after you've established a basic communication class. Each state is in a communication class so you can start from there. You'll end up with redundancies this way but you could then just pick only the unique communication classes for your output.



      for all states j in the matrix 

      for all states i in the communication class

      if P(i,j) * P(j,i) > 0 then

      add j to the communication class

      end if

      next i

      next j


      After you've computed the Markov Chain's communication classes it's then useful to
      label each class as either transient or recurrent, if either exists in the Markov Chain, and to then form a block matrix that's useful to compute absorption probabilities and expected number of hitting times for transient states.



      The form of the block matrix is ordered so that the recurrent states are placed before the transient states in the rows and columns.



      Image of a generic Markov Chain being reconfigured into a useful block matrix. The grey matrix is the original matrix and the colored one is the block matrix






      share|cite|improve this answer






















        up vote
        0
        down vote










        up vote
        0
        down vote









        Yeah, there is one although the algorithm is really more defined as a graphing problem. That's the case since probability theory really isn't needed to identify communication classes. The only thing you need to know is whether or not jumps between states can occur in both directions.



        You could replace the P matrix you gave with a binary matrix, just replace all non-zero entries with 1 and leave all zero entries as zero.



        You would then do something like below to add to a communication class after you've established a basic communication class. Each state is in a communication class so you can start from there. You'll end up with redundancies this way but you could then just pick only the unique communication classes for your output.



        for all states j in the matrix 

        for all states i in the communication class

        if P(i,j) * P(j,i) > 0 then

        add j to the communication class

        end if

        next i

        next j


        After you've computed the Markov Chain's communication classes it's then useful to
        label each class as either transient or recurrent, if either exists in the Markov Chain, and to then form a block matrix that's useful to compute absorption probabilities and expected number of hitting times for transient states.



        The form of the block matrix is ordered so that the recurrent states are placed before the transient states in the rows and columns.



        Image of a generic Markov Chain being reconfigured into a useful block matrix. The grey matrix is the original matrix and the colored one is the block matrix






        share|cite|improve this answer












        Yeah, there is one although the algorithm is really more defined as a graphing problem. That's the case since probability theory really isn't needed to identify communication classes. The only thing you need to know is whether or not jumps between states can occur in both directions.



        You could replace the P matrix you gave with a binary matrix, just replace all non-zero entries with 1 and leave all zero entries as zero.



        You would then do something like below to add to a communication class after you've established a basic communication class. Each state is in a communication class so you can start from there. You'll end up with redundancies this way but you could then just pick only the unique communication classes for your output.



        for all states j in the matrix 

        for all states i in the communication class

        if P(i,j) * P(j,i) > 0 then

        add j to the communication class

        end if

        next i

        next j


        After you've computed the Markov Chain's communication classes it's then useful to
        label each class as either transient or recurrent, if either exists in the Markov Chain, and to then form a block matrix that's useful to compute absorption probabilities and expected number of hitting times for transient states.



        The form of the block matrix is ordered so that the recurrent states are placed before the transient states in the rows and columns.



        Image of a generic Markov Chain being reconfigured into a useful block matrix. The grey matrix is the original matrix and the colored one is the block matrix







        share|cite|improve this answer












        share|cite|improve this answer



        share|cite|improve this answer










        answered Aug 16 at 1:33









        gerardo dutan

        1




        1






















             

            draft saved


            draft discarded


























             


            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f1346760%2falgorithm-for-identifying-markov-chain-communicating-classes%23new-answer', 'question_page');

            );

            Post as a guest













































































            這個網誌中的熱門文章

            tkz-euclide: tkzDrawCircle[R] not working

            How to combine Bézier curves to a surface?

            1st Magritte Awards