Telegram Group & Telegram Channel
Алгоритм Дейкстры в Swift, используя GameplayKit. Погодите, что?!

Если вы когда-либо слышали что-то про теорию графов, то наверняка знакомы с алгоритмом Дейкстры.
Краткий термин для понимания, для чего он: алгоритм находит кратчайшие пути от одной из вершин графа до всех остальных, важное условие — он работает для рёбер без отрицательного веса.

Примеры задач, которые можно решить с помощью данного алгоритма:

Дана сеть автомобильных дорог, соединяющих города. Некоторые дороги односторонние. Требуется найти кратчайшие пути от исходного города до любого другого (если двигаться можно только по дорогам).

Имеется некоторое количество авиарейсов между городами мира, для каждого известна стоимость. Требуется найти самый дешёвый билет.

📖 Федерико Занетелло в одной из своих статей обратил внимание на то, что иногда для решения сложных задач можно пойти по нестандартному пути (кратчайшему, я бы сказал😅).

Что умеет GameplayKit?

В порядке перечисления: рандомизация, сущности и компоненты, стейт-машины, реализация минимакса, нахождение путей, системы правил, а также возможность создания симуляций для игровых персонажей.

Пожалуй, вы уже видите, куда клонит автор?

🛠 С помощью подкласса для GKGraphNode и нескольких строк кода автор покажет, как можно реализовать нахождение кратчайшего пути и использовать в вашем коде.

🛠 Сам проект также опенсорсный и находится здесь.

P.S. Заголовок материала показывает не всю суть, так как GameplayKit внутри может использовать и алгоритм Форда-Беллмана. Спасибо автору, который об этом также указывает.

И ещё один полезный вывод от Федерико заключается в том, что использовать коробочное решение иногда лучше, так как, например, GameplayKit поддерживается инженерами Apple постоянно, а наши с вами ресурсы не бесконечны.

Впрочем, эта тема гораздо шире и заслуживает отдельного обсуждения как-нибудь в будущем.

@iOS Dev
🔥21👍9❤‍🔥2👏1😁1



tg-me.com/iosdev/516
Create:
Last Update:

Алгоритм Дейкстры в Swift, используя GameplayKit. Погодите, что?!

Если вы когда-либо слышали что-то про теорию графов, то наверняка знакомы с алгоритмом Дейкстры.
Краткий термин для понимания, для чего он: алгоритм находит кратчайшие пути от одной из вершин графа до всех остальных, важное условие — он работает для рёбер без отрицательного веса.

Примеры задач, которые можно решить с помощью данного алгоритма:

Дана сеть автомобильных дорог, соединяющих города. Некоторые дороги односторонние. Требуется найти кратчайшие пути от исходного города до любого другого (если двигаться можно только по дорогам).

Имеется некоторое количество авиарейсов между городами мира, для каждого известна стоимость. Требуется найти самый дешёвый билет.

📖 Федерико Занетелло в одной из своих статей обратил внимание на то, что иногда для решения сложных задач можно пойти по нестандартному пути (кратчайшему, я бы сказал😅).

Что умеет GameplayKit?

В порядке перечисления: рандомизация, сущности и компоненты, стейт-машины, реализация минимакса, нахождение путей, системы правил, а также возможность создания симуляций для игровых персонажей.

Пожалуй, вы уже видите, куда клонит автор?

🛠 С помощью подкласса для GKGraphNode и нескольких строк кода автор покажет, как можно реализовать нахождение кратчайшего пути и использовать в вашем коде.

🛠 Сам проект также опенсорсный и находится здесь.

P.S. Заголовок материала показывает не всю суть, так как GameplayKit внутри может использовать и алгоритм Форда-Беллмана. Спасибо автору, который об этом также указывает.

И ещё один полезный вывод от Федерико заключается в том, что использовать коробочное решение иногда лучше, так как, например, GameplayKit поддерживается инженерами Apple постоянно, а наши с вами ресурсы не бесконечны.

Впрочем, эта тема гораздо шире и заслуживает отдельного обсуждения как-нибудь в будущем.

@iOS Dev

BY iOS Dev




Share with your friend now:
tg-me.com/iosdev/516

View MORE
Open in Telegram


telegram Telegram | DID YOU KNOW?

Date: |

Unlimited members in Telegram group now

Telegram has made it easier for its users to communicate, as it has introduced a feature that allows more than 200,000 users in a group chat. However, if the users in a group chat move past 200,000, it changes into "Broadcast Group", but the feature comes with a restriction. Groups with close to 200k members can be converted to a Broadcast Group that allows unlimited members. Only admins can post in Broadcast Groups, but everyone can read along and participate in group Voice Chats," Telegram added.

telegram from us


Telegram iOS Dev
FROM USA