Что такое эпсилон, его функции и как задавать его значение?
Это "порог устойчивости" при итеративных расчетах новых медиан и суммы остовных деревьев (MSN) в алгоритме MJ. При некотором сверхбольшом Эпсилон сеть станет полной медианной сетью, а при всех меньших значениях будет только ее подмножеством (точнее, множество вершин будет подмножеством множества вершин-медиан полной сети). Полная сеть содержит в себе массу минимальных штейнеровских деревьев, а для неполных сетей это не так. Поэтому малые Эпсилон не гарантируют достижения оптимума.
Функция стоимости минимального штейнеровского дерева от Эпсилон не является монотонной, то есть сеть с Эпсилон 0 иногда бывает лучше чем с Эпсилон 10. Особенно часто это наблюдается на небинарных данных. Но, как говорилось выше, при использовании некоторого сверхбольшого Эпсилон (например равного максимальному расстоянию между гаплотипами метрики, число локусов у нас конечно) мы достигаем штейнеровского оптимума и дальнейшее увеличение Эпсилон более не меняет сеть.
При вычислении сетей по STR-данным большие Эпсилон (начиная примерно с величины равной среднему весу) делают процесс практически невозможным, даже для небольшого числа гаплотипов. Рекомендуется устанавливать 0.
Murka MJ, в отличе от Нетворка, использует два параметра Эпсилон:
-e : Epsilon (MSN)
-x : Epsilon (network growth)
которым обычно рекомендуется задавать одинаковое значение. При указании отрицательных значений -e и -x Murka MJ считает полную сеть, однако для этой цели рекомендуется пользоваться программой Murka FN которая выполняет эту работу значительно быстрее и не зависит от Эпсилон. Размер графа полной сети даже на нескольких десятках гаплотипов может достигать миллионов ребер. Мурка позволяет вычислить даже для этого количества приблизительное (неточное) штейнеровское дерево.