Подскажите, пожалуйста, как можно реализовать задачу по созданию и моделированию ситуаций, когда имитируется работа механизмов на территории для расчета объема перевозимой земли и расходов на такую перевозку.
Механика: задается территория (или загружается цифровая модель), расставляются механизмы (экскаватор, бульдозер), рисуются графы движения, перемещения самосвалов, ограничения на местности и т.д. У каждой техники есть свои особенности по расходам ГСМ и прочее (можно даже смоделировать нештатные ситуации) и в итоге на выходе получаем расходы и объем перевезенного за заданные промежутки времени.
Если это в итоге нужно только для получения расходов и объемов перевезенного за определенное время, то есть это не игра и не для игры, зачем тогда вообще юнити или вообще визуализация она здесь не нужна.
Если это игра, то то можно принебрегнуть точностью. Ну по сути свой мини движок получится, ну берете например создаете камаз, и рассчитывайте расход включая различные факторы, тоесть например его загрузка, включен ли полный привод, понижающая\повыщающая передача, грунт по которому он едет и сопротивление этого грунта,в горку или с горки, давление в шинах, передача, обороты и скорость, погодные условия сопротивление ветру хотя если это камаз и едет он карьеру то тут такое себе, другое дело если он летит по трассе. Ну опять если мы берем не идеальный камаз, с ушатаным движком и текущими сальниками, то разница в расходе топлива и особенно масла будет различаться координально. Крч всё зависит от количества вводимых факторов расчета, соотственно для каждой техники они свои и чем больше тем точнее и сложнее будет считать движку особенно если техники будет много.
P.S. Визуал если нужен, но не особо, то можно сделать минимальный, квадратики или иконки двигающиейся с логом, типа камаз 13:52 камаз начал поднимать кузов, 13:53 Что то пошло не так и он перекинулся(нештатная ситуация :D)
Ринат Бакиев, Ну для проверки можно выводить всё в текстовом варианте, по поводу работы алгоритмов. Нужно написать несколько тестов, эти тесты просчитать и проверить руками, ну и проверять чтобы программа выдавала такие же значения с минимально допустимыми отклонениями, в любом случае реальность это одно, а расчет это другое, хорошо если погрешности будут не сильно разниться. А там кто знает то колесо стрельнет, то котел отвалится, то тормоза откажут, с бугра, перед офисом компании на белазе :D А это уже незапланированные расходы.
А гейм-движок по сути это и есть имитационное моделирование. Только разукрашенное разными картинками и с существенно заниженными требованиями к точности.
Ринат Бакиев, А что значит "извращаться"? Да, в игровом движке КаМаз может летать и прыгать через овраг. А при настоящем моделировании вы должны учитывать и то, что расход топлива КаМаза в гору и с горы могут быть разными, и что у него не нулевой радиус поворота, и что груз из кузова всыпается не молниеносно. Ну, хотите играть в игры - играйте. Хотите что-то моделировать и потом по этой модели делать прогнозы или управлять процессом - моделируйте. Дело-то ваше.
Ринат Бакиев, чем отличается моделирование с графикой от моделирования без графики?
Тем, что в одном случае Вы видите промежуточный/конечный результат, в другом - нет.
Мат.модель (формулы) - никак не меняются.
xmoonlight, я сейчас не про графику, а геометрию. точнее даже взаимодействие объектов. согласен, что в условном anylogic можно все подключить. И в целом нет идеального решения, но хочется в будущем не страдать при введении новой функциональности
Ринат Бакиев, как в имитационном моделировании вы будете учитывать геометрию? - элементарно. И никак не иначе - если это имеет отношение к теме (например - развитие ваших моделируемых процессов в пространстве). Без нее будет не имитационное моделирование реального процесса, а легкий набросок возможных вариантов без точной базы и гарантированного результат.
xmoonlight, Разница есть и очень значительная, особенно помогает если мат модель говно. Писал недавно симулятор развития юнитов на основе генетического алгоритма, так вот изначально решил попроще на js +canvas, сделал для начала примитивную модель, примитивный рендер, на расчетах когда уже было 1000 юнитов всё изрядно начинало тупить. Потом перешел на C# и думал чисто на WPF рисовать, расчет шли значительно быстрее, но рендер начинал ооочень жестко виснуть. Когда у нас 10.000 юнитов и обзор отдален так что рисовать нужно всех, в итоге пришлось использовать OpenGL, что значетельно ускорило все дело, думал еще переписать на С++ это еще ускорило бы может процентов на 50% в идеале, но забил. Ну моем случае здесь очень сложный рендер, куча элементов поэтому стоило прибегнуть к сторонней графической либе, но если объектов не много и они примитивные, то это не столь важно. Но важно именно ускорение вычислений. В моем случае я не стал распараллеливать вычисления, а это бы еще значительнее ускорило всё. Js подойдет только для простенькой модели, с небольшим количеством не слишком сложных вычислений и отрисовкой не сложной графики.
Если вычисления будут происходить только в realtime пошагово с отрисовкой это еще куда ни шло, а если на сразу нужно получить результат этой симуляции за месяц слаженной работы всей этой техники.Ух да вам быстрее будет это проверить на реальной технике, чем дождаться пока все это просчитает js.
Ринат Бакиев, xmoonlight, box2d слишком примитивная фигня, помню когда то создавал флешку на actionscript 3, использовал этот движок, там порой довольно странно ведут себя сочленения нескольких элементов, когда мы делаем ту же веревку или "гибкий мост", хотя поиграться интересно. Ну, а из серьезного так это Havok, PhysX.
Писал недавно симулятор развития юнитов на основе генетического алгоритма, так вот изначально решил попроще на js +canvas, сделал для начала примитивную модель, примитивный рендер, на расчетах когда уже было 1000 юнитов всё изрядно начинало тупить.
проблема явно была в бесполезных циклах. Я прав? ;)
Break'ов - 0?)
xmoonlight, Если ты про оптимизацию, то там всё ок. Пришлось отказаться от всех этих листов и прочих меделенно работающих классов, хорошо продумать структуру, но вычисления никак не сократить, и они только растут, юниты размножаются, их всё больше и больше, скорость падает всё закономерно.
Если ты про оптимизацию, то там всё ок. Пришлось отказаться от всех этих листов и прочих меделенно работающих классов, хорошо продумать структуру, но вычисления никак не сократить, и они только растут, юниты размножаются, их всё больше и больше, скорость падает всё закономерно.