|
0 / 0 / 1
Регистрация: 13.03.2016
Сообщений: 6
|
|
Разработка алгоритма для распределенной системы13.03.2016, 18:46. Показов 733. Ответов 5
Добрый день!
Для распределенной АСУ необходимо разработать систему единой нумерации. Принцип работы такой: операторы выделяют на карте некоторые объекты (анализ изображений). Система автоматически нумеруют их. Данные о выделенных объектах распределяются между всеми участниками сети. Объекты могут отождествиться с объектами, выделенными другими операторами. Для всего этого нужно как можно скорее сформировать единый номер и оповестить о нем всех участников. Система распределенная, единого сервера нет, более того, каждый из операторов может произвольно подключаться и покидать сеть. Каналы связи медленные и низкого качества, связь может теряться. Пока система сообразит, объекты могут исчезать с карты, что тоже усложняет синхронизацию. Это что-то из раздела непротиворечивость и репликация распределенных систем Танненбаума, но у него нет прямого решения подобных проблем. Существуют ли готовые решения, если нет, то куда копать? Может идеи какие?
0
|
|
| 13.03.2016, 18:46 | |
|
Ответы с готовыми решениями:
5
Выбор технологии для распределенной системы Разработка алгоритма системы контроля знаний Разработка модели, алгоритма и программы информационного обмена вычислительной системы |
|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
|
|
| 14.03.2016, 15:53 | |
|
Полностью готовые решения под такую задачу вряд ли есть. Да и исходники я такие не видел.
Задача полностью с нуля делается? Думаю, сначала разбить на отдельные блоки. (1) Откуда брать карту, как получать информацию о появлении и исчезновении объектов (2) Как реализовать коммуникацию операторов. Если нет единого сервера, то возможно нужно реализовать мини-сервера на базе отдельных операторов, которые видят большое количество участников. Делается через интернет (где у операторов могут быть проблемы с соединением с другими операторами) или в локальной сети или VPN (все видят всех) ?
0
|
|
|
0 / 0 / 1
Регистрация: 13.03.2016
Сообщений: 6
|
|
| 14.03.2016, 22:37 [ТС] | |
|
1. Эта задача решена, клиентское ПО оформляет объекты и нумерует их в локальной нумерации. Карты загружаются до работы, сами клиенты расходятся по территории с небольшими планшетами, которые и есть узлы. К планшетам привязано некое распознающее оборудование, которое и является источником информации.
2. На конкретный транспорт мы стараемся не завязываться, в основном связь через сеть радиомодемов, провод появляется в качестве исключений. Подошел ближе - есть связь, отошел - пропала. Эта основная проблема, которая создает децентрализацию. 3. О всех найденных объектах узлы оповещают соседей. Автоматике задача нумерации не нужна, объекты прекрасно отождествляются по координатам, размеру. Эта задача больше полезна операторам, которые смогут по рации обсуждать объекты, называя их номер. Понятно, что можно потом вернуться, слить все в одну базу (что и делается), где будут присвоены номера. Но мне номера нужны во время работы. 4. Нахождение объектов в некой локальной нумерации допустимо, но количество и время таких ситуаций должно быть минимизировано. При этом каждый узел должен четко знать находится данный объект в общей или в локальной нумерации. Насчет минисерверов я думал, можно расположить операторов иерархически, чтобы каждый поддерживал связь со своей группой и с каким-то вышестоящим координатором. Но минисервер остается планшет тот же, он может вырубиться, потерять связь и т.п., проблемы те же. Надеюсь для понимания достаточно. Посторонние вещи старался опустить, чтобы не засорять внимание. Меня интересует исключительно разработка алгоритма нумерации. Причем нумерации человеческой (1,2,3), 32-битные хеш-суммы от координат в качестве номеров подойдут не особо (да и координаты у каждого свои по точности). Появилась идея, что задача относится к классу задач именования, своего рода распределенный DHCP, может стоит в эту сторону копать?
0
|
|
|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
|
|
| 15.03.2016, 13:38 | |
|
Про мини-серверы - возможно нужно придумать алгоритм поиска маршрутов распространения информации между узлами, накопление данных при обрыве и пересылка накопленных данных при возобновлении соединения с другими узлами. Мини-сервер не должен быть уникальным, каждый узел пусть может быть мини-сервером когда это нужно.
По нумерации - возможно, придумать двойную нумерацию оператор + объект, поскольку изначально у каждого оператора будет своя нумерация, а по двойной можно однозначно идентифицировать. А вот что делать когда сопоставляем одинаковые объекты от разных операторов... Поскольку центральный узел отсутствует как класс, то возможно лучше пусть ПО каждого оператора составляет свою таблицу соответствия между локальной нумерацией и нумерацией других узлов. Без введения некоторой хэширующей (или "хэширующей") функции, я думаю, не представляется возможным составить глобальную нумерацию поскольку нет центрального узла, а конфигурация сети меняется в реальном времени. Если операторы общаются только через ПО - то пусть ПО транслирует нумерацию других узлов в локальную нумерацию конкретного узла, и наоборот. Если операторы могут общаться не только через интерфейс ПО (через телефон, например), то без некоей классифицирующей функции не обойтись. У вас есть признаки, по которым определяется одинаковы ли два объекта у разных операторов, возможно эти признаки следуют перевести в удобную для вербализации форму?
0
|
|
|
0 / 0 / 1
Регистрация: 13.03.2016
Сообщений: 6
|
|||
| 16.03.2016, 19:42 [ТС] | |||
|
Мне кажется, что ключ лежит в неком распределенном алгоритме голосования, когда большинство узлов договариваются о номере и он присваивается другим. Важно не то, чтобы гарантировано все знали общий номер, а только а) общий номер уникален и б)точно известно это общий номер или локальный.
0
|
|||
|
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
|
||
| 17.03.2016, 10:07 | ||
|
Программе то все равно, программам достаточно хеша, а вот для операторов общий номер может уточняться медленно. Я вижу решение только в переводе характеристик в удобную для разговора форму. Например, в пределах одного "выезда" работа будет проводится на определенном участке - следовательно можно перевести глобальные "длинные" координаты в координаты локальной сетки, причем можно не только в системе счисления по основанию 10. Аналогично поступить с высотой объекта. И получим вполне удобное для вербализации глобальное обозначение вида 10-20-50. Если получим одинаковые вербальные обозначения для разных объектов - добавить еще одно число, которое использует уточнение имеющихся признаков, или уже тут вводить нумерацию, но тогда проблема останется. Конечно, лучше бы чтобы размер вербальной формы сразу соответствовал точности сравнения объектов
0
|
||
| 17.03.2016, 10:07 | |
|
Помогаю со студенческими работами здесь
6
Модель распределенной системы Разработка алгоритма для подтверждения фактов Разработка алгоритма для анализа рентгеновских излучений
Разработка аналитической и программной модели алгоритма для распознающей машины Тьюринга. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|