Помимо jvm нужна ОС хотя бы linux. Компилятор внутри jvm придется допиливать, но большинство из них достойных рассмотрения open source. И если процессор не совсем экзотика то там нет ничего критично сложного.
Да и очевидно, что нам достаточно найти единственный вектор-строку дающий максимальную ошибку(V*X), остальную матрицу восстановить исходя из необходимых условий ортогональности.
PS: вроде нигде не напутал, если понял задачу правильно
Ну и формально как я понял, даже в рамках исходной задачи:
max abs (q(A*X) - A*X). так, как мы ищем максимум по каждой координате независимо, то и влиять на одну координату будет лишь одна строка матрицы. Соответственно, достаточно перебрать все строки матрицы и для каждой из них найти максимум по соответствующей координате. Максимум от максимумов для каждой из строк и будет ответом.
У меня появилась идея, формально A это оператор поворота с перекошенной метрикой, то есть он может уникально перевести исходный X в любую точку и назад. Соответственно, можно попробовать идти от обратного. Для заданного A*X найти максимально возможную ошибку, в данном случаи это будет С = max(q(X) - X). Теперь надо найти такое обратное преобразование, которое переведет данную точку С в ближайшую к X. Вроде бы шило на мыло, но мы избавились от оператора квантования, а так же можно использовать свойство, что A^-1 = A^T. Конечно если мы будем искать A в реальных числах это не даст глобальный оптимум, но возможно еще что-то можно придумать чтобы продвинуться.
PS: мы можем взять для C лишь одну координату с максимальной ошибкой и соответственно надо подобрать лишь одну строку матрицы действующую на эту координату
Чем то напоминает классический 2-opt(можно и 3-opt) в https://en.wikipedia.org/wiki/Local_search_(optimization). Как мне кажется можно попытаться улучшить, если для двух пар значений считать оптимум не перебором, а как-то аналитически или более хитрым алгоритмом.
Это было про большие разрешения и Quake в частности. По поводу DOOM он работал в 32 битном режиме. Сегментация и bank switch ортогональные концепции, можно было иметь плоскую память в 32 битном защищенном режиме, но видюха все равно была bank-switched. В случаи 320x200 фрэймбуфер умещался в один сегмент/банк.
Если объяснить в двух словах, то вы посчитали среднюю по всей истории стационарную интенсивность голов для каждой команды, и потом на основе этого единственного фактора пытаетесь сделать предсказание. Не удивлюсь что если банальное max(lambda_i) будет давать тот же результат (по крайней мере это логично с точки зрения пуассоновского распределения). И то что получилась Бразилия, тоже вполне очевидно.
PS: да, увидел что перевод, но все равно думаю кому-то будет интересно
Зависит от шины и скорости памяти, s3 trio умело в плоский буфер в 32 битном режиме, было pci и относительно быстрая память. Trident висела на isa и доступ к памяти фреймбуфера был bank switched.
PS: у меня как раз были такая же эволюция железок в конце 90х 486/Trident, Pentium/S3 Trio, и я писал для них крутящиеся кубики, когда временами прогуливал школу.
Видеокарты это был кусок памяти(frame buffer) либо просто линейный, либо с переключением банков (если совсем древние). Единственная задача была перегнать туда данные. Настройка режима и других параметров обычно производилась через прерывания VESA биоса. Самое сложное по скорости это был 3д растеризатор реализованный на cpu.
Очень поверхностно. Как минимум стоит разделить классический статистический ML(все эти линейные регрессии, SVM, случайные деревья, бустинги). И более "современные"(более 8 лет как им уже) подходы основанные на глубоких нейронных сетях. С классическим статистическим ML все уже понятно, как с точки зрения теории и практики, на данный момент это commodity tech. То вот с глубоким обучением все ни так ясно, и область активно развивается...
От прогресса не уйдешь. "Слава аллаху"(/joke), что происходит это в достаточно контролируемых условиях и относительно понятно как это работает. А не вот это самозарождение сверх разума у фантастов.
Прикол, что там еще и контроллер памяти не инициализирован. В современных железках есть режим CAR(cache as ram). А раньше был код на регистрах, либо специальный компилятор. Но вообще в современных биосах (начиная с UEFI) ассемблера очень мало.
Только может быть ни как в Америке, а как в Японии, где стагнация с 90х. А ценные бумаги очевидно стоят по капитализации дороже выпускаемого товара, так как капитализация это стоимость всего предприятия, то есть выручки/прибыли полученной за 10-20 лет.
Извиняюсь, забыл тег /sarcasm )
Если у кого-то не очень с японским, но все равно интересно, оставлю ссылки:
https://en.wikipedia.org/wiki/Discrete_optimization
https://en.wikipedia.org/wiki/Combinatorial_optimization
https://en.wikipedia.org/wiki/Local_search_(optimization)
https://en.wikipedia.org/wiki/Operations_research
Помимо jvm нужна ОС хотя бы linux. Компилятор внутри jvm придется допиливать, но большинство из них достойных рассмотрения open source. И если процессор не совсем экзотика то там нет ничего критично сложного.
Да и очевидно, что нам достаточно найти единственный вектор-строку дающий максимальную ошибку(V*X), остальную матрицу восстановить исходя из необходимых условий ортогональности.
PS: вроде нигде не напутал, если понял задачу правильно
Ну и формально как я понял, даже в рамках исходной задачи:
max abs (q(A*X) - A*X). так, как мы ищем максимум по каждой координате независимо, то и влиять на одну координату будет лишь одна строка матрицы. Соответственно, достаточно перебрать все строки матрицы и для каждой из них найти максимум по соответствующей координате. Максимум от максимумов для каждой из строк и будет ответом.
У меня появилась идея, формально A это оператор поворота с перекошенной метрикой, то есть он может уникально перевести исходный X в любую точку и назад. Соответственно, можно попробовать идти от обратного. Для заданного A*X найти максимально возможную ошибку, в данном случаи это будет С = max(q(X) - X). Теперь надо найти такое обратное преобразование, которое переведет данную точку С в ближайшую к X. Вроде бы шило на мыло, но мы избавились от оператора квантования, а так же можно использовать свойство, что A^-1 = A^T. Конечно если мы будем искать A в реальных числах это не даст глобальный оптимум, но возможно еще что-то можно придумать чтобы продвинуться.
PS: мы можем взять для C лишь одну координату с максимальной ошибкой и соответственно надо подобрать лишь одну строку матрицы действующую на эту координату
Чем то напоминает классический 2-opt(можно и 3-opt) в https://en.wikipedia.org/wiki/Local_search_(optimization). Как мне кажется можно попытаться улучшить, если для двух пар значений считать оптимум не перебором, а как-то аналитически или более хитрым алгоритмом.
Это было про большие разрешения и Quake в частности. По поводу DOOM он работал в 32 битном режиме. Сегментация и bank switch ортогональные концепции, можно было иметь плоскую память в 32 битном защищенном режиме, но видюха все равно была bank-switched. В случаи 320x200 фрэймбуфер умещался в один сегмент/банк.
Если объяснить в двух словах, то вы посчитали среднюю по всей истории стационарную интенсивность голов для каждой команды, и потом на основе этого единственного фактора пытаетесь сделать предсказание. Не удивлюсь что если банальное max(lambda_i) будет давать тот же результат (по крайней мере это логично с точки зрения пуассоновского распределения). И то что получилась Бразилия, тоже вполне очевидно.
PS: да, увидел что перевод, но все равно думаю кому-то будет интересно
Зависит от шины и скорости памяти, s3 trio умело в плоский буфер в 32 битном режиме, было pci и относительно быстрая память. Trident висела на isa и доступ к памяти фреймбуфера был bank switched.
PS: у меня как раз были такая же эволюция железок в конце 90х 486/Trident, Pentium/S3 Trio, и я писал для них крутящиеся кубики, когда временами прогуливал школу.
Видеокарты это был кусок памяти(frame buffer) либо просто линейный, либо с переключением банков (если совсем древние). Единственная задача была перегнать туда данные. Настройка режима и других параметров обычно производилась через прерывания VESA биоса. Самое сложное по скорости это был 3д растеризатор реализованный на cpu.
Очень поверхностно. Как минимум стоит разделить классический статистический ML(все эти линейные регрессии, SVM, случайные деревья, бустинги). И более "современные"(более 8 лет как им уже) подходы основанные на глубоких нейронных сетях. С классическим статистическим ML все уже понятно, как с точки зрения теории и практики, на данный момент это commodity tech. То вот с глубоким обучением все ни так ясно, и область активно развивается...
Интересно откуда берутся люди, которые пишут много формул и не знают про latex.
https://tex.stackexchange.com/questions/150503/how-to-insert-latex-formulas-in-libreoffice
https://habr.com/ru/company/ncloudtech/blog/563842/
PS: я это все честно сам не пробовал. Поэтому, насколько юзабельно вопрос, но почему бы и нет.
От прогресса не уйдешь. "Слава аллаху"(/joke), что происходит это в достаточно контролируемых условиях и относительно понятно как это работает. А не вот это самозарождение сверх разума у фантастов.
Это естественно, но по сравнению с legacy bios ассемблерного кода было на порядок меньше.
В legacy bios-ах очень долго тянули всякий мусор, в uefi биосах почти все было переписано на C. (мне IDA рассказала)
Прикол, что там еще и контроллер памяти не инициализирован. В современных железках есть режим CAR(cache as ram). А раньше был код на регистрах, либо специальный компилятор. Но вообще в современных биосах (начиная с UEFI) ассемблера очень мало.
Прямо чиновник из "палаты мер и весов". Как бы таких на всю страну размножить? Может клонированием? Ну или почкованием? /sarcasm
Было бы интересно сравнить с Numba.
Только может быть ни как в Америке, а как в Японии, где стагнация с 90х. А ценные бумаги очевидно стоят по капитализации дороже выпускаемого товара, так как капитализация это стоимость всего предприятия, то есть выручки/прибыли полученной за 10-20 лет.