Algorithm 什么是贪婪算法,它选择n对,使最大∆ 在这对中是不是越小越好?

Algorithm 什么是贪婪算法,它选择n对,使最大∆ 在这对中是不是越小越好?,algorithm,greedy,Algorithm,Greedy,我有n只a码的小狗和n只a码的小猫,我想做一对小狗小猫。特别是,我想要一对大小差别尽可能小的小猫小狗 一个高效、贪婪的算法是什么呢?它选择n对小猫小狗,以便 大多数大小不同的对是否尽可能小?更准确地说,s_i表示小狗i的大小,s_j表示小猫j的大小。给我一双,让我看看∆i、 j=| s|i− s|u j|。算法应选择配对,以确保最大∆i、 所有配对的j都尽可能小 这里有一个例子:有三只6号、4号和9号小狗,还有三只8号、7号和3号小猫。如果将它们配对,则最大∆ 为6,而如果将它们配对,则最大∆

我有n只a码的小狗和n只a码的小猫,我想做一对小狗小猫。特别是,我想要一对大小差别尽可能小的小猫小狗

一个高效、贪婪的算法是什么呢?它选择n对小猫小狗,以便 大多数大小不同的对是否尽可能小?更准确地说,s_i表示小狗i的大小,s_j表示小猫j的大小。给我一双,让我看看∆i、 j=| s|i− s|u j|。算法应选择配对,以确保最大∆i、 所有配对的j都尽可能小

这里有一个例子:有三只6号、4号和9号小狗,还有三只8号、7号和3号小猫。如果将它们配对,则最大∆ 为6,而如果将它们配对,则最大∆ 是1,这显然是最佳的,因为,例如,6号的小狗只能 与一只大小为≥ 1远离小狗的大小。

最佳贪婪算法是:

将小狗从最小的到最大的领带随意分开。表示这样的列表P。 将小猫从最小的到最大的领带随意分开。表示这样的列表K。 根据索引P[0]、K[0]、P[1]、K[1]、…、P[n-1]、K[n-1]选择对。 使用交换论证可以证明这种选择是最优的

定义:如果有两对A,d和b,c使得A
引理1:所有没有反转的排列都有相同的结果∆. 给你的任务:P,比较a=b和c 主张:存在一个没有反转的最优安排。 证据至少存在一个最优安排,我们称之为O。 如果O没有倒数,我们就完成了。 否则,在将a,d和b,c替换为a,c和b,d之后,我们得到了一个具有较少反转的最优排列。初始安排最多可以有Cn2反转,因此在最多Cn2掉期之后,我们得到了一个没有反转的最优安排

我们知道a a=最大值| a-c |,| b-d| a=| b-d |然后max | a-d |,| b-c |>=max | a-c |,| b-d| a>=c和d=max | a-c |,| b-d| 在所有情况下,交换安排不会增加∆ 价值,我们知道初始安排具有最佳价值∆ 所以我们的索赔是真实的


通过引理1,并声称贪婪算法是最优的。

我投票结束这个问题,因为它似乎是一个没有任何解决方案的家庭作业转储。@Henry这不是一个家庭作业问题,我确实有一个解决方案,但我现在有点忙,没有反转的所有安排都有相同的结果∆ 你的意思是说,如果我重新安排猫和狗的配对,每一对的差异仍然是一样的吗?或者,如果我要改变他们与谁匹配?@JohnAdams看看倒置的定义,了解你的问题和他们的答案。都在那里。如果两个不同的匹配没有反转,则它们具有相同的匹配∆.