2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему На страницу Пред.  1 ... 3, 4, 5, 6, 7
 
 Re: Сложение и другие арифметические операции
Сообщение01.05.2018, 19:10 
Заслуженный участник
Аватара пользователя


23/07/05
18013
Москва
Dmitriy40 в сообщении #1309188 писал(а):
Ну например длина вектора из одинаковых объектов с конечным числом состояний?
Ещё раз для тех, кто в танке: в булевой алгебре есть только три операции $\vee$, $\wedge$, $\neg$. Нет никакой "длины вектора" и "компонент". Вы говорите о произведении булевых алгебр и функциях, которые можно определить для этого произведения и его компонент. Эти функции не являются логическими операциями, поскольку не выражаются через операции $\vee$, $\wedge$, $\neg$.

Dmitriy40 в сообщении #1309188 писал(а):
каждая из которых представляется (не обязательно однозначно) композицией операций $\vee, \wedge, \neg$ над одним-двумя аргументами над любыми из объектов $A,B,C,D,E,F$.
Ага. Это как раз то, против чего я возражаю. Доказывать, что такими средствами можно реализовать сложение в некотором отрезке натурального ряда, не надо. В конце-концов, соответствующая реализация у меня перед носом стоит.

Dmitriy40 в сообщении #1309188 писал(а):
И это снова возвращает к вопросу допустимости логических операций над разными элементами векторов (а не лишь с одинаковым индексом для всех векторов).
Вот-вот. Пусть наша булева алгебра есть произведение какого-то числа двухэлементных булевых алгебр. Двух, например. Реализуйте сдвиг на один разряд с помощью операций $\vee$, $\wedge$, $\neg$ над элементами произведения, а не над компонентами.

Chifu в сообщении #1309190 писал(а):
Бит это 1 вход/выход или элемент памяти, соответственно 1 булева функция (с одним выходом). Байт это 8 пронумерованных бит - 8 пронумерованных булевых функций, т.е. соединяются по номеру, выделяются по номеру, соответственно они не "разбегаются", а жестко соединены со своим номером, поэтому собирать их не надо (они собраны). Рассмотрите "черный ящик" с входами по количеству и разряду аргументов и выходами по количеству разрядов результата, вот вся обработка информации происходит в "черном ящике" и вот в цифровой электронике этот ящик состоит из логических элементов (и элементов памяти).
Не надо меня убеждать в том, что компьютеры существуют и работают.

 Профиль  
                  
 
 Re: Сложение и другие арифметические операции
Сообщение01.05.2018, 21:18 
Заслуженный участник
Аватара пользователя


23/07/05
18013
Москва
Каждая конечная булева алгебра является произведением двухэлементных булевых алгебр. В произведении булевы операции $\vee$, $\wedge$, $\neg$ выполняются поразрядно. Арифметические операции требуют переносов из одних разрядов в другие, поэтому не могут быть реализованы операциями $\vee$, $\wedge$, $\neg$.

Ещё раз повторяю: я не отрицаю реализации арифметических операций в компьютерах. Я только утверждаю, что для реализации арифметических операций используются функции, не сводящиеся к операциям $\vee$, $\wedge$, $\neg$. Это функции проектирования произведения на сомножители и функция, собирающая элемент произведения из его координат. Их особенность состоит в том, что они реализуются не какими-то специальными электронными элементами, а просто соответствующим соединением проводников. Вероятно, по этой причине многие не видят этих функций, что называется, в упор.

 Профиль  
                  
 
 Re: Сложение и другие арифметические операции
Сообщение01.05.2018, 22:02 
Заслуженный участник


20/08/14
11902
Россия, Москва
Вы похоже упорно подводите к мысли что матрицу межсоединений входов и выходов логических функций не описать в терминах самих этих логических функций, а требуется некая другая сущность (типа "проводов")? Причём для композиции функций Вы провода внутри не замечаете? Как и провода от источника объектов к входам функций (подстановка аргументов), как и провода от выходов функций до места хранения объектов (сохранение результата)?
Ну да, "провода" нужны, кто ж спорит.

(А некоторые так в упор и не понимают)

Только "некоторые в упор не понимают" почему провода разрешено вести только в строго одних направлениях и запрещено в других? Почему недопустимо соединение входа логической функции с любым входом или выходом любой логической функции?! Любым? Без проводов вы даже аргументы функции поменять местами не сможете - нет же операции перестановки первого аргумента на вторую позицию и наоборот, несмотря на все заявления о симметричности функции по аргументам. Симметрична то она симметрична, но операции перестановки аргументов нет! Когда я пишу математическую формулу я не думаю какие переменные я могу в ней использовать, а какие нет - какие мне надо, те и подставляю, не задумываясь какая такая спецфункция мне их выдаст и подставит в нужном порядке в аргументы. Вы же разрешили ходить только строем и никак иначе. Такое впечатление что это лишь для упрощения формальной теории, не более. И доупрощались до того что ликвидировали 99% практически полезных функций. А потом сокрушаетесь что полезные операции стали невыразимыми в используемом базисе и нужны новые функции, ага ...
В общем когда говорят "для реализации любой логической функции достаточно логических функций $\vee, \wedge, \neg$", то подразумевают непроизнесённое "... и в любом порядке соединяющих их проводов". Именно в любом, без ограничения общности. А уж как это формализуется именно в булевой алгебре - дело немного другое, это уже издержки формализации.

 Профиль  
                  
 
 Re: Сложение и другие арифметические операции
Сообщение02.05.2018, 10:58 
Заслуженный участник
Аватара пользователя


23/07/05
18013
Москва
Dmitriy40 в сообщении #1309222 писал(а):
А уж как это формализуется именно в булевой алгебре
Никак. А поскольку "логические операции" — это операции в булевой алгебре, то функции, реализуемые соединениями проводов и не выражающиеся через логические операции, логическими не являются.

Dmitriy40 в сообщении #1309222 писал(а):
Причём для композиции функций Вы провода внутри не замечаете?
Композиция функций не выводит за пределы класса логических функций, поскольку это просто подстановка выражения функции в формулу вместо свободной переменной. Все функции, которые можно записать формулами в языке исчисления высказываний, являются логическими.

Dmitriy40 в сообщении #1309222 писал(а):
Почему недопустимо соединение входа логической функции с любым входом или выходом любой логической функции?
Можно. По-моему, Вы никак не хотите понять, о чём я говорю. Я вообще не хочу говорить ни о каких соединениях. Меня схемотехника не интересует.

Логические функции — это функции, определяемые формулами в языке исчисления высказываний. Моделью исчисления высказываний является булева алгебра. Совершенно не обязательно двухэлементная. Типичная булева алгебра, соответствующая исчислению высказываний — бесконечная.

В обсуждаемом случае речь идёт о конечной булевой алгебре. Всякая конечная булева алгебра изоморфна какой-то степени двухэлементной, и речь идёт о возможности реализации сложения в этой булевой алгебре. Аргументами логических функций тут являются не координаты элементов в этом произведении двухэлементных алгебр, а сами элементы. Пользуясь только логическими операциями, мы никак не можем реализовать произвольную функцию координат; в частности, мы не можем реализовать перенос в другой разряд, поэтому арифметические операции в булевой алгебре не реализуются.

Dmitriy40 в сообщении #1309222 писал(а):
Без проводов вы даже аргументы функции поменять местами не сможете - нет же операции перестановки первого аргумента на вторую позицию и наоборот, несмотря на все заявления о симметричности функции по аргументам.
Это ерунда. Если я могу написать формулу для $f(A,B)$, то я смогу написать и формулу для $f(B,A)$. Ещё раз повторяю: провода меня не интересуют.

Dmitriy40 в сообщении #1309222 писал(а):
Вы же разрешили ходить только строем и никак иначе. Такое впечатление что это лишь для упрощения формальной теории, не более. И доупрощались до того что ликвидировали 99% практически полезных функций.
Ничего подобного. Я просто хочу обратить внимание на то, что для реализации арифметики недостаточно булевой алгебры и логических операций. Необходима дополнительная структура и дополнительные операции, отсутствующие в булевой алгебре и, следовательно, не являющиеся логическими. Более того, фактическая реализация арифметических операций вообще не использует логических операций в исходной булевой алгебре; используются только логические операции в двухэлементных булевых алгебрах.

 Профиль  
                  
 
 Re: Сложение и другие арифметические операции
Сообщение02.05.2018, 12:58 
Заслуженный участник


20/08/14
11902
Россия, Москва
Получается мы говорим о разном: Вы об операциях над объектами типа <целиком_число>, я об "операциях в двухэлементных булевых алгебрах" (т.е. над битами). В таком случае разумеется согласен с Вами, нет операций над компонентами объекта <целиком_число> и соответственно нет сложений и многого всего другого.

(А почему бы не сменить уровень абстракции?)

Только так и непонятно почему же нельзя "развалить" объект <целиком_число> на упорядоченное множество более простых объектов, над которыми тоже существуют (некоторые другие вообще говоря) логические операции и которые уже позволяют реализовать отсутствующие операции над исходными объектами. В исходной алгебре нереализуемо, ну так спуститесь на уровень абстракции ниже и станет реализуемым. И на этом более низком уровне абстракции никакие новые операции кроме логических так и не понадобятся. И когда говорят "операция (не)выразима в логических операциях", то не добавляют же "... исключительно исходного уровня абстракции" (т.е. в исходной булевой алгебре). А Вы почему-то это подразумеваете автоматом. Ну так тогда говорите это явно, а не в любых логических операциях (что Вы сами понимаете неверно).

(Аналогия с матрицами)

Можно провести прямую аналогию с матрицами, Вы определили некоторые операции с матрицами (базис) и утверждаете что некоторые другие операции в нём невыразимы. Ну и что, я проблемы не вижу, их же всегда можно выразить в терминах операций над компонентами. А выразив однажды и введя новое обозначение для операции над матрицами (т.е. добавив её в базис) можно в дальнейшем ею свободно пользоваться уже на исходном уровне абстракции, именно над целиком матрицами. Собственно так обычно и вводятся многие операции в математике.

(Не хочу понять?)

Someone в сообщении #1309323 писал(а):
По-моему, Вы никак не хотите понять, о чём я говорю.
Да не, я никак не пойму о чём Вы неявно умалчиваете в своих утверждениях (впрочем наверное как и я). И умалчиваем мы о разном. Вы например об операциях исключительно на исходном уровне абстракции, где нет ни компонентов сложных объектов, ни произвольно заданных функций над объектами (а только подкласс - логические). И если это всё оговорить, то разумеется Вы правы. Я же умалчиваю что всегда допускаю понижение уровня абстракции вплоть до отдельных битов (объектов с двумя состояниями) и произвольной композиции функций над именно этими объектами, что автоматом даёт реализуемость любой функции над исходными объектами.
Ну не математик я, формальные теории для меня феерический бред тёмный лес. ;-)

Итого.
Согласен что: в булевой алгебре многие операции (сложение/вычитание, сдвиги, арифметическое умножение/деление, перестановка компонент объекта) невыразимы в базисе логических операций на том же уровне абстракции (в исходной булевой алгебре), требуется или добавление других операций, или понижение уровня абстракции (доступ к компонентам объектов). И без выделенного жирным уточнения утверждение уже неверно, потому что под логическими операциями в этом утверждении все (не математики включая меня) неявно понимают именно операции в двухэлементных булевых алгебрах (т.е. над битами), а не в исходной булевой алгебре. И для них надо последнее особо подчёркивать.
На этом наверное и закончим, ведь я с Вами уже согласен (ну насколько могу понять)?

PS. Честно старался придерживаться вашей терминологии, хотя и не уверен на 100% что её понимаю.

 Профиль  
                  
 
 Re: Сложение и другие арифметические операции
Сообщение02.05.2018, 18:51 
Заслуженный участник


27/04/09
28128
Dmitriy40 в сообщении #1309347 писал(а):
Получается мы говорим о разном: Вы об операциях над объектами типа <целиком_число>, я об "операциях в двухэлементных булевых алгебрах" (т.е. над битами).
А это mihaild и я уже давно заметили и описали. :-) Потому продолжение темы лично меня изрядно удивило.

 Профиль  
                  
 
 Re: Сложение и другие арифметические операции
Сообщение03.05.2018, 19:58 
Заслуженный участник
Аватара пользователя


23/07/05
18013
Москва
Dmitriy40 в сообщении #1309347 писал(а):
Только так и непонятно почему же нельзя "развалить" объект <целиком_число> на упорядоченное множество более простых объектов
"Развалить" можно, но это — не логическая операция. А потом ещё нужно "собрать", а это — тоже не логическая операция. Так что одними логическими операциями Вы не обойдётесь, даже если допустить логические операции в двухэлементных булевых алгебрах.

Для "разваливания" нужен набор функций из исходной булевой алгебры в двухэлементные, а для "сборки" — конструкция, которая называется диагональным произведением отображений.

Dmitriy40 в сообщении #1309347 писал(а):
Получается мы говорим о разном: Вы об операциях над объектами типа <целиком_число>
Я этого вовсе не скрывал и постоянно призывал отвлечься от всяких битов и байтов, поскольку их "выделение", последующее произвольное манипулирование и сборка с помощью исключительно логических операций невозможны. То, что Вы имеете в качестве исходных данных и что хотите получить в результате находится не в том множестве, в котором находится то, чем Вы хотите манипулировать.

 Профиль  
                  
 
 Re: Сложение и другие арифметические операции
Сообщение04.05.2018, 14:40 
Аватара пользователя


27/01/09
814
Уфа
Someone в сообщении #1309833 писал(а):
... поскольку их "выделение", последующее произвольное манипулирование и сборка с помощью исключительно логических операций невозможны. То, что Вы имеете в качестве исходных данных и что хотите получить в результате находится не в том множестве, в котором находится то, чем Вы хотите манипулировать. То, что Вы имеете в качестве исходных данных и что хотите получить в результате находится не в том множестве, в котором находится то, чем Вы хотите манипулировать.
Провода показывают, какие сигналы подаются на вход логических элементов, соответственно какой вид имеют логические формулы. Соответственно логические формулы задают логическую схему. В схеме нет места для произвола (за исключением двойственности и выбора базиса) и перемешивания, произвольными могут быть лишь значения сигналов. Все сигналы на входах и выходах двоичные.

 Профиль  
                  
 
 Re: Сложение и другие арифметические операции
Сообщение04.05.2018, 21:39 
Заслуженный участник
Аватара пользователя


23/07/05
18013
Москва

(Chifu)

О-хо-хо…

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 99 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: Mikhail_K


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group