Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
    Начать продвижение сайта
  • Описание функций. В тексте алгоритма использовано следующее обозначение:






    В тексте алгоритма использовано следующее обозначение:

    < выходные данные> = < название функции > (< входные данные>).

     

    Функция Описание
    сформировать вариант расстановки границ периодов динамики Для “ номер варианта расстановки границ ” случайным образом сгенерировать возрастающую последовательность натуральных чисел в количестве “ ЧПД ” из интервала (0, самый последний момент наблюдения признака среди всех примеров заболевания).
    сформировать ОКП заболевания по признаку На основе “ примеры заболевания ” по определяющим соотношениям сформировать значения интересных параметров “ значение для периода ”, “нижняя граница ”, “ верхняя граница ” для “ вариант расстановки границ ”.
    решить задачу диагностики по признаку На основе контрпримеров заболевания определить количество ИБ, которое отвергает “ ОКП заболевания по признаку ” (алгоритм решения этой задачи представлен ниже).
    сократить множество ОКП заболевания по признаку Для текущего заболевания среди “ все ОКП заболевания по признаку ” осуществить выбор таких из них, которые отвергают максимум ИБ контрпримеров этого заболевания. В случае, когда таких ОКП находится несколько, они становятся конкурирующими. Остальные ОКП удаляются.
    скомбинировать ОКП заболевания по всем признакам, входящим в его КК Для текущего заболевания среди “ все ОКП заболевания по всем признакам ” найти наилучшую их комбинацию, отвергающую максимум ИБ контрпримеров этого заболевания.

    Процедура “решить задачу диагностики по признаку”

     

    Используются следующие структуры данных:

    · битовый массив – массив с числом элементов, равным количеству ИБ контрпримеров заболевания. Если “ ОКП заболевания по признаку ” отвергает некоторую ИБ из контрпримеров этого заболевания, то соответствующий элемент массива получает значение 1, иначе – 0.

    · последовательность – массив с числом элементов, равным количеству МН в отдельно взятой ИБ из контрпримеров заболевания. Для каждого МН в массив записывается номер периода, в который попадает (по значению и временным границам) этот МН.

     

    битовый массив = создать битовый массив
    (1.. количество ИБ контрпримеров);

    ДЛЯ ВСЕХ ИБ контрпримеров ВЫПОЛНЯТЬ

    последовательность = создать последовательность
    (1.. количество МН в ИБ);

    ОТ I = 1 ДО количество МН в ИБ ВЫПОЛНЯТЬ

    последовательность [I] = 0;

    последовательность построена = ЛОЖЬ;

    закончить обработку ИБ = ЛОЖЬ;

    текущий период = 1;

    текущий МН = 1;

    //Проход по МН из ИБ до тех пор, пока либо не будет построена последовательность (ИБ принята), либо не будет установлено, что построить её невозможно (ИБ отвергнута)

    ПОКА (текущий МН < = количество МН) И
    (закончить обработку ИБ = ЛОЖЬ) ВЫПОЛНЯТЬ

    результат обработки = обработать момент наблюдения
    (текущий МН, текущий период);

    ВЫБОР результат обработки ИЗ

    0:

    //Переход на следующий МН

    ЕСЛИ текущий МН < количество МН

    ТО текущий МН += текущий МН;

    последовательность [ текущий МН ] =
    текущий период;

    ИНАЧЕ последовательность построена = ИСТИНА;

    1:

    //Откат назад на предыдущий МН или увеличение текущего периода (если МН не подходит по значению или при проверке на верхнюю границу)

    ЕСЛИ текущий период < ЧПД

    ТО текущий период += текущий период;

    ИНАЧЕ

    ПОКА (текущий МН > 1) И
    (последовательность
    [ текущий МН – 1] = ЧПД)

    ВЫПОЛНЯТЬ текущий МН -= текущий МН;

    ЕСЛИ текущий МН > 1

    ТО текущий период = последовательность
    [ текущий МН - 1] + 1;

    текущий МН -= текущий МН;

    ИНАЧЕ закончить обработку ИБ = ИСТИНА;

    2:

    //Откат назад на пред пред ыдущий МН (если МН не подходит при проверке на нижнюю границу)

    ПОКА (текущий МН > 2) И
    (последовательность [ текущий МН - 2] == ЧПД)

    ВЫПОЛНЯТЬ текущий МН -= текущий МН;

    ЕСЛИ текущий МН > 2

    ТО текущий период = последовательность
    [ текущий МН - 2] + 1;

    текущий МН -= текущий МН;

    ИНАЧЕ закончить обработку ИБ = ИСТИНА;

    3:

    //Закончить обработку ИБ

    закончить обработку ИБ = ИСТИНА;

    ЗАКОНЧИТЬ ВЫБОР

    ЗАКОНЧИТЬ ПОКА

    //Проверка, построена ли последовательность (отвергнута ли ИБ)

    ЕСЛИ последовательность построена == ЛОЖЬ

    ТО битовый массив [ номер ИБ ] = 1;

    ЗАКОНЧИТЬ ДЛЯ ВСЕХ.


    Функция “обработать момент наблюдения”

     

    //Определить номер минимального периода, в который при проверке по значению и временным границам попадает значение в “ текущий МН ”, начиная с “ текущий период ” (если не попадает ни в один из периодов, то результат возвращается равным нулю).

     

    минимальный период = определить период по значению в МН
    (текущий МН, текущий период);

    ЕСЛИ минимальный период == 0

    ТОЕСЛИ последовательность [1] < ЧПД

    ТО результат обработки = 1;

    ИНАЧЕ результат обработки = 3;

    ИНАЧЕ

    //Проверка временных границ

    текущий период = минимальный период;

    ЕСЛИ последовательность [ текущий МН ]== 1

    ТО результат по границе =
    проверить верхнюю границу (1);

    ИНАЧЕ

    ЕСЛИ текущий МН == 1

    ТО результат по границе =
    проверить верхнюю границу
    (2);

    ЕСЛИ результат по границам == 0

    ТО результат по границе =
    проверить
    нижнюю границу
    (ИСТИНА);

    ИНАЧЕ

    результат по границе =
    проверить верхнюю границу (3);

    ЕСЛИ (последовательность
    [ текущий МН ] < >
    последовательность
    [ текущий МН - 1])

    ТО результат по границе =
    проверить
    нижнюю границу
    (ЛОЖЬ);

    результат обработки = результат по границе.

     


    Функция “определить период по значению в МН”

     

    //Определить “ минимальный период ”, в который попадает значение в “ текущий МН ”, начиная с “ текущий период ” (если не попадает ни в один из периодов, то результат возвращается равным нулю).

     

    минимальный период = 0;

    период для МН фиксирован = ЛОЖЬ;

    ПОКА (текущий период < = ЧПД) И
    (период для МН фиксирован = ЛОЖЬ) ВЫПОЛНЯТЬ

    ЕСЛИ моменты наблюдения [2, текущий МН ] ПРИНАДЛЕЖИТ
    значения для периода из БЗ (текущий период)

    ТО минимальный период = текущий период;
    период для МН фиксирован = ИСТИНА;

    ИНАЧЕ текущий период += текущий период;

    ЕСЛИ текущий период > ЧПД

    ТО минимальный период = 0.

     

    Функция “проверить верхнюю границу (флаг)”

     

    // Возвращает 0, если проверка прошла успешно или 1 - если наоборот.

     

    сумма верхних границ = 0;

    ВЫБОР из флаг

    1:

    //Проверка МН, попавшего в первый период

    ЕСЛИ моменты наблюдения [1, текущий МН ]> верхняя граница [1]

    ТО результат по границе = 1

    ИНАЧЕ результат по границе = 0;

    2:

    //Проверка самого первого МН, попавшего НЕ в первый период

    ОТ I = 1 ДО текущий период ВЫПОЛНЯТЬ

    сумма верхних границ = сумма верхних границ +
    верхняя граница [I];

    ЕСЛИ моменты наблюдения [1, текущий МН ]>
    сумма верхних границ

    ТО результат по границе = 1

    ИНАЧЕ результат по границе = 0;

    3:

    //Проверка НЕ первого МН, попавшего НЕ в первый период

    ОТ I = 1 ДО текущий период ВЫПОЛНЯТЬ

    сумма верхних границ = сумма верхних границ +
    верхняя граница [I];

    ЕСЛИ моменты наблюдения [1, текущий МН ]>
    сумма верхних границ

    ТО результат по границе = 1

    ИНАЧЕ

    //Проверяем разности с предыдущими МН

    сумма верхних границ = 0;

    I = текущий период;

    результат по границе = 0;

    ПОКА (I > = 2) И (результат по границе == 0) ВЫПОЛНЯТЬ

    первый = первый МН в периоде (I);

    сумма верхних границ = сумма верхних границ +
    верхняя граница (I);

    ЕСЛИ первый < > -1

    ТО

    ЕСЛИ (моменты наблюдения
    [1, текущий МН ] –
    моменты наблюдения
    [1, переменный МН ]) >
    сумма верхних границ

    ТО результат по границе = 1

    ИНАЧЕ результат по границе = 0;

    I -= I;

    ЗАКОНЧИТЬ ВЫБОР.

     


    Функция “проверить нижнюю границу (флаг)”

     

    // Возвращает 0, если проверка прошла успешно или 2 - если наоборот.

     

    сумма верхних границ = 0;

    ЕСЛИ флаг == ИСТИНА

    ТО //Проверка первого МН, попавшего НЕ в первый период.

    ОТ J = 1 ДО текущий период ВЫПОЛНЯТЬ

    сумма нижних границ = сумма нижних границ +
    нижняя граница [J];

    ЕСЛИ моменты наблюдения [1, текущий МН ]<
    сумма нижних границ

    ТО результат по границе = 2

    ИНАЧЕ результат по границе = 0;

    ИНАЧЕ //Проверка НЕ первого МН, попавшего НЕ в первый период.

    ОТ I = 1 ДО (текущий период – 1) ВЫПОЛНЯТЬ

    сумма нижних границ = сумма нижних границ +
    нижняя граница [I];

    ЕСЛИ моменты наблюдения [1, текущий МН ]<
    сумма нижних границ

    ТО результат по границе = 2

    ИНАЧЕ //Проверка разности с предыдущими МН.

    сумма нижних границ = 0;

    I = текущий период - 1;

    результат по границе = 0;

    ПОКА (I > = 2) И (результат по границе == 0) ВЫПОЛНЯТЬ

    последний = последний МН в периоде
    (I – 1);

    сумма нижних границ = сумма нижних границ + нижняя граница [I];

    ЕСЛИ последний < > -1 ТО

    ЕСЛИ (моменты наблюдения
    [1, текущий МН ] –
    моменты наблюдения
    [1, переменный МН ]) <
    сумма нижних границ

    ТО результат по границе = 2

    ИНАЧЕ результат по границе = 0;

    I = I – 1.

    Функция “первый МН в периоде (период)”

     

    //Возвращает номер первого МН в последовательности попавшего в “период” или -1, если в последовательность нет такого МН.

     

    первый = -1;

    К = 1;

    ПОКА (K < = длина последовательности) И (первый == -1) ВЫПОЛНЯТЬ

    ЕСЛИ последовательность [К] == период

    ТО первый = К;

    К += К.

     

    Функция “последний МН в периоде (период)”

     

    //Возвращает номер последнего МН в последовательности попавшего в “период” или -1, если в последовательность нет такого МН.

     

    последний = -1;

    К = длина последовательности;

    ПОКА (K > = 1) И (последний == -1) ВЫПОЛНЯТЬ

    ЕСЛИ последовательность [К] == период

    ТО последний = К;

    К –= К.

     







    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.