Основний модуль
Модуль солвера
Модуль головного класу солвера 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]
Використані типи та структури
Модуль оголошення типів даних. Містить перелік типів змінних та структур даних, які використовуються у коді солвера.
- 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
Модуль перетворень обмежень. Забезпечує адаптацію існуючого формату обмежень для друку у документах.
Налаштування логу виконання
Модуль налаштувань логера.
- 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