Основний модуль

Модуль солвера

salbpone.solver

Модуль головного класу солвера SALBP-1.

Формулювання задачі

Генератор обмежень

Модуль формування обмежень задачі лінійного програмування

class salbpone.constraints_generator.ConstraintsGenerator(parent)[source]

Bases: object

Забезпечує генерацію обмежень. Формує обмеження рівностей та нерівностей відповідно загальної математичної моделі.

property constraints: List[str]

Загальний список згенерованих обмежень.

Type:

return

generate_cycle_constraints(n, t, cycle_time, m_min, m_max, E, L, use_y=False)[source]

Генерує обмеження циклу для робочих станцій.

Parameters:
  • n (int) – Кількість операцій

  • t (List[int | float]) – Масив з тривалістю операцій

  • cycle_time (int | float) – Час циклу

  • m_min (int) – Мінімальна (можлива) кількість робочих станцій

  • m_max (int) – Максимальна (можлива) кількість робочих станцій

  • E (Dict[int, int]) – Відомості про найменший (найранішній) індекс робочого місця до якого може бути призначена операція

  • L (Dict[int, int]) – Відомості про найбільший (найпізніший) індекс робочого місця до якого може бути призначена операція

  • use_y (bool) – Вказує, чи використовувати множник y_j

Returns:

Список рядків, що представляють обмеження циклу

Return type:

List[str]

generate_precedence_constraints(P_ik_pairs, E, L)[source]

Генерує обмеження послідовності операцій для задачі балансування збиральної лінії.

Parameters:
  • P_ik_pairs (Set[Tuple[int, int]]) – Набір пар (i, k), де операція i має передувати операції k

  • E (Dict[int, int]) – Відомості про найменший (найранішній) індекс робочого місця до якого може бути призначена операція

  • L (Dict[int, int]) – Відомості про найбільший (найпізніший) індекс робочого місця до якого може бути призначена операція

Returns:

Список рядків, що представляють обмеження послідовності

Return type:

List[str]

generate_single_assignment(n, E, L)[source]

Функція, яка забезпечує створення обмежень щодо призначення операції до одного й тільки одного робочого місця. :param n: Кількість операцій :param E: Відомості про найменший (найранішій) індекс робочого місця до якого може бути призначена операція :param L: Відомості про найбільший (найпізніший) індекс робочого місця до якого може бути призначена операція

Returns:

Список рядків, що представляють обмеження рівності

Parameters:
  • n (int) –

  • E (Dict[int, int]) –

  • L (Dict[int, int]) –

Return type:

List[str]

generate_station_constraints(n, m_max, m_min, L)[source]

Функція для генерування обмежень на увімкнення станцій

Parameters:
  • n (int) – Кількість операцій

  • m_max (int) – Максимальна кількість робочих станцій

  • m_min (int) – Мінімальна кількість робочих станцій

  • L (Dict[int, int]) – Словник, де ключ - індекс операції, значення - кінцева станція

Returns:

Список рядків, що представляють обмеження на увімкнення станцій

Return type:

List[str]

Генератор допоміжних змінних

Модуль генерації додаткових змінних. Дозволяє адаптувати умову до потреб математичної моделі.

class salbpone.statement_generator.ExtendStatement(parent)[source]

Bases: object

Клас формування та збереження додаткових змінних умови задачі.

Parameters:

parent (SolverSALBP) –

calculate_e_l(n, t, cycle_time, m_max, ST, PT)[source]

Функція для розрахунку масивів E та L. E (earliest) - найранішня станція (робоче місце) до якого теоретично може бути присвоєна і-та операція L (latest) - найпізніша станція (робоче місце) до якого теоретично може бути присвоєна і-та операція

Parameters:
  • n (int) – Кількість операцій

  • t (List[int | float]) – Масив з тривалістю операцій

  • cycle_time (int | float) – Час циклу

  • m_max (int) – Максимальна кількість робочих станцій

  • ST (Dict[int, Set[int]]) – Словник з операціями, що мають бути виконані після операції

  • PT (Dict[int, Set[int]]) – Словник з операціями, що мають бути виконані до операції

Returns:

E, L

Return type:

Tuple[Dict[int, int], Dict[int, int]]

calculate_m_min_max(t, cycle_time)[source]

Функція для розрахунку m_min та m_max.

Parameters:
  • t (List[int | float]) – Масив з тривалістю операцій

  • cycle_time (int | float) – Час циклу

Returns:

m_min, m_max

Return type:

tuple[int, int]

calculate_st_pt(procedure_graph)[source]

Функція для створення словників ST та PT.

Parameters:

procedure_graph (Dict[int, List[int]]) – Словник з залежностями операцій

Returns:

ST, PT

Return type:

Tuple[Dict[int, Set[int]], Dict[int, Set[int]]]

create_dependency_matrix(n, procedure_graph)[source]

Функція для створення матриці залежностей P.

Parameters:
  • procedure_graph (Dict[int, List[int]]) – Граф залежностей операцій (послідовності) з умови задачі

  • n (int) – Кількість операцій

Returns:

Матриця залежностей P

Return type:

ndarray

create_procede_pairs(dep_matrix)[source]

Функція формування набору пар залежностей. Формує набір кортежів. Кожен кортеж має два значення: операція, що перевіряється та операція, яка має бути виконана (та завершена) перед початком операції, що перевіряється.

Parameters:

dep_matrix (ndarray) –

Returns:

Return type:

Set[Tuple[int, int]]

Допоміжні модулі

Функції перевірки введення

Модуль перевірки вхідних даних задачі

class salbpone.checkers.InputChecker(parent)[source]

Bases: object

Забезпечує перевірку вхідних значень задачі. Здійснюється звірка очікуваних типів та структур даних.

check_costs(value)[source]

Перевіряє допустимість значень вартості операцій.

Parameters:

value (Any) – Змінна для перевірки

Returns:

повертається вхідна змінна, якщо відповідає вимогам допустимості (інакше - помилка з описом)

Return type:

List[int | float]

check_cycletime(value)[source]

Перевіряє допустимість значень тривалості виробничого циклу.

Parameters:

value (Any) – Змінна для перевірки

Returns:

повертається вхідна змінна, якщо відповідає вимогам допустимості (інакше - помилка з описом)

Return type:

int | float

check_graph(value)[source]

Перевіряє допустимість наданого графу обмежень.

Parameters:

value (Any) – Змінна для перевірки

Returns:

повертається вхідна змінна, якщо відповідає вимогам допустимості (інакше - помилка з описом)

Return type:

Dict[int, List[int]]

Використані типи та структури

Модуль оголошення типів даних. Містить перелік типів змінних та структур даних, які використовуються у коді солвера.

salbpone.data_types.ConstraintsGroup

Формат переліку обмежень

alias of List[str]

salbpone.data_types.DepPairsSet

Пари залежностей послідовності виконання операцій (з графу обмежень послідовності)

alias of Set[Tuple[int, int]]

salbpone.data_types.EarliestLatestData

Найменші та найбільші індекси робочих місць до яких теоретично може бути закріплена операція

alias of Dict[int, int]

salbpone.data_types.GraphDict

Граф обмежень (які операції мають бути виконані перед початком запитуваної)

alias of Dict[int, List[int]]

salbpone.data_types.OperationsCosts

Список вартості (тривалості) операцій

alias of List[Union[int, float]]

salbpone.data_types.PrecedenceDict

Словник множин задач (всіх), які мають бути виконані перед запитуваною

alias of Dict[int, Set[int]]

salbpone.data_types.TimeUnit

Одиниці часу

alias of Union[int, float]

Адаптація формул Latex

Модуль перетворень обмежень. Забезпечує адаптацію існуючого формату обмежень для друку у документах.

class salbpone.latex_converter.LatexConverter(constraints)[source]

Bases: object

Конвертер обмежень до Latex.

Parameters:

constraints (List[str]) –

print_latex()[source]

Друкує обмеження у форматі LaTeX.

Return type:

None

to_latex()[source]

Перетворює рядки обмежень у формат LaTeX.

Returns:

Список рядків у форматі LaTeX

Return type:

List[str]

Налаштування логу виконання

Модуль налаштувань логера.

salbpone.logger_setup.log_exception(exc_type, exc_value, exc_traceback)[source]

Функція перехоплення та логування помилки в разі неочікуваного завершення виконання програми. :param exc_type: :param exc_value: :param exc_traceback: :return:

salbpone.logger_setup.log_format = '<level>{level}</level> | <level>{message}</level>'

Формат повідомлення логера

Генерація зображень графу

Модуль формування візуалізації.

salbpone.slide_generator.save_procedure_graph(procedure_graph, t, file_name)[source]

Збереження інтерактивного графа послідовностей операцій. Зберігається у форматі html, має можливість переміщення нод.

Parameters:
  • procedure_graph (Dict[int, List[int]]) –

  • t (List[int | float]) –

  • file_name (str) –

Returns:

Return type:

None

Module contents