Журналы
Email: Пароль: Войти Регистрация
Содержание журнала, редсовет, редколлегия, информация об обложке.

Table of contents, editorial board, editors, information on cover.
В статье дается обзор существующих методов верификации динамической памяти; проводится их сравнительный анализ; оценивается применимость для решения задач управления, контроля и верификации динамической памяти. Данная статья состоит из восьми разделов. Первый раздел - введение. Во втором обсуждаются проблемы управления динамической памятью. В третьем рассматривается исчисление Хоара. В четвёртом речь идёт о преобразованиях heap в стек. Пятый вводит понятие анализа образов динамической памяти. Шестой посвящен ротации указателей, седьмой - логике распределенной памяти. В последнем разделе рассматриваются возможные направления дальнейших научных исследований в данной области, в частности: распознавание на уровне записи различных экземпляров объектов; автоматизация доказательств; использование «горячего» кода, то есть программного кода, который сам себя обновляет при запуске программы; расширение интуитивности объяснений доказательств и другие. С. 5-30.

The article provides an overview of the existing methods of dynamic memory verification; their comparative analysis is carried out; the applicability for solving problems of control, monitoring, and verification of dynamic memory is evaluated. This article is divided into eight sections. The first section is an introduction, the second discusses dynamic memory management problems, the third discusses Hoare's calculus, the fourth considers heap transformations to stack, the fifth introduces the concept of dynamic memory image analysis, the sixth is dedicated to the rotation of pointers, the seventh is on the logic of distributed memory. The last section discusses possible directions of further research in this area; more specifically: recognition at recording level of various instances of objects; automation of proofs; “hot” code, that is, software code that updates itself when the program runs; expanding intuitiveness of proof explanations and others.

Ключевые слова: верификация динамической памяти, иcчисление Хоара, логика распределенной памяти, операции с указателями.
Keywords: dynamic memory verification, Hoare calculus, distributed memory, pointers arithmetics.
Одной из задач, возникающих при разработке тренажерных систем, является создание подсистемы отображения земной поверхности. Подсистемы такого класса обеспечивают моделирование и визуализацию ландшафта, подстилающей поверхности (рек, дорог, лесных массивов и т.д.), геометрических объектов, например, имитирующих аэропорты или города и др. Существует два основных подхода к визуализации протяженных ландшафтов, используемых при прорисовке поверхности Земли - кластерная триангуляция и геометрические текстурные выборки (clipmap). Представленный в работе метод генерации и визуализации поверхности Земли основан на втором подходе. Обеспечена возможность производить вычисления на GPU с использованием одинарной точности, что позволяет ускорить вычисления, по сравнению с использованием типов данных с двойной точностью. Кроме того, это позволяет использовать данный подход на мобильных графических процессорах, не поддерживающих двойную точность. Предлагаемый новый метод динамического управления ресурсами обеспечивает уменьшение занимаемой видеопамяти, что позволяет загружать более детализированные текстурные данные и для большего числа объектов одновременно. С. 31-42.

One of the tasks that arise during the development of training (simulation) systems is the creation of a subsystem for displaying the earth's surface. Subsystems of this class provide modeling and visualization of the landscape, underlying surface (rivers, roads, forests, etc.), geometric objects that simulate cities or airports and so on. There are two main approaches to the visualization of extended landscapes --- continuous level of detail algorithms that use clustered triangulation and geometry clipmapbased algorithms. The method of generation and visualization of the Earth's surface presented in the work is based on the second approach. It is possible to perform calculations on the GPU using single precision, which allows faster calculations compared to using data types with double precision. In addition, this approach may be used on mobile graphics processors that do not support double precision. The proposed new method of dynamic resource management reduces the occupied video memory, which allows more detailed texture data to be loaded for a larger number of objects simultaneously.

Ключевые слова: WGS84, земная поверхность, визуализация, имитационные системы, система координат.
Keywords: WGS84, visualization, simulation systems, coordinate systems, rendering, earth surface.
В работе обосновывается необходимость включения компьютерного практикума в качестве составной части курса дискретной математики. Приводятся и обсуждаются примеры заданий такого практикума, выполняемых студентами с использованием компьютерной среды Wolfram Mathematica. С. 43-54.

A necessity is advocated in the paper of computer-aided lectures and seminars on Discrete Mathematics with use of Wolfram Mathematica. A variety of examples are presented and discussed of the exercises being given to students in the framework of the teaching course.

Ключевые слова: дискретная математика, компьютерный практикум, структуры данных и алгоритмы, Wolfram Mathematica.
Keywords: discrete mathematics, computer practicum, algorithms and data structures, Wolfram Mathematica.
Использование математических моделей для представления аспектов физической реальности является важной деятельностью в науке и научном образовании. В данной статье рассматриваются четыре подхода к использованию компьютерного программирования и математического моделирования в учебной деятельности:
1) Математические модели, найденные в учебнике, используются в качестве основы для компьютерных программ. Студенты, создавая полезные интерактивные программы на языке Python, рассчитывающие концентрации или значения pH, сталкиваются с такими же интеллектуальными проблемы, как при решении традиционных задач учебника.
2) Scratch-анимации, имитирующие моделирование физических или химических систем, могут быть специально разработаны для проверки достоверности заданных математических моделей.
3) Задача, связанная с компьютером, заключается в разработке моделирования (например, диффузии газа в замкнутой системе с двумя фазами), что может быть основой для открытия математической модели (например, закона Генри) или элемента математической модели.
4) Используя сенсорную технологию и Raspberry Pi, студенты создают компьютерную программу, которая автоматически визуализирует наблюдаемое поведение системы (например, изменение концентрации газа), чтобы в дальнейшем разработать математическую модель. (на англ.) С. 55-64.

Using mathematical models to represent aspects of physical reality is an essential activity in science and science education. This contribution discusses four approaches of using computer programming and mathematical models in classroom activities:
1) Mathematical models, found in the textbook, are used as a basis for computer programs. Students, when creating useful interactive python programs calculating concentrations or pH-values, experience similar intellectual challenges as in solving traditional text book problems.
2) Scratch-animations simulating physical or chemical systems simulation can be specifically designed to check the validity of given mathematical models.
3) A computer-related challenge is to design a simulation (like gas diffusion in a closed system with two phases) that might be a basis for discovering a mathematical model (like Henry's law) or just an element of a mathematical model.
4) Using sensor technology and a Raspberry Pi, students create a computer program that automatically visualizes the observed system behaviour (like changes in gas concentrations) in order to find a mathematical model.

Ключевые слова: наука образование, Python, Scratch, программирование.
Keywords: Science education, Python, Scratch, Programming.
В данной статье описывается программный пакет, представляющий собой генератор новых математических тестов.
Основные особенности нашего пакета заключаются в ориентации на создание качественной печатной продукции и большой вариативности создаваемых задач, что достигается с помощью текстового процессора LATEX и мощностей языка Python. Пакет состоит из управляющей оболочки, синтаксического анализатора задач, предметной логики, системы форматирования и базы данных задач. Предметная логика представляет набор абстракций, которые могут быть использованы в задачах (например, графы, булевы функции и др.). База данных задач существует в виде JSON-файлов на специально созданным языке формирования задач.
На текущий момент в базе данных задач наиболее полно представлены задачи по дискретной математику. Было реализовано более пятидесяти видов задач по темам: операции над множествами, представление множеств диаграммами Эйлера-Венна, алгебра множеств, различные способы представления графов, операции над графами, некоторые задачи на графах, представление булевых функций различными способами, нахождение совершенных форм, построение и минимизация с помощью карт Карно, диаграмм Венна и гиперкубов, анализ и синтез логических схем.
Генератор задач может быть использован преподавателем при проведении практических и контрольных работ, создании индивидуальных материалов для учащихся. Задачи можно дифференцировать по уровню сложности путём изменения управляющих параметров.
Сформированные задания были использованы в учебном процессе для более чем 1000 студентов Военной академии связи имени С. М. Будённого, в результате чего наблюдалось улучшение усвоения дискретной математики. (на англ.) C. 65-71.

This article describes the software package representing new math tests generator.
The main features of our software are in the focus on creating a high-quality printed product and large variability of the generated tasks. That were achieved by using the LaTeX~text processor and power of the Python language. Logically it consists of the control shell, the task parser, subject logic, formatting system and task database. The logic implements the set of abstractions that can be used in tasks (for example graphs, boolean functions, etc.). The task database exists in the form of JSON files with the specially created task formation language.
Currently, the most developed branch in task database is the discrete mathematics problems and abstractions. More than fifty types of tasks were implemented: operations on sets, representation of sets by Euler-Venn diagrams, algebra of sets, various ways of representing graphs, operations on graphs, some problems on graphs, representing Boolean functions in various ways, finding perfect forms, constructing and minimization using Karnaugh maps, Venn diagrams and hypercubes, analysis and synthesis of logic circuits.
The task generator can be used by a teacher when conducting practical and control classes, creating individual materials for the students. Tasks can be differentiated by the level of complexity when changing control parameters.
The generated tasks were used in education process for more than 1000 students of Military Academy of the Signal Corps and the improvement of mastering of discrete math was shown.

Ключевые слова: дискретная математика, образование, теория множеств, теория графов, булева алгебра.
Keywords: Discrete mathematics, education, set theory, graph theory, boolean algebra.
Современное образование начинает вытеснять традиционное (уроки от учителя к ученику) высокотехнологичным обучением с использованием различных образовательных инструментов и подбором материалов, которые являются эффективными, действенными и привлекательными pagebreak для учащихся. Программное обеспечение динамической геометрии (DGS) сегодня широко используется в преподавании и изучении математики. Такое образовательное программное обеспечение может развиваться несколькими способами, либо надстраивая новые функции, либо добавляя новые функции на поверхности, либо развивая механизм оценки в его ядре. Реализация DGS должна быть простой и модульной. Чтобы добиться развития ядра DGS мы разработали среду программирования для программного обеспечения динамической геометрии SLGeometry с обобщенным функциональным языком и соответствующим механизмом оценки выражений. Механизм действует как фреймворк, в который встроена конкретная семантика в виде кода, аннотированного метаданными. Этот фреймворк преобразует обычный вычислитель дерева выражений в объектно-ориентированный. В то время как другие DG основаны на чисто функциональных оценщиках выражений, наше решение обладает преимуществами более общего, поддерживаемого, понятного, простого в реализации и обеспечивающего естественный способ задания свойств объекта в пользовательском интерфейсе, минимизируя типизацию и синтаксические ошибки. Модульный подход позволяет самостоятельно разрабатывать предметно-ориентированные компоненты, которые легко добавляются в механизм оценки в виде плагинов. Объектно-ориентированный характер фреймворка позволяет разрабатывать автономные единицы, такие как объекты и визуальные элементы, которые инкапсулируют предметную семантику и представляют ее пользователю в виде виртуальных заполнителей для реальных объектов и понятий. В этой статье мы представляем несколько возможных улучшений программного обеспечения динамической геометрии, в первую очередь на платформе, которую мы внедрили. Кроме того, мы обсуждаем преимущества этих функций и их влияние на пользователей/студентов. Подход тестируется на SLGeometry - нашей платформе DGS, разработанной в C# на платформе .NET Framework. (на англ.) C. 72-86.

Contemporary education is starting to supersede the traditional one (teacher-to-student lessons) with technology-rich learning using various educational tools and a selection of materials that are effective, efficient and appealing to students. Dynamic Geometry Software (DGS) today is widely used in teaching and learning mathematical topics. Such kind of educational software can evolve in several ways, by either adding new features on the surface or by evolving the evaluation engine at its core. The implementation of a DGS needs to be straightforward and modular. To achieve the evolution of a DGS core we have developed a programming framework for the Dynamic Geometry Software, SLGeometry, with a genericized functional language and the corresponding expression evaluation engine. Engine acts as a framework into which specific semantics is embedded in the form of code, annotated with metadata. An ordinary expression tree evaluator is transformed into an object-oriented one by this framework. Whilst other DGS are based on purely functional expression evaluators, our solution has the advantages of being more general, maintainable, understandable, easy to implement, and providing a natural way of specifying object properties in the user interface, minimizing typing and syntax errors. The modular approach enables independent development of subject-specific components, which are easily added to the evaluation engine in the form of plug-ins. The object-oriented nature of the framework enables development of self-contained units, such as objects and visual elements which encapsulate domain-specific semantic and present it to the user as virtual placeholders for real-life objects and notions. In this paper we present several possible improvements of Dynamic Geometry Software, particularly having in mind the platform that we have implemented. Additionally we discuss benefits of these features and their influence on the users/students. The approach is tested on SLGeometry -- our DGS platform, developed in C# on the .NET Framework.

Ключевые слова: программное обеспечение для динамической геометрии, обучение, разработка компонентов.
Keywords: Dynamic Geometry Software, Teaching, Component development.
С конца 1960-х годов изучается задача минимизации недетерминированных конечных автоматов. В практических программах для больших размерностей получение точного ответа обычно занимает неприемлемо большое время. В связи с этим нас интересуют, среди прочих, эвристические алгоритмы решения задачи - алгоритмы, <<ничего не обещающие>>, однако на практике в большинстве случаев дающие за приемлемое время работы решение, близкое к оптимальному.
Предлагаемый школьникам проект направлен на частичное решение одной из вспомогательных задач, возникающих в упомянутой оптимизационной задаче. Для этого мы специальным образом определяем отношение эквивалентности на множестве таблиц заданного размера M x N, заполненных элементами 0 и 1. Получение количества неэквивалентных таблиц размерности 8 x 10 будет являться серьёзным шагом на пути к доказательству того факта, что описанный ещё в 1970 г. пример <<плохого>> автомата (так называемого автомата Ватерлоо) - минимально возможный пример, не имеющий <<меньших>> аналогов.
Для решения задачи мы сначала предлагаем плохой алгоритм, заключающийся в~простом переборе матриц. Этот алгоритм хорошо работает на матрицах малых размерностей, но, как обычно в подобных ситуациях, при переходе к большим размерностям он работает неприемлемо долго. Для уменьшения времени работы алгоритма мы предлагаем несколько эвристик и приводим результаты работы разных версий программы. Цель проекта - создание новых эвристик, ещё большее убыстрение времени работы программы и, по возможности, получение ответа (количества таблиц) для размерности 8 x 10.
Для большинства описываемых в статье вариантов алгоритма мы приводим реализацию на языке C#, использующую принципы объектно-ориентированного программирования. Мы предполагаем, что дальнейшая работа над проектом будет заключаться в дальнейшей модификации приведённых нами программ. C. 87-107.

Since the late 1960s, the problem of minimizing non-deterministic finite automata has been studied. In practical programs for large dimensions, obtaining an exact answer usually takes an unacceptably long time. In this regard, we are interested in, among others, heuristic algorithms for solving the problem, i.e. in algorithms that ``do not promise anything'', which, however, in practice in most cases, they give a solution that is close to optimal for an acceptable working time.
The project proposed for schoolchildren is aimed at a partial solution of one of the auxiliary tasks arising in the mentioned optimization problem. To do this, we define in a special way the equivalence relation on the set of tables of a given size M x N filled with elements 0 and 1. Obtaining the number of nonequivalent tables of dimension 8 x 10 will be a serious step on the way to proving the fact that the example of the ``bad'' automaton described in 1970 (the so-called Waterloo automaton) is the minimal possible example, not having ``lesser'' analogues.
To solve the problem, we first propose a bad algorithm, which consists in a simple enumeration of matrices. This algorithm works well on matrices of small dimensions, but, as usual in such situations, it works unacceptably long when moving to large dimensions. To reduce the operating time of the algorithm, we offer several heuristics, and present the results of the work of different versions of the program. The goal of the project is the creation of new heuristics, an even greater increase in the operating time of the program and, if possible, obtaining an answer (the number of tables) for the dimension 8 x 10.
For the majority of variants of the algorithm described in the paper, we present the implementation in C# using the principles of the object-oriented programming. We assume that further work on the project will consist in further modification of the programs we have provided.

Ключевые слова: оптимизационная задача, конечный автомат, эвристический алгоритм, первый шаг в науке.
Keywords: optimization problem, finite automaton, heuristic algorithm, the first step in science.
Для пополнения баланса выберите страну, оператора и отправьте СМС с кодом на указанный номер. Отправив одну смс, вы получаете доступ к одной статье.
Закрыть