脚本宝典收集整理的这篇文章主要介绍了PHP贪婪算法解决0-1背包问题实例分析,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
本文实例讲述了PHP贪婪算法解决0-1背包问题的方法。分享给大家供大家参考。具体分析如下:
贪心算法解决0-1背包问题,全局最优解通过局部最优解来获得!比动态规划解决背包问题更灵活!
weight=$weight; $this->PRice=$price; } } //生成数据 $n=10; for($i=1;$i<=$n;$i++){ $weight="rand(1,20);" $price="rand(1,10);" $x[$i]="new" tanxin($weight,$price);="" }="" 输出结果="" function="" display($x)="" {="" $len="count($x);" foreach($x="" as="" $val){="" echo="" $val-="">weight,' ',$val->price; echo '
'; } } //按照价格和重量比排序 function tsort(&$x) { $len=count($x); for($i=1;$i<=$len;$i++) {="" for($j="">=$len;$i++)><=$len-$i;$j++) {="" $temp="$x[$j];" $res="$x[$j+1]-">price/$x[$j+1]->weight; $temres=$temp->price/$temp->weight; if($res>$temres){ $x[$j]=$x[$j+1]; $x[$j+1]=$temp; } } } } //贪心算法 function tanxin($x,$totalweight=50) { $len=count($x); $allprice=0; for($i=1;$i<=$len;$i++){ if($x[$i]-="">weight>$totalweight) break; else{ $allprice+=$x[$i]->price; $totalweight=$totalweight-$x[$i]->weight; } } if($i<$len) $allprice+="$x[$i]-">price*($totalweight/$x[$i]->weight); return $allprice; } tsort($x);//按非递增次序排序 display($x);//显示 echo '0-1背包最优解为:'; echo tanxin($x);$len)>=$len;$i++){>=$len-$i;$j++)>=$n;$i++){>
以上是脚本宝典为你收集整理的PHP贪婪算法解决0-1背包问题实例分析全部内容,希望文章能够帮你解决PHP贪婪算法解决0-1背包问题实例分析所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。