iphone – 基于允许的跟随对象的基于算法的对象排序重新排序

iphone – 基于允许的跟随对象的基于算法的对象排序重新排序,第1张

概述我需要开发一种算法,该算法将采用一组无序对象,并根据允许进行的对象智能地重新排序. 我最初的设计/思想是使用Core Data将一个具有多对多关系(“canGoTo”)的实体(例如“Objects”)与一组可以跟随所选Objects *对象的对象一起存储回自身. 请考虑以下示例,其中每个对象都有一组对象可以继续(实际的对象集更大). Object A - can go to -> Objects 我需要开发一种算法,该算法将采用一组无序对象,并根据允许进行的对象智能地重新排序.

我最初的设计/思想是使用Core Data将一个具有多对多关系(“canGoTo”)的实体(例如“Objects”)与一组可以跟随所选Objects *对象的对象一起存储回自身.

请考虑以下示例,其中每个对象都有一组对象可以继续(实际的对象集更大).

Object A - can go to -> Objects B,C,DObject B - can go to -> Objects E,F,G,Y,HObject C - can go to -> Objects P,S,ZObject D - can go to -> Objects H,J,X...Object G - can go to -> Objects R,ZObject H - can go to -> Objects G,Z...Object Y - can go to -> Objects ZObject Z - can go to -> Objects NulL (no objects follow this object)

如果给程序一组对象(R,B,H,A,Z),程序需要找到如何重新排序对象以找到可接受的结构.因此,该组的正确结果将是A-> B-> H-> G-> Y-> Z

什么策略是最好的,或最有效的,来解决这个问题?当我成功触摸传递中的所有对象时,我是否应该循环重新排序并退出?使用遗传算法生成输出和分析世代(即http://ijoshsmith.com/2012/04/08/simple-genetic-algorithm-in-objective-c/)?或者我是否使用Insertion Sort分析所有对象并将对象重新排序到序列中可以适合的位置?请记住,对象的真实列表将更像是30个对象而不是6个,并且在完美的世界中,程序将选择最佳方式来订购列表(可能基于“canGoTo”优先级).

任何建议/最佳实践将不胜感激.很抱歉没有示例代码,目前处于思考阶段.

解决方法 您可以将问题建模为 Directed Acyclic Graph,然后对其执行 Topological Sorting.这将给出您正在寻找的确切输出. 总结

以上是内存溢出为你收集整理的iphone – 基于允许的跟随对象的基于算法的对象排序/重新排序全部内容,希望文章能够帮你解决iphone – 基于允许的跟随对象的基于算法的对象排序/重新排序所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1004715.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存