Автор |
Сообщение |
06.12.2024 19:37:41
Тема: Re:Применение искусственного интеллекта для обучения HLCCAD - 2024
|
Михаил Долинский
Темы: 2073
Сообщений: 50016
Мой профиль
|
Ксения Бышик:
int __in __bits(8) a;
int __in __bits(8) c;
int __in __bits(16) x;
int __in __bits(16) y;
int __out __bits(16) res;
void main() { // Приведение переменных к необходимым типам
i16 a16 = CBW(a);
i16 c16 = CBW(c);
i32 x32 = CWD(x);
i32 y32 = CWD(y);
// Вычисление выражения для первой ветки: ((x+y)/c-x)*a, если x*y<0
i32 xy_mul = IMUL(x, y); // x * y
i16 xy_mul_16 = x32Tox16(xy_mul);
i32 x_y_sum = IMUL(x, y); // x + y
i16 x_y_sum_16 = x32Tox16(x_y_sum);
i16 x_y_div_c = IDIV(x_y_sum_16, c16); // (x + y) / c
i16 x_y_div_c_x = ISUB(x_y_div_c, x); // (x + y) / c - x
i32 x_y_div_c_x_a = IMUL(x_y_div_c_x, a16); // ((x + y) / c - x) * a
i16 res1 = x32Tox16(x_y_div_c_x_a);
// Вычисление выражения для второй ветки: ((a-x*y)*c)/y+x*y, если x*y>=0
i32 a_xy_mul = IMUL(a16, xy_mul_16); // a * x * y
i16 a_xy_mul_16 = x32Tox16(a_xy_mul);
i16 a_xy_mul_c = IMUL(a_xy_mul_16, c16); // (a - x * y) * c
i16 a_xy_mul_c_y = IDIV(a_xy_mul_c, y); // ((a - x * y) * c) / y
i16 res2 = SUM(a_xy_mul_c_y, xy_mul_16);
// Условие для выбора выражения
i16 zero = CONST(0);
ICMPResult(xy_mul_16, zero);
u1 cond = ILT; // x * y < 0
// Выбор результата на основе условия
res = MSb16x2(res2, res1, cond);
}
Отправила на DLAI ваш препромпт для решения 28-й задачи. Получила код, предоставленный выше, и он не прошел. [TEST1]: Ошибка компиляции (mpc): Ошибка синтаксиса (строка 8): i16 a16 = CBW(a); .
Так а Вы проверяли, с include тестирование работает?
Если да, напишите в препромпте, чтобы ИИ прописывал эту строку.
|
07.12.2024 18:43:25
Тема: Re:Применение искусственного интеллекта для обучения HLCCAD - 2024
|
Сергей Емельянов
Темы: 0
Сообщений: 21
Мой профиль
|
В файл внесены изменения: теперь ИИ прописывает строку "include <hlccad.mpc>". Но тестирование с include не работает из-за ошибки компиляции. Нужно в исходный файл, как и раньше, копировать всю библиотеку, только тогда программа проходит тесты.
|
07.12.2024 21:08:25
Тема: Re:Применение искусственного интеллекта для обучения HLCCAD - 2024
|
Михаил Долинский
Темы: 2073
Сообщений: 50016
Мой профиль
|
Сделайте отдельное сообщение в форуме или текст на гугл-доке
с содержимым файла hlccad.mpc
|
08.12.2024 00:01:08
Тема: Re:Применение искусственного интеллекта для обучения HLCCAD - 2024
|
Сергей Емельянов
Темы: 0
Сообщений: 21
Мой профиль
|
hlccad.mpc
#define i8 int __bits(8)
#define i16 int __bits(16)
#define i32 int __bits(32)
#define u1 unsigned __bits(1)
#define u3 unsigned __bits(3)
#define u4 unsigned __bits(4)
#define u8 unsigned __bits(8)
#define u16 unsigned __bits(16)
#define u32 unsigned __bits(32)
#define u64 unsigned __bits(64)
i16 SIGN (i16 A) { return (A > 0) ? 1 : (A == 0) ? 0 : -1; }
i16 ABS (i16 A) { return (A > 0) ? A : (A * (-1)); }
u64 FACT (u4 A) { u64 RES = 1; while (A > 1) RES *= A--; return RES; }
u1 NOT (u1 A) { return ~A; }
u1 OR2 (u1 A, u1 B) { return A | B; }
u1 XOR2 (u1 A, u1 B) { return A ^ B; }
u1 AND2 (u1 A, u1 B) { return A & B; }
u8 DC (u1 CS, u3 X) { u8 d = 1; return (CS == 0) ? 0 : d << X; }
u4 CD (u8 X) { if (X == 0) return 0; u4 i = 0; while (!(X & 1)) { i++; X = X >> 1; } return (i << 1) + 1; }
u1 MS (u8 X, u3 A) { return ((X >> A) & 1); }
i16 CBW (i8 A) {return A;}
i32 CWD (i16 A) {return A;}
i16 x32Tox16 (i32 A) {return A;}
i8 x16Tox8 (i16 A) {return A;}
i16 CONST (i16 A) {return A;}
u4 CONST4 (u4 A) {return A;}
i16 SUM (i16 A, i16 B) {i16 C; C = A + B; return C;}
i16 ISUB (i16 A, i16 B) {i16 C; C = A - B; return C;}
i32 IMUL (i16 A, i16 B) {i32 C; C = A * B; return C;}
i16 IDIV (i32 A, i32 B) {i16 C; C = A / B; return C;}
u16 MSb16x2(u16 Zero, u16 One, u1 A) {return (A) ? One : Zero;}
u3 ICMP(i32 A, i32 B) {return (A > B) ? 4 : (A == B) ? 2 : 1;}
u1 IGT;
u1 IEQ;
u1 ILT;
void ICMPResult(i32 A, i32 B) {u3 C = ICMP(A,B); IGT = C == 4; IEQ = C == 2; ILT = C == 1;}
|
10.12.2024 11:51:46
Тема: Re:Применение искусственного интеллекта для обучения HLCCAD - 2024
|
Вадим Зинович
Темы: 0
Сообщений: 35
Мой профиль
|
Задачи, которые прошли с использованием DL AI за 1 запрос:
Задача №1
Задача №2
Задача №3
Задача №4
Задача №5
Задача №6
Задача №7
Задача №9
Задача №11
Задача №16
Задача №19
Задача №20
Задача №25
Задача №26
Задача №28
Задачи, которые прошли с нескольких запросов с использованием DL AI:
Задача №8 - с четвёртой отсылки. DL_Ai делает ошибки в создании сложного условия (>=). Так же иногда встречаются ошибки в размерностях переменных. Ещё появляются вложенные вызовы функций.
Задача №10 - со второй отсылки. Ошибка при написании условия >=, а также приведение типов на одной строке с делением.
Задача №12 - прошла со второй отсылки у ai, чтобы исправил условие, т.к. он изначально проверял только X*Y>0, а нужно X*Y>=0. Также в некоторых местах ai сделал вложение функций.
Задача №13 - прошла со второй отсылки, ошибка с построением условия >=, он пишет проверку для X > 0 и Y > 0, а необходимое условие - X * Y >= 0.
Задача №14 - с пятой отсылки. DL_Ai неправильно понял условие второй ветки. И долго ничего не исправлял. Так же ошибка в проверке условия. Снова встречаются некорректные размерности переменных.
Задача №15 - прошла со второй отсылки после исправления условия, ai добавил функцию NOT в условии, которая там не нужна была. Снова сделал вложения и не те размерности в некоторых местах.
Задача №17 - со второй отсылки. Снова неправильное условие для проверки. Код содержит много вложенных вызовов и ошибок в размерностях.
Задача №18 - прошла со второй отсылки после исправления условия(>=), снова ошибки в размерностях и вложении.
Задача №21 - прошла со второй после исправления функции CONST, ai изменил название библиотечной функции на CONST4 при объявлении некоторых констант.
Задача №22 - прошла со второй отсылки, ошибка в названии переменной и неправильное использование функций (функция не возвращает такую размерность, какую DL-AI ожидает), неправильное условие <=
Задача №23 - с третьей отсылки. Из-за ошибочного форматирования в DL_Ai в комментарии попали строки объявления переменных, что вызвало ошибку компиляции. И программа с include так же вызвала ошибку компиляции, из-за чего нужно вставлять всю библиотеку в исходный файл. Код всё так же содержит некорректные размерности в аргументах функций.
Задача №24 - с четвертой отсылки. ИИ долго не мог исправить ошибки, связанные с условием выбора ветки.
Задача №27 - с пятой отсылки. Задача содержит большие степени у переменных. ИИ часто неправильно расставлял размерности, делал много вложенностей, что не позволяло правильно решить задачу.
Задача №29 - со второй отсылки. ИИ неправильно понял условие первой ветки. После указания на ошибку, код был исправлен.
Задача №30 - с пятой отсылки. ИИ долго не мог решить задачу, пример которой написан в файле.
|
12.12.2024 12:01:22
Тема: Re:Применение искусственного интеллекта для обучения HLCCAD - 2024
|
Максим Куделько
Темы: 0
Сообщений: 17
Мой профиль
|
Таблица с результатами запросов всех задач в разные ai:
https://docs.google.com/spreadsheets/d/1EqP6qVUh6Q2vI6NfCeswvwEb1qFAWnhRTKvJFR83kUQ/edit?usp=sharing
|
|
|