Помогите дописать программу.
Нужно реализовать алгоритм/формулу Мезона. Граф задается матрицей смежности. Нужно найти коэффициент передачи графа, для чего находятся контура графа(на изображении Li) и простой путь(P). Контура графа и путь я нашел, дальше нужно определить непересекающиеся контура(не имеющие общих вершин) и посчитать путь,вот в этом проблема
Sub Дерево()
Dim NumVer As Integer
Dim NumAnStr As Integer
'NumStr - номер текущей строки
Dim NumStr As Integer
Dim InvAdr As Integer
NumVer = 1
NumStr = 2
NumAnStr = 1
'Запись 1 номера вершины в таблицу "Дерево"
Sheets(2).Cells(1, 1).Value = 1
Sheets(2).Cells(1, 2).Value = 0
Call IncendVer(NumVer, NumStr, NumAnStr)
'цикла анализа по строкам таблицы
NumAnStr = 2
    Do
'выбор следующей вершины
    NumVer = Sheets(2).Cells(NumAnStr, 1).Value
'проверка на повторяемость вершин,выявление пути и контура
        i = 1
        Flag = 0
        InvAdr = NumAnStr
'цикл анализа путей по строкам таблицы-обратный ход
        Do
            InvAdr1 = Sheets(2).Cells(InvAdr, 2).Value
            NumVer1 = Sheets(2).Cells(InvAdr, 1).Value
            Sheets(2).Cells(NumAnStr, i + 4).Value = NumVer1
            InvAdr = InvAdr1
'если на обратном пути встретилась вершина с тем же номером
            If NumVer = NumVer1 And i > 1 Then
                Flag = 1
                Sheets(2).Cells(NumAnStr, 3).Value = "контур"
                Sheets(2).Cells(NumAnStr, 4).Value = i - 1
                Exit Do
            End If
            If NumVer > 6 Then Sheets(2).Cells(NumAnStr, 3).Value = "путь"
            i = i + 1
'выход из цикла если вершина исток
        Loop Until NumVer1 = 1
        If Flag = 0 Then
            Call IncendVer(NumVer, NumStr, NumAnStr)
        End If
    NumAnStr = NumAnStr + 1
    Loop Until NumStr = NumAnStr
'поиск и удаление повторно выделенных контуров
'составление списка путей и контуров
    NumStr = NumStr + 1
    NumCirc = 1
    EndNumAnStr = NumAnStr
    For NumAnStr = 1 To EndNumAnStr
        If Sheets(2).Cells(NumAnStr, 3).Value = "контур" Then
            Sheets(2).Cells(NumStr, 3).Value = "контур"
            Sheets(2).Cells(NumStr, 1).Value = NumCirc
            Sheets(2).Cells(NumStr, 2).Value = NumAnStr
            LenCirc = Sheets(2).Cells(NumAnStr, 4).Value
            Sheets(2).Cells(NumStr, 4).Value = LenCirc
            For i = 0 To LenCirc
                NumVer = Sheets(2).Cells(NumAnStr, i + 5).Value
                Sheets(2).Cells(NumStr, i + 5).Value = NumVer
            Next i
            NumCirc = NumCirc + 1
            NumStr = NumStr + 1
        End If
    Next NumAnStr
End Sub
Sub IncendVer(NumVer, NumStr, NumAnStr)
'просмотр строки матрицы смежности
        For NumCol = 1 To 20
'если элемент матрицы смежности не равен 0
        If Sheets(1).Cells(NumVer, NumCol).Value <> 0 Then
'запись номера вершины из матрицы смежности в таблицу "дерево"
            Sheets(2).Cells(NumStr, 1).Value = NumCol
'запись обратного адреса в таблицу "дерево"
            Sheets(2).Cells(NumStr, 2).Value = NumAnStr
            NumStr = NumStr + 1
        End If
        Next NumCol
End Sub