Что такое нечеткая логика?

Предупреждение: [fункция] ожидает, что параметр 1 будет ресурсом, boolean задан

(более общий вариант Предупреждение: 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);

Связанные ошибки:

43
задан Charles Stewart 11 January 2010 в 09:04
поделиться

8 ответов

Нечеткая логика является логикой, где членство состояния является, по существу, плаванием с диапазоном 0.. 1 вместо интервала 0 или 1. Пробег Вы выходите из него, - то, что вещи как, например, изменения, которые Вы вносите в системе управления, несколько естественно более подстраиваются, чем, что Вы получили бы с наивной бинарной логикой.

примером могла бы быть логика, которая возвращает системное действие к исходному состоянию на основе активных соединений TCP. Скажите определение "немного слишком много" соединений TCP на машине как 1 000 и "много слишком многие" как 2000. В любой момент времени Ваша система имеет "слишком много соединения TCP" состояние от 0 (< = 1000) к 1 (> = 2000), который можно использовать в качестве коэффициента в применении безотносительно регулировки механизмов, которые Вы имеете в наличии. Это является намного более прощающим и быстро реагирующим к поведению системы, чем наивная бинарная логика, которая только знает, как определить "слишком много", и отрегулировать полностью, или "не слишком многие", и не дроссель вообще.

37
ответ дан chaos 26 November 2019 в 22:41
поделиться

Я хотел бы добавить к ответам (которые кивнулись), что, хороший способ визуализировать нечеткую логику, следует:

Традиционно, с бинарной логикой у Вас был бы график, функция принадлежности которого является 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, которой это помогает для визуальных учеников там.

37
ответ дан Steven Evers 26 November 2019 в 22:41
поделиться

Для создания прочь из ответа хаоса формальная логика является только индуктивно определенным набором, который отображает предложения на оценку. По крайней мере, это - то, как образцовый теоретик думает о логике. В случае сентенциальной булевой логики:

 (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 логика может сделать очень хорошо для помощи неопределенности модели программы. Или возможно вероятность была бы достаточно хороша. Короче говоря, я должен быть убежден, что модель предметной области соответствует нечеткой логике.

6
ответ дан Alan 26 November 2019 в 22:41
поделиться

Возможно, пример разрешает, каковы преимущества могут быть:

Скажем, Вы хотите сделать термостат, и Вы хотите, чтобы он был 24 градуса.

<час>

Это - то, как Вы реализовали бы его с помощью булевой логики:

  • Rule1: нагрейтесь на полной мощности, когда будет холоднее, чем 21 градус.
  • Rule2: остыньте на полной мощности, когда будет теплее, чем 27 градусов.

Такая система только однажды и некоторое время составит 24 градуса, и это будет очень неэффективно.

<час>

Теперь, с помощью нечеткой логики, это было бы похоже на что-то вроде этого:

  • Rule1: Для каждого градуса, что холоднее, чем 24 градуса, поднимите нагреватель одна метка (0 в 24).
  • Rule2: Для каждого градуса, что теплее, чем 24, отступают, поднимают более прохладную метку (0 в 24).

Эта система всегда будет где-нибудь приблизительно 24 градуса, и это только однажды и только однажды и некоторое время внесет крошечную корректировку. Это также будет более энергосберегающим.

4
ответ дан Wouter van Nifterick 26 November 2019 в 22:41
поделиться

Ну, Вы могли считать работы Bart Kosko , один из 'отцов-основателей''. Нечеткие Взгляды: Новая Наука о Нечеткой логике ' с 1994 читаема (и доступна вполне дешево подержанная через Amazon). По-видимому, у него есть более новая книга' Шум ' с 2006, который также довольно доступен.

В основном, хотя (в моем пересказе - не прочитавший первую из тех книг в течение нескольких лет теперь), нечеткая логика о том, как иметь дело с миром, где что-то, возможно, на 10% прохладно, на 50% тепло, и на 10% горячо, где различные решения могут быть приняты о градусе, для которого различные состояния верны (и не, это не был полностью несчастный случай, что те проценты не составляют в целом 100% - хотя я принял бы исправление в случае необходимости).

3
ответ дан Jonathan Leffler 26 November 2019 в 22:41
поделиться

Очень хорошее объяснение, со справкой Стиральные машины Нечеткой логики .

3
ответ дан Adeel Ansari 26 November 2019 в 22:41
поделиться

Я знаю то, что Вы имеете в виду об этом являющийся трудным пойти от понятия до кода. Я пишу систему выигрыша, которая смотрит на значения sysinfo и/proc в системах Linux и придумывает число между 0 и 10, 10 являющийся худшим абсолютом. Простой пример:

у Вас есть 3 средних числа загрузки (1, 5, 15-минутный) с (по крайней мере) тремя возможными состояниями, хорошими, становясь плохими, плохо. Разворачивая это, у Вас могло быть шесть возможных состояний на среднее число, добавляя 'собирающийся' к трем, что я просто отметил. Все же результат всех 18 возможностей может только вычесть 1 от счета. Повторите это с подкачкой использованный, фактический VM выделенная (фиксировавшая) память и другой материал.. и у Вас есть одна большая миска условных спагетти:)

так же определение, как это - искусство, как Вы реализуете процесс принятия решений, всегда более интересно, чем сама парадигма.. тогда как в булевом мире, скорее сокращение и сухой.

для меня было бы очень легко сказать если load1 < 2 вычитают 1, но не очень точные вообще.

, Если бы можно учить программу делать то, что Вы сделали бы при оценке некоторого стечения обстоятельств и сохранили бы код читаемым, Вы реализовали хороший пример нечеткой логики.

2
ответ дан Tim Post 26 November 2019 в 22:41
поделиться

Следующее является видом эмпирического ответа.

простой А (возможно упрощенный ответ) - то, что "нечеткая логика" является любой логикой, которая возвращает значения кроме прямого, верного / ложь, или 1 / 0. Существует много изменений на этом, и они имеют тенденцию быть очень зависящими от домена.

, Например, в моей предыдущей жизни я сделал поисковые системы, которые использовали "подобие содержания, ищущее" в противоположность тогда общему "поиску с использованием булевых операторов". Наша система подобия использовала Коэффициент Косинуса векторов взвешенного атрибута, представляющих запрос и документы, и произвела значения в диапазоне 0.. 1. Пользователи предоставили бы "обратную связь по релевантности", которая использовалась для смещения вектора запросов в направлении желательных документов. Это несколько связано с обучением, сделанным в определенных системах AI, где логика "вознаграждена" или "наказала" за результаты пробных прогонов.

Прямо сейчас Netflix проводит соревнования для нахождения лучшего алгоритма предложения для их компании. См. http://www.netflixprize.com/ . Эффективно все алгоритмы могли быть названы "нечеткой логикой"

0
ответ дан Jonathan Leffler 26 November 2019 в 22:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: