• Авторизация


#5 из архивов 01-03-2007 23:22 к комментариям - к полной версии - понравилось!


Копаясь в старых исходниках нарыл.
3-й курс. Предмет: "Теория принятия решений"
Решение задача коммивояжера "жадным методом".


PHP:

<?
$matrix
=array(
array(-
1596359,89),
array(
8, -18,59213114),
array(
69, -116737,5),
array(
7114, -14293710),
array(
4632, -1281542),
array(
52284, -138147),
array(
8131653, -1584),
array(
724125138, -1714),
array(
1237514295, -17),
array(
5861131214, -1),
);

$t=array();$p=array(); $i=0;
while (
$i<count($matrix)){list ($p[$i],$t[$i])=JM($matrix$i0, array()); $i++;}
print_r ($t);print_r ($p);

function 
JM ($src$i$t$vect){
    
$mV=1000$mK=0;
        foreach (
$src[$i] as $k=>$v) if (!in_array($k,$vect)) if ($v && $v<=$mV){$mV=$v$mK=$k;}
    if  (
$mV==1000$mV=0;
    if  (
count($vect)==count($src)) {return array($vect$t);}
    else 
array_push($vect,$i); $t+=$mV; list ($vect$t)=JM($src$mK$t$vect);
    return array(
$vect$t);
}
?>



Все это добро весит меньше килобайта :) Первый раз наблюдал и слышал звук синхронно падающих челюстей :-)
вверх^ к полной версии понравилось! в evernote
Комментарии (2):
Это что-то из раздела Транспортных задач ? А можно условие , лень идти по исходнику , а интересно :)
Гриня 02-03-2007-09:08 удалить
Апрельский_Ёжик, угу, транспортные.

сам не помню точно, гугль в помощь ;)


Комментарии (2): вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник #5 из архивов | Гриня - /* Записки программиста */ | Лента друзей Гриня / Полная версия Добавить в друзья Страницы: раньше»