12 KiB
Решение задач компьютеров без компьютеров
Логарифмическая линейка
- Устройство, позволяющее выполнять несколько математических операций: умножение, деление, возведение в степень (квадрат и куб), вычисление корней (квадрат и куб), логарифмов, вычисление тригонометрических и гиперболических функция и т.п.
- Принцип расчета - воплощение таблицы значений в виде, позволяющем быстро находить нужные зависимости
- Расчет производится путем выставления линейки в требуемое положение и считывания результата
!
Линейка и операция деления
!
Двигаем делимое напротив делителя, в начале получаем частное
Номограмма и операция умножения
!
Соединяем две точки, которые хотим перемножить. Пересечение этого отрезка с осью Y - наш результат
Табличное исполнение
- Таблица истинности
- Таблицы предрасчитанных значений:
- cache
- memoization
- STR division
Арифмометр
- Устройство, позволяющее складывать, вычитать, умножать и делить с фиксированным количеством разрядов
- Принципы расчета воплощены в мехнизмах устройства
- Расчет производится по шагам (алгоритмически), с учетом переноса между разрядами
!
Отличие арифмометра от логарифмической линейки
- Рост области определения функций:
- для арифмометра: медленный рост сложности устройства, средний рост длительности расчета (зависит от функции)
- для линейки/таблицы: быстрый рост размера линейки, минимальный рост длительности расчета
- Рост области значений функции:
- для арифмометра: медленный рост сложности устройства, средний рост длительности расчета (зависит от функции)
- для таблицы: средний рост размера таблицы, минимальный рост длительности расчета (просто новая строка, сопряженно с областью определения)
- для линейки: быстрый рост размера линейки или погрешности, минимальный рост длительности расчета
- Линейка - аналоговое устройство (есть датчик, отсюда погрешность расчетов )
- Арифмометр/Таблицы - цифровое устройство (однозначный результат, погрешность определяется конструкцией)
Расчет артиллерийских таблиц. Белковые вычислители
- Задача: расчет артиллерийских таблиц для французской или российской армий
- Вычислительная задача: многократный расчет сложной формулы с большим количеством операций для различных входных параметров
Средства
- Простейшие счетные устройства в ограниченном количестве
- Математики, физики и другие ученые
- Офицерский корпус и грамотные солдаты
Проблемы наивного решения
(человек + лист + карандаш = сиди читай)
- Ошибка выбора операции (после долгой работы замылится глаз)
- Регистровый файл ненадежен (почерк, адресация)
- Арифметические ошибки
- Склонность людей к сокрытию ошибок
Архитектура эффективного решения
Реконфигурируемый потоковой вычислитель
!
- Расчетная формула представляется в виде графа
- Каждой вершине графа сопоставляется человек, способный выполнить соответствующую операцию (только одну)
- Люди размещаются в соответствии с графом, каждый знает, кто сообщит входные данные, кому сообщить результат
- На вход графа подаются параметры для расчетов
- На выходе собираются результаты
- Для повышения надежности расчетов используются двоирование (две роты, сравниваем результаты, не совпадение - повтор)
Структура белкового вычислителя
!
Достоинства
- Радикальный рост производительности (параллелизм инструкций)
- Параллельное исполнение независимых операций
- Конвейризация расчетов - каждая вершина постоянно считает, без простоев (набор данных за 5 тактов - параллелизм, 3 набора данных за 7 тактов - если пустить данные непрерывно)
- Радикальный рост надежности
- Высокий уроень специализации узлов
- Минимальная вариативность процесса
- Возможность реконфигурации вычислителя под новую задачу
!
Цвета - 3 партии входных данных. Цифры - на каком такте будут на данном этапе вычисления
Практика
На практике все перечисленные механизмы встречаются в современных Компьютерные системы, в том числе:
- В процессорах общего назначения
- В специализированных процессорах
- В распределенных системах
Жаккардовый ткацкий станок и программное управление
Жаккард - ткань с узором, на обратной стороне которой можно видеть инвертированный рисунок Структура полотна:
- вертикальные нити - натянуты равномерно
- горизонтальные нити разных цветов, дисбаланс петель с одной из сторон формирует узор
!
Проблема создания станка
Плетение полотна:
- Нити разделяются на верхние и нижние по схеме узора
- Между ними пропускается челнок с горизонтальной нитью
- Повтор Узор - уникальный или циклический Проблема: разделение верхней и нижней нити
- Разделение на верхнюю и нижнюю нить нерегулярно
- "Гребенка" не работает
!
Жаккардовый ткацкий станок
Считается первой программно-управляемой машиной Элементы решения:
- "Гребенка" заменена на систему крючков на пружинах с поворотным механизмом
- Нажатие на ключок позволяет зацепить нить
- Сильное нажатие и поворот - освободить нить
- Как автоматизировать регулярное нажатие на кнопочки?
!
Идея крючка
!
Программное обеспечение
Элементы решения:
- Пластина с отверстиями позволяет разом "нажать" нужные крючки (перфокарта)
- Лента из пластин - программа узора
!
Структура шага работы станка:
- Нажатие пластиной на крючки (разделение верхней и нижней)
- Пропускание челнока
- Нажатие всех крючков и поворот (отпускание нитей)
- Сдвиг ленты с пластинами
- Повтор
Практика станка
- Механика, по сути, не изменилась
- Принцип работы - тот же
Автоматические телефонные станции (АТС)
Будет потом
Поиск кратчайшего пути на взвешенном графе
Классический алгоритм Дейкстры имеет сложность O(n^2). Имеетя огромное количество оптимизаций и эвристических приемов для сокращения вычислительной сложности
Проблема: дорожная карта региона
Альтернативное решение
- Изготавливаются натуральная модель взвешенного графа, где:
- Вершины - контактные площадки
- Ребра - проводники с сопротивлением, обратно пропорциональным весу ребра
- Подается питание на интересующие вершины графа
- Наблюдается цепочка сгоревших/нагревшихся проводников
Площадь
O(n+e)ВремяO(n)
Задача коммивояжера и амеба
Задача коммивояжера - поиск самого выгодного маршрута, проходящего через указанные города хотя бы по одному разу с последующим возвратом в исходный город
Решение перебором - O(n!)
Динамикой - O(n^2 * 2^n)
Альтернитивное решение
Амеба любит питательную среду, не любит свет, стремится занять максимальную площадь Заявленные результаты:
- Линейный рост скорости поиска от количества городов (до 8 штук)
- При росте вычислительной сложности по экспоненте
Как развитие и скачок произошел переход к использованию электричества в сигналах и состояниях. (Цифровая схемотехника)