Вычислительное мышление. Метод решения сложных задач - Питер Макоуэн
Шрифт:
Интервал:
Закладка:
Современное здравоохранение опирается на компьютерные технологии и стоящее за ними изощренное вычислительное мышление. Однако, чтобы создать для всего этого основы, нужны усилия математиков и других ученых. Потом программисты и инженеры-электроники разрабатывают алгоритмы и приборы, которые превращают научные достижения в технологии для спасения жизни. Чтобы понять, как это происходит, начнем с игры.
Морской бой, «Битлз» и части тела
В предыдущей главе мы предположили, что сопоставление с образцом будет играть важную роль в медицине будущего. В этой главе мы рассмотрим некоторые способы, с помощью которых компьютеры, а значит, и вычислительное мышление уже помогают спасать жизнь. В следующий раз, когда будете навещать кого-то в больнице или окажетесь там в качестве пациента, посмотрите вокруг. Палата и вся больница битком набиты продуктами вычислительного мышления. Работа целых отделений в больницах зависит от обработки компьютерами ваших данных. Компьютерная томография, ультразвук, кардиостимуляторы... в сегодняшнем здравоохранении очень многое существует только благодаря алгоритмам, сенсорам и компьютерным устройствам. И ведь кто-то должен был написать все эти программы, чтобы приборы работали.
Задавались ли вы когда-нибудь вопросом, каким образом врачи получают изображения тела в разрезе? Возможность увидеть, как разные части организма выглядят в поперечном сечении, — важный инструмент диагностики. Но нельзя разрезать человека просто, чтобы заглянуть в него, — нужна технология, позволяющая увидеть, что внутри. История о том, как этот прорыв, за который дали Нобелевскую премию, стал медицинской реальностью, связана с талантливым применением заново открытой математики, компьютерами и рок-группой 1960-х гг.!
Я и моя рентгеновская тень
Рентгеновские снимки — это просто фотографии объектов в рентгеновском излучении, а не в видимом свете. Поскольку рентгеновское излучение проникает сквозь мягкие ткани, но не проходит через более плотные материалы, такие как кости и внутренние органы, с его помощью получают изображение того, что находится внутри тела. Чтобы сделать обычный рентгеновский снимок, вас ставят перед фотографической пластинкой и просвечивают рентгеновскими лучами. В результате на фотопластине получается изображение. Кости, в которых много кальция, обладают более высокой плотностью, чем окружающие ткани, и поэтому поглощают рентгеновские лучи. В результате мы получаем «тень» костей на фотографической пластинке. Хотя этот метод очень полезен, он позволяет понять лишь, сколько костной ткани попалось на пути рентгеновского луча. Как именно кости располагаются в поперечном сечении, непонятно. Тень плоская, а тело объемное.
Цифровые тени
Цифровые рентгеновские изображения в принципе делаются так же. Снимок получают с помощью множества цифровых сенсоров без фотографической (химической) пластины. Даже цифровые рентгеновские аппараты могут давать только плоские изображения внутренних органов. Они сплющивают изображение, лишая его глубины, и оно становится похоже на тень. Однако внутренности трехмерны, поэтому определенно было бы полезно послойно нарезать тело и получить правильное объемное изображение. Это можно сделать с помощью метода компьютерной томографии (от греческого τομή — «сечение» и γράφειν— «писать»). Здесь используются те же рентгеновские лучи, но в томографии источник рентгеновского излучения и детектор вращаются вокруг тела и делают много изображений под разными углами. Это похоже на то, как если бы тело отбрасывало разной формы тени по мере движения солнца вокруг вас. Представьте, что вы исследуете цилиндр с помощью томографии, а источник рентгеновского излучения — факел. Перемещайте факел вокруг цилиндра и смотрите на тень, которая появляется на листе бумаги, находящемся на противоположной от факела стороне. Картинка тени в каждый момент будет одна и та же, потому что цилиндр кругообразно симметричен. Теперь представьте более интересную форму — скажем, чайник. Картинка тени в разные моменты будет зависеть от вашего местоположения относительно предмета. С помощью хитрой математики, алгоритма реконструкции и компьютера вы можете воссоздать форму предмета по изображениям тени.
В томографии это будет форма внутренних органов тела, изображения которых можно записать во всем их трехмерном великолепии. Сейчас существуют системы, в которых излучатель вращается вокруг тела по спирали, что ускоряет процесс. Можно даже снять в разрезе бьющееся сердце и оценить его работу. Математическое основание этой технологии называется преобразование Радона — по имени чешского математика Иоганна Радона, который умер в 1956 г. Оно было разработано как абстрактная математическая теория. В то время никто не видел для нее применения!
Игры с карандашом и бумагой
Пока вы думаете, как превратить плоские снимки в трехмерное изображение тела, давайте сделаем перерыв и сыграем в морской бой. Это еще одна простая игра на основе сетки, для которой понадобятся карандаш и бумага. Играют вдвоем. Каждый игрок рисует сетку, помечает на ней ряды и столбцы и решает, в каких клетках расположить корабли. Флот состоит из кораблей разного типа: линкор обычно занимает четыре клетки по горизонтали или по вертикали, крейсер (меньший по размеру корабль) занимает, скажем, только две клетки, а эсминец — одну. Сначала вы решаете, сколько кораблей каждого типа будет в игре, и располагаете их на решетке втайне друг от друга. По правилам вы по очереди «бьете» по решетке вашего противника. Например, противник бьет по позиции В9. Это квадрат в строке B и столбце 9. Если эту клетку занимает часть вашего корабля, он «ранен». Вы должны сказать, какой это корабль, и противник делает следующий ход. Таким образом можно попытаться понять, расположен ли четырехклеточный корабль горизонтально или вертикально. Первый игрок, который потопит весь флот противника, побеждает. Конечно же, труднее всего попасть по эсминцам, которые занимают одну клетку, ведь для этого нужно попасть точно в цель.
Бой в пруду
Теперь представьте гораздо менее масштабную игру, как на рис. 70а. Это скорее не океан, а пруд. В нем только один эсминец (он обозначен цифрой 1 в море нолей) на позиции В2. Может быть, вам повезет, и вы попадете по B2 с первого же выстрела. Но весьма вероятно, что придется долго исключать разные варианты, прежде чем вы его найдете. Есть ли другой способ найти 1?
Я не вижу кораблей, нужна подсказка
Да, такой способ есть, но только если противник даст вам кое-какие простые подсказки. Тогда вы сможете догадаться. Во-первых, нужно, чтобы второй игрок сложил значения клеток в каждой строке и сообщил их. Для ситуации как на рис. 70a информация будет такой: 0 в строке A (потому что там 0 + 0 + 0 + 0, хотя вам скажут только про 0 в сумме), 1 в строке B (потому что там 0 + 1 + 0 + 0) и 0 в строке С. Это начало. Теперь вы знаете, что корабль находится в строке B, но не знаете, где именно. Теперь спросите, какая сумма получается в каждом столбце. В столбце 1 выходит 0, в столбце 2 — 1, в столбце 3 — 0 и в столбце 4 — 0. Теперь вы знаете, что корабль находится в столбце 2. Это показано на рис. 70b, где подсказки расположены в кружочках по краям игрового поля. Обобщив эту информацию, вы поймете, что корабль находится в клетке В2, и — БАБАХ! — он потоплен!