Select date in calendarSelect date in calendar

Pages: 1 2 Next
Дискретное моделирование в ГИС
Есть БД
id {1,2,3, 4, 5, 6}
address {Ленина 1, Свердлова 2, Фурманова 3, ... n}
latitude {соответствует адресам }
longitude { соответствует адресам }

Задача: Необходимо из данного массива id [1, 2, 3, 4, 5, 6] делать перемещение на агентов по закономерности, в дискретную модель. Агентов и id может быть множество .

При одном агенте, ему уйдут id [1, 2, 3, 4, 5, 6]
При двух агентах
в первом случаи: 1ый агент id [1, 3, 4, 5, 6] 2ой агент id [2] (то есть 1 агент берет 5 заявок, 2ой берет 1 заявку)
второй случай 1ый агент id [1, 3, 5, 6] 2ой агент id [2, 4] (то есть 1 агент берет 4 заявки, 2ой берет 2 заявки)
третий случай 1ый агент id [1, 3, 5] 2ой агент id [2, 4, 6] (то есть 1 агент берет 3 заявки, 2ой берет 3 заявки)
При трех агентах
в первом случаи: 1ый агент id [1, 4, 5, 6] 2ой агент id [2], 3ий агент id [3]
второй случай 1ый агент id [1, 3, 6 ] 2ой агент id [2, 5], 3ий агент id [3]
третий случай 1ый агент id [1, 3 ] 2ой агент id [2, 5], 3ий агент id [3, 6]
Тут не очередность играет роль, а кол-во которое допускается на каждого агента.

Вопрос:
1. Если такой существующий класс который может производить перемещения по данному алгоритму или каким способом это можно реализовать ?
2. На примере модели Pruduct Delivery, в блок Enter будет помещаться id. Таких дискретных моделей должно быть несколько под каждого агента или это делать через несколько ResoursePool или иным способом ?

По выходу хотелось бы получить отображение
traceln(car1.address); // все адреса которые объехал в порядке следования
traceln(car2.address); // все адреса которые объехал в порядке следования
traceln(car3.address); // все адреса которые объехал в порядке следования
ГИС
Разобрался, метод getDistanceByRoute
ГИС
Подскажите пожалуйста, есть точки 1, 2, 3, 4. Автомобиль перемещается от одной к другой последовательно на основании широты и долготы. Какой класс может выдать автомобильное расстояние между данными точками. Класс distance дает расстояние только по прямой.
Параллельные вычисления в AnyLogic, Число процессоров; Параллельные вычисления: Ускорение вычислений
Могу на почту скинуть, по 50Мб занимает каждая. Всего две. Проект написанный в 7.2.0 откомпилированный в самой же 7.2.0 и тот же проект откомпилирован в версии 7.3.1 Скорость заменялась именно в сформированном приложении.

На самом деле меня это не напрягает, просто выбор сделал в пользу 7.2.0, ГИС и БД в этой версии для меня достаточны.
Edited: Alex - 03.06.2016 16:38:13
Параллельные вычисления в AnyLogic, Число процессоров; Параллельные вычисления: Ускорение вычислений
Не убедили. Я по 10 прогонов на разных компьютерах устраивал, варьировался показатель от 5 до 15 сек, включая момент после перезагрузки и да с отключенным и-нетом в том числе, да бы исключить выше изложенной ситуации. Но средний результат на 10 сек 7,2,0 выигрывала.
В одном случаи Phenom II 945
В другом Core i7-2670QM
Параллельные вычисления в AnyLogic, Число процессоров; Параллельные вычисления: Ускорение вычислений
AnyLogic 7.2.0 у меня оптимизатор 40320 итераций прогоняет за 130 сек, AnyLogic 7.3.1 столько же итераций за 140 сек, что на 7% медленнее. Вопрос, каждая новая версия более медлительна ?

Я читал в Java 9 думают реализовать выполнение задач с помощью видео карты, это было бы очень круто ввиду выше изложенного.
Параллельные вычисления в AnyLogic, Число процессоров; Параллельные вычисления: Ускорение вычислений
Есть так же вопрос на эту тему, возможно ли использовать ресурсы видеокарты для ускорения вычислений кода ?
Было бы не плохо при оптимизации возможных вариантов в 1 000 000 комбинаций, использовать параллельный потоки, ведь видеокарты на этом и специализируются.
Блок queue, приоритеты
Да, спасибо попробую
Блок queue, приоритеты
Я не смог найти метод который бы всегда в одной и той же последовательности перемешивал бы массив. В результате, когда через цикл формирую массив с возможными комбинациями, он постоянно меняется рандомно. При оптимизации в этом случаи, каждый раз будет разный лучший результат, а при возврате в симуляцию, найдены лучший не всегда будет лучшим, так как уже лучший автоматически будет под другим индексом. Вижу решение в том, что под каждый факториал создавать отдельный файл из которого будет инициализировать массив, а потом из этого массива через цикл вставляется в оптимизацию. Мне кажется это быстрее, чем в процессе оптимизации будет перед каждой итерацией формироваться массив через цикл, а потом из него будет вытаскиваться значение.
Если есть лучше решение, рад буду услышать. Речь о том как лучше вложить 3 600 000 комбинаций и по нарастающей в зависимости от кол-ва заявок.
Блок queue, приоритеты
Задача заключалась в нахождении кратчайшего пути. Так как пешеход из одной в другую точку идет по авто маршруту, то использовать getDistance использовать не получилось(ищет по прямой). Поэтому я генерирую все возможные варианты и пихаю их в оптимизацию. При обходе пешеходом 6ти точек, возможных комбинаций получится 720, что превышает лимит OptQuest. А если он 10 будет обходить точек или их будет несколько, да еще и приоритеты будут. Слишком много комбинаций.
Для выполнения поставленной задачи, мне нужно заранее подготовить массивы для определенного количества заявок. Брать собираюсь массив из файла, поэтому и спросил

Как будет быстрее объявлять массив ?
new int[2][2] matrix;
matrix[0][0]=1;
matrix[0][1]=2;
matrix[1][0]=3;
matrix[1][1]=4;

или

new int[2][2] matrix = {{1,2},{3,4}};
для 10 точек это 3 600 000 комбинаций, поэтому очень важно использовать наибыстрейший способ, что бы по минимуму загружать процессор.
Pages: 1 2 Next