(более общий вариант Предупреждение: mysql_fetch_array () ожидает, что параметр 1 будет resource, boolean given )
Ресурсы - это тип в PHP (например, строки, целые числа или объекты). Ресурс является непрозрачным блобом без собственной значимой ценности. Ресурс специфичен и определен определенным набором функций или расширений PHP. Например, расширение Mysql определяет два типа ресурсов :
В модуле MySQL есть два типа ресурсов. Первый - идентификатор ссылки для подключения к базе данных, второй - ресурс, который содержит результат запроса.
Расширение cURL определяет другой два типа ресурсов :
... дескриптор cURL и мультирум cURL.
Когда
var_dump
ed значения выглядят так:$resource = curl_init(); var_dump($resource); resource(1) of type (curl)
Это все большинство ресурсов - это числовой идентификатор (
(1)
) определенного типа ((curl)
).Вы переносите эти ресурсы и передаете их различным функциям, для которых такой ресурс что-то значит. Обычно эти функции выделяют определенные данные в фоновом режиме, а ресурс - это просто ссылка, которую они используют для отслеживания этих данных внутри.
«... ожидает, что параметр 1 будет ресурсом, логическим данная "ошибка, как правило, является результатом непроверенной операции, которая должна была создать ресурс, но вместо этого вернула
false
. Например, функцияfopen
имеет это описание:Возвращаемые значения
Возвращает ресурс указателя файла при успешном выполнении или
FALSE
Таким образом, в этом коде
$fp
будет либоresource(x) of type (stream)
, либоfalse
:$fp = fopen(...);
Если вы не операция
fopen
будет успешной или неудачной и, следовательно, будет ли$fp
действительным ресурсом илиfalse
и передать$fp
другой функции, которая ожидает ресурс, вы можете получить вышеуказанную ошибку:$fp = fopen(...); $data = fread($fp, 1024); Warning: fread() expects parameter 1 to be resource, boolean given
Вам всегда нужно проверять возвращаемое значение функций, которые пытаются выделить ресурс , и может выйти из строя :
$fp = fopen(...); if (!$fp) { trigger_error('Failed to allocate resource'); exit; } $data = fread($fp, 1024);
Связанные ошибки:
Нечеткая логика является логикой, где членство состояния является, по существу, плаванием с диапазоном 0.. 1 вместо интервала 0 или 1. Пробег Вы выходите из него, - то, что вещи как, например, изменения, которые Вы вносите в системе управления, несколько естественно более подстраиваются, чем, что Вы получили бы с наивной бинарной логикой.
примером могла бы быть логика, которая возвращает системное действие к исходному состоянию на основе активных соединений TCP. Скажите определение "немного слишком много" соединений TCP на машине как 1 000 и "много слишком многие" как 2000. В любой момент времени Ваша система имеет "слишком много соединения TCP" состояние от 0 (< = 1000) к 1 (> = 2000), который можно использовать в качестве коэффициента в применении безотносительно регулировки механизмов, которые Вы имеете в наличии. Это является намного более прощающим и быстро реагирующим к поведению системы, чем наивная бинарная логика, которая только знает, как определить "слишком много", и отрегулировать полностью, или "не слишком многие", и не дроссель вообще.
Я хотел бы добавить к ответам (которые кивнулись), что, хороший способ визуализировать нечеткую логику, следует:
Традиционно, с бинарной логикой у Вас был бы график, функция принадлежности которого является TRUE или FALSE, тогда как в системе нечеткой логики, функция принадлежности не.
1| | /\ | / \ | / \ 0|/ \ ------------ a b c d
Предполагают в течение секунды, что функция, "любит арахис"
a. kinda likes peanuts b. really likes peanuts c. kinda likes peanuts d. doesn't like peanuts
, сама функция не должна быть треугольной и часто не (это просто легче с искусством ASCII).
А, нечеткий , система будет, вероятно, иметь многие из них, некоторые даже накладывающиеся (даже противоположности) как так:
1| A B | /\ /\ A = Likes Peanuts | / \/ \ B = Doesn't Like Peanuts | / /\ \ 0|/ / \ \ ------------ a b c d
поэтому теперь c является "видом, любит арахис, отчасти не любит арахис", и d, "действительно не любит арахис"
, И можно программировать соответственно на основе той информации
Hope, которой это помогает для визуальных учеников там.
Для создания прочь из ответа хаоса формальная логика является только индуктивно определенным набором, который отображает предложения на оценку. По крайней мере, это - то, как образцовый теоретик думает о логике. В случае сентенциальной булевой логики:
(basis clause) For all A, v(A) in {0,1}
(iterative) For the following connectives,
v(!A) = 1 - v(A)
v(A & B) = min{v(A), v(B)}
v(A | B) = max{v(A), v(B)}
(closure) All sentences in a boolean sentential logic are evaluated per above.
изменения нечеткой логики А были бы индуктивно определены:
(basis clause) For all A, v(A) between [0,1]
(iterative) For the following connectives,
v(!A) = 1 - v(A)
v(A & B) = min{v(A), v(B)}
v(A | B) = max{v(A), v(B)}
(closure) All sentences in a fuzzy sentential logic are evaluated per above.
Уведомление единственной разницей в базовой логике является разрешение оценить предложение как наличие "значения истинности" 0,5. Важным вопросом для модели нечеткой логики является порог, который значит удовлетворенность истины. Это должно спросить: для оценки v (A), поскольку, какое значение D это имеет место, v (A)> D означает, что A удовлетворен.
, Если бы Вы действительно хотите к узнанному больше о неклассических логиках как нечеткая логика, я рекомендовал бы любой Введение в Неклассическую Логику: От того, Если бы до или Возможности и Paradox
, Откладывающий мою шляпу кодера на, я был бы осторожен с использованием нечеткой логики в программировании реального мира из-за тенденции для нечеткой логики, чтобы быть неразрешимым. Возможно, это - слишком много сложности для небольшого усиления. Например, supervaluational логика может сделать очень хорошо для помощи неопределенности модели программы. Или возможно вероятность была бы достаточно хороша. Короче говоря, я должен быть убежден, что модель предметной области соответствует нечеткой логике.
Возможно, пример разрешает, каковы преимущества могут быть:
Скажем, Вы хотите сделать термостат, и Вы хотите, чтобы он был 24 градуса.
<час>Это - то, как Вы реализовали бы его с помощью булевой логики:
Такая система только однажды и некоторое время составит 24 градуса, и это будет очень неэффективно.
<час>Теперь, с помощью нечеткой логики, это было бы похоже на что-то вроде этого:
Эта система всегда будет где-нибудь приблизительно 24 градуса, и это только однажды и только однажды и некоторое время внесет крошечную корректировку. Это также будет более энергосберегающим.
Ну, Вы могли считать работы Bart Kosko , один из 'отцов-основателей''. Нечеткие Взгляды: Новая Наука о Нечеткой логике ' с 1994 читаема (и доступна вполне дешево подержанная через Amazon). По-видимому, у него есть более новая книга' Шум ' с 2006, который также довольно доступен.
В основном, хотя (в моем пересказе - не прочитавший первую из тех книг в течение нескольких лет теперь), нечеткая логика о том, как иметь дело с миром, где что-то, возможно, на 10% прохладно, на 50% тепло, и на 10% горячо, где различные решения могут быть приняты о градусе, для которого различные состояния верны (и не, это не был полностью несчастный случай, что те проценты не составляют в целом 100% - хотя я принял бы исправление в случае необходимости).
Очень хорошее объяснение, со справкой Стиральные машины Нечеткой логики .
Я знаю то, что Вы имеете в виду об этом являющийся трудным пойти от понятия до кода. Я пишу систему выигрыша, которая смотрит на значения sysinfo и/proc в системах Linux и придумывает число между 0 и 10, 10 являющийся худшим абсолютом. Простой пример:
у Вас есть 3 средних числа загрузки (1, 5, 15-минутный) с (по крайней мере) тремя возможными состояниями, хорошими, становясь плохими, плохо. Разворачивая это, у Вас могло быть шесть возможных состояний на среднее число, добавляя 'собирающийся' к трем, что я просто отметил. Все же результат всех 18 возможностей может только вычесть 1 от счета. Повторите это с подкачкой использованный, фактический VM выделенная (фиксировавшая) память и другой материал.. и у Вас есть одна большая миска условных спагетти:)
так же определение, как это - искусство, как Вы реализуете процесс принятия решений, всегда более интересно, чем сама парадигма.. тогда как в булевом мире, скорее сокращение и сухой.
для меня было бы очень легко сказать если load1 < 2 вычитают 1, но не очень точные вообще.
, Если бы можно учить программу делать то, что Вы сделали бы при оценке некоторого стечения обстоятельств и сохранили бы код читаемым, Вы реализовали хороший пример нечеткой логики.
Следующее является видом эмпирического ответа.
простой А (возможно упрощенный ответ) - то, что "нечеткая логика" является любой логикой, которая возвращает значения кроме прямого, верного / ложь, или 1 / 0. Существует много изменений на этом, и они имеют тенденцию быть очень зависящими от домена.
, Например, в моей предыдущей жизни я сделал поисковые системы, которые использовали "подобие содержания, ищущее" в противоположность тогда общему "поиску с использованием булевых операторов". Наша система подобия использовала Коэффициент Косинуса векторов взвешенного атрибута, представляющих запрос и документы, и произвела значения в диапазоне 0.. 1. Пользователи предоставили бы "обратную связь по релевантности", которая использовалась для смещения вектора запросов в направлении желательных документов. Это несколько связано с обучением, сделанным в определенных системах AI, где логика "вознаграждена" или "наказала" за результаты пробных прогонов.
Прямо сейчас Netflix проводит соревнования для нахождения лучшего алгоритма предложения для их компании. См. http://www.netflixprize.com/ . Эффективно все алгоритмы могли быть названы "нечеткой логикой"