Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Алгоритм брона-кербоша на пхп 
:(
    Опции темы
bigslick
  Дата 8.7.2010, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 16.5.2010

Репутация: нет
Всего: нет



Всем добрый день, занимаюсь сейчас реализацией алгоритма брона-кербоша на пхп(алгоритм выделения максимальной клики). Дело в том, что писал я его в свое время на C# а сейчас переписываю под php, но у меня возникли некоторые трудности, в частности вот такая ошибка например:Warning: array_diff() [function.array-diff]: Argument #1 is not an array in C:\Users\afanp\Documents\Delphi for PHP Projects\unit2.php on line 46(далее эта строка находится под номером 41)
С чем она может быть связана? 
Код

function BronKerbosh($CurrentSet = array(),$UsedSet = array(),$NotUsedSet = array(),$Verticies = array(), $MaxSet = array())
{
  if((count($UsedSet) == 0) && (count($NotUsedSet)==0) && (count($CurrentSet) > count($MaxSet)) )
  {
    $MaxSet = array();
    $temp = $CurrentSet;
    while(count($temp)!=0)
    {
     $MaxSet[] = array_shift($temp);
    }

   return $MaxSet;
  }
  while((count($NotUsedSet)!=0))
  {
     $v = current($NotUsedSet);

     $NextUsedSet = array();
     $NextNotUsedSet = array();
     $NextUsedSet = $UsedSet;
     $NextNotUsedSet = $NotUsedSet;

     $temparray = array();
     $temparray = $Verticies[$v]->Verticies;

     $NextUsedSet = RemoveFrom($NextUsedSet,$temparray);
     $NextNotUsedSet = RemoveFrom($NextNotUsedSet, $temparray);

     $NextNotUsedSet  = array_diff($NextNotUsedSet,array($v));
     $CurrentSet[]= $v;
     BronKerbosh($CurrentSet,$NextUsedSet,$NextNotUsedSet,$Verticies,$MaxSet);
     $CurrentSet = array_diff($CurrentSet,array($v));
     $NotUsedSet = array_diff($NotUsedSet,array($v));
     $UsedSet[] = $v;
  }
}

function RemoveFrom($ToRemove = array(), $A = array())
{
try{
 $temp = array_diff($ToRemove,$A);
 }
 catch  (Exception $e){};
 $result = array();
 while(count($temp)!=0)
 {
   $result[] = array_shift($temp);
 }
 return $result;
}


Помимо этого, в дебагере значение массива MaxSet постоянно прописывается null, и когда алгоритм должен завершаться с максимальным МНМ, он почему-то заходит на еще один круг. Никак не могу разобраться 

Это сообщение отредактировал(а) bigslick - 8.7.2010, 16:22
PM MAIL   Вверх
bars80080
Дата 8.7.2010, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(bigslick @  8.7.2010,  16:14 Найти цитируемый пост)
С чем она может быть связана? 

с тем что написано, с тем и связано:

Цитата(bigslick @  8.7.2010,  16:14 Найти цитируемый пост)
Warning: array_diff() [function.array-diff]: Argument #1 is not an array in

аргумент для функции - не массив. проверьте перед вставкой аргумента его значение var_dump()
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1049 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.