Текущий выпуск Номер 1, 2025 Том 17

Все выпуски

Результаты поиска по 'graph traversal':
Найдено статей: 3
  1. Стёпкин А.В.
    Использование коллектива агентов для распознавания графа
    Компьютерные исследования и моделирование, 2013, т. 5, № 4, с. 525-532

    В работе рассматривается задача распознавания графов коллективом агентов. Два агента-исследователя одновременно передвигаются по графу, считывают и изменяют метки элементов графа, передают необходимую информацию агенту-экспериментатору, который строит представление исследуемого графа. Построен алгоритм распознавания линейной (от числа вершин графа) временной сложности, квадратичной емкостной сложности и коммуникационной сложности равной O(n2·log(n)), где n — число вершин графа. Для распознавания два, передвигающиеся по графу, агента используют по две различные краски (всего три краски). Алгоритм основан на методе обхода графа в глубину.

    Stepkin A.V.
    Using collective of agents for exploration of graph
    Computer Research and Modeling, 2013, v. 5, no. 4, pp. 525-532

    Problem of exploration finite undirected graphs by a collective of agents is considered in this work. Two agents-researchers simultaneously move on graph, they read and change marks of graph elements, transfer the information to the agent-experimenter (it builds explored graph representation). It was constructed an algorithm linear (from amount of the graph’s nodes) time complexity, quadratic space complexity and communication complexity, that is equal to O(n2·log(n)). Two agents (which move on graph) need two different colors (in total three colors) for graph exploration. An algorithm is based on depth-first traversal method.

    Просмотров за год: 4. Цитирований: 2 (РИНЦ).
  2. Стёпкин А.В., Стёпкина А.С.
    Алгоритм распознавания простых графов коллективом агентов
    Компьютерные исследования и моделирование, 2021, т. 13, № 1, с. 33-45

    Исследование, представленное в работе, посвящено проблеме распознавания конечных графов с помощью коллектива агентов. В работе рассматриваются конечные неориентированных графы без петель и кратных ребер. Коллектив агентов состоит из двух агентов-исследователей, которые имеют конечную память, независимую от числа вершин исследуемого ими графа, и используют по две краски каждый (в общей сложности используется три различные краски, так как цвет одной из красок у агентов совпадает), и одного агента-экспериментатора, который обладает конечной, неограниченно растущей внутренней памятью. Агенты-исследователи могут одновременно передвигаться по графу, считывать и изменять метки элементов графа, а также передавать необходимую информацию третьему агенту — агенту-экспериментатору. Агент-экспериментатор — это неподвижный агент, в памяти которого фиксируется результат функционирования агентов-исследователей на каждом шаге и, кроме того, постепенно выстраивается представление исследуемого графа (изначально неизвестного агентам) списком ребер и списком вершин.

    В работе подробно описаны режимы работы агентов-исследователей с указанием приоритетности их активации, рассмотрены команды, которыми обмениваются агенты-исследователи с агентом-экспериментатором во время выполнения тех или иных процедур. Также подробно рассмотрены проблемные ситуации, возникающие в работе агентов-исследователей, например окрашивание белой вершины при одновременном попадании двух агентов в одну и ту же вершину или пометка и распознавание ребер перешей- ков (ребра, соединяющие подграфы, распознаваемые различными агентами-исследователями) и так далее. Представлен полный алгоритм работы агента-экспериментатора с подробным описанием процедур обработки полученных от агентов-исследователей сообщений, на основании которых и происходит построение представления исследуемого агентами графа. Также в работе проведен полный анализ временной, емкостной и коммуникационной сложностей построенного алгоритма.

    Представленный алгоритм распознавания графов имеет квадратичную (от числа вершин исследуемого графа) временную сложность, квадратичную емкостную сложность и квадратичную коммуникационную сложность. Работа алгоритма распознавания основывается на методе обхода графа в глубину.

    Stepkin A.V., Stepkina A.S.
    Algorithm of simple graph exploration by a collective of agents
    Computer Research and Modeling, 2021, v. 13, no. 1, pp. 33-45

    The study presented in the paper is devoted to the problem of finite graph exploration using a collective of agents. Finite non-oriented graphs without loops and multiple edges are considered in this paper. The collective of agents consists of two agents-researchers, who have a finite memory independent of the number of nodes of the graph studied by them and use two colors each (three colors are used in the aggregate) and one agentexperimental, who has a finite, unlimitedly growing internal memory. Agents-researches can simultaneously traverse the graph, read and change labels of graph elements, and also transmit the necessary information to a third agent — the agent-experimenter. An agent-experimenter is a non-moving agent in whose memory the result of the functioning of agents-researchers at each step is recorded and, also, a representation of the investigated graph (initially unknown to agents) is gradually built up with a list of edges and a list of nodes.

    The work includes detail describes of the operating modes of agents-researchers with an indication of the priority of their activation. The commands exchanged between agents-researchers and an agent-experimenter during the execution of procedures are considered. Problematic situations arising in the work of agentsresearchers are also studied in detail, for example, staining a white vertex, when two agents simultaneously fall into the same node, or marking and examining the isthmus (edges connecting subgraphs examined by different agents-researchers), etc. The full algorithm of the agent-experimenter is presented with a detailed description of the processing of messages received from agents-researchers, on the basis of which a representation of the studied graph is built. In addition, a complete analysis of the time, space, and communication complexities of the constructed algorithm was performed.

    The presented graph exploration algorithm has a quadratic (with respect to the number of nodes of the studied graph) time complexity, quadratic space complexity, and quadratic communication complexity. The graph exploration algorithm is based on the depth-first traversal method.

  3. Стрыгин Н.А., Кудасов Н.Д.
    Графовая сверточная нейронная сеть для быстрого и точного дизассемблирования инструкций x86
    Компьютерные исследования и моделирование, 2024, т. 16, № 7, с. 1779-1792

    Дизассемблирование двоичных файлов x86 — важная, но нетривиальная задача. Дизассемблирование трудно выполнить корректно без отладочной информации, особенно на архитектуре x86, в которой инструкции переменного размера чередуются с данными. Более того, наличие непрямых переходов в двоичном коде добавляет еще один уровень сложности. Непрямые переходы препятствуют возможности рекурсивного обхода, распространенного метода дизассемблирования, успешно идентифицировать все инструкции в коде. Следовательно, дизассемблирование такого кода становится еще более сложным и требовательным, что еще больше подчеркивает проблемы, с которыми приходится сталкиваться в этой области. Многие инструменты, включая коммерческие, такие как IDA Pro, с трудом справляются с точным дизассемблированием x86. В связи с этим был проявлен определенный интерес к разработке более совершенного решения с использованием методов машинного обучения, которое потенциально может охватывать базовые, независимые от компилятора паттерны, присущие машинному коду, сгенерированному компилятором. Методы машинного обучения могут превосходитьпо точности классические инструменты. Их разработка также может занимать меньше времени по сравнению с эвристическими методами, реализуемыми вручную, что позволяет переложитьо сновную нагрузку на сбор большого представительного набора данных исполняемых файлов с отладочной информацией. Мы усовершенствовали существующую архитектуру на основе рекуррентных графовых сверточных нейронных сетей, которая строит граф управления и потоков для дизассемблирования надмножеств инструкций. Мы расширили граф информацией о потоках данных: при кодировании входной программы, мы добавляем ребра потока управления и зависимостей от регистров, вдохновленные вероятностным дизассемблированием. Мы создали открытый набор данных для идентификации инструкций x86, основанный на комбинации набора данных ByteWeight и нескольких пакетов Debian с открытым исходным кодом. По сравнению с IDA Pro, современным коммерческим инструментом, наш подход обеспечивает более высокую точность при сохранении высокой производительности в наших тестах. Он также хорошо себя показывает по сравнению с существующими подходами машинного обучения, такими как DeepDi.

    Strygin N.A., Kudasov N.D.
    Fast and accurate x86 disassembly using a graph convolutional network model
    Computer Research and Modeling, 2024, v. 16, no. 7, pp. 1779-1792

    Disassembly of stripped x86 binaries is an important yet non-trivial task. Disassembly is difficult to perform correctly without debug information, especially on x86 architecture, which has variablesized instructions interleaved with data. Moreover, the presence of indirect jumps in binary code adds another layer of complexity. Indirect jumps impede the ability of recursive traversal, a common disassembly technique, to successfully identify all instructions within the code. Consequently, disassembling such code becomes even more intricate and demanding, further highlighting the challenges faced in this field. Many tools, including commercial ones such as IDA Pro, struggle with accurate x86 disassembly. As such, there has been some interest in developing a better solution using machine learning (ML) techniques. ML can potentially capture underlying compiler-independent patterns inherent for the compiler-generated assembly. Researchers in this area have shown that it is possible for ML approaches to outperform the classical tools. They also can be less timeconsuming to develop compared to manual heuristics, shifting most of the burden onto collecting a big representative dataset of executables with debug information. Following this line of work, we propose an improvement of an existing RGCN-based architecture, which builds control and flow graph on superset disassembly. The enhancement comes from augmenting the graph with data flow information. In particular, in the embedding we add Jump Control Flow and Register Dependency edges, inspired by Probabilistic Disassembly. We also create an open-source x86 instruction identification dataset, based on a combination of ByteWeight dataset and a selection open-source Debian packages. Compared to IDA Pro, a state of the art commercial tool, our approach yields better accuracy, while maintaining great performance on our benchmarks. It also fares well against existing machine learning approaches such as DeepDi.

Журнал индексируется в Scopus

Полнотекстовая версия журнала доступна также на сайте научной электронной библиотеки eLIBRARY.RU

Журнал включен в базу данных Russian Science Citation Index (RSCI) на платформе Web of Science

Международная Междисциплинарная Конференция "Математика. Компьютер. Образование"

Международная Междисциплинарная Конференция МАТЕМАТИКА. КОМПЬЮТЕР. ОБРАЗОВАНИЕ.