用值和距离计算父母和孩子的算法

时间:2012-10-11 09:40:48

标签: algorithm graph

我知道像dijkstra,prim,kruskal这样的算法,但我不知道如何解决以下问题。

我有一个包含整数值的城市列表。 我有一个函数,根据通过的距离范围计算给定城市的距离。如果你转移到一个城市和20公里的距离将返回距离城市那个距离的所有城市。

条件:

  • 我想将所有超过给定值限制的城市设置为父级。
  • 如果父母城市在给定距离内有其他城市父母的价值更高,则设置为具有更多价值的城市父母城市和具有更少价值的儿童城市。
  • 对于所有儿童城市,将城市父母设置为在给定距离内具有更多价值的城市父母,如果没有父城市,则子城市将不会拥有父母。

很抱歉,如果我不能很好地解释我。

修改

我添加了一些伪代码来试图帮助你解决问题:

//Get array of cities ordered ASC by value and each city is marked as parent or not.
$cities = getCitiesByValue(); 

foreach($cities as $city) {

  if($city->isParent) {
    //Get near(20km) PARENT cities ordered  ASC
    $nearCities = findNearBy($city, $distance = 20); 

    foreach($nearCities as $nearCity) {

      if($nearCity->value > $city->value) {
        $city->setParent($nCity);
        $city->setAsChild;
      }
    }
  }

  elseif($city->isChild) {
    //Get near(50km) PARENT cities ordered  ASC
    $nearCities = findNearBy($city, $distance = 50);

    foreach($nearCities as $nearCity) {

      if($nearCity->value > $city->value) {
        $city->setParent($nCity);
      }
    }
  }
}

0 个答案:

没有答案