Обнаружение плагиата в сабмитах

Обсуждение вопросов, связанных с системой проведения турниров ejudge.
Post Reply
vyahhi
Posts:28
Joined:15 September 2011, 15:03
Обнаружение плагиата в сабмитах

Post by vyahhi » 26 December 2011, 11:47

Добрый день!
А существует ли какая-то опция или плагин к ejudge для обнаружения плагиата в сабмитах (между разными участниками одного контеста)? Интересует хотя бы простенькие нотификации от автоматического diff-а, инвариантного к пробелам и переименованию переменных/функций/классов.
Спасибо.

vyahhi
Posts:28
Joined:15 September 2011, 15:03

Re: Обнаружение плагиата в сабмитах

Post by vyahhi » 17 January 2012, 08:40

Совсем нет? :(

vk
Posts:165
Joined:24 August 2007, 13:44
Location:Ханты-Мансийск
Contact:

Re: Обнаружение плагиата в сабмитах

Post by vk » 18 January 2012, 20:33

По-моему, только стандартный diff.
В мастере View source/Compare this run with run:

Прикрутите сами к ejudge что-то вроде этого http://imcs.dvgu.ru/works/work?wid=1225 , и мы скажем вам спасибо :-)

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Обнаружение плагиата в сабмитах

Post by cher » 19 January 2012, 09:04

Средства нахождения плагиата есть, но каждый их владелец предпочитает не особо описывать
их работу и тем более не выкладывать в открытый доступ с исходным кодом :)

vk
Posts:165
Joined:24 August 2007, 13:44
Location:Ханты-Мансийск
Contact:

Re: Обнаружение плагиата в сабмитах

Post by vk » 19 January 2012, 10:35

cher:
Вы про "жадность", или про засекреченность алгоритмов сравнения от участников?

П.С. Можно попробовать реализовать поддержку подключения модулей сравнения текстов.

П.П.С. А вообще, считаю, что данная тема не так сильно распространена по следующим причинам:
1. Контроль уникальности решений - проблема надзора за участниками на местах. Исключение - интернет-соревнования, в них контроль не всегда возможен.
2. Проблемы могут возникнуть при сравнении решений простых задач, или задач с общеизвестным стандартным решеним. Решения могут быть похожыми даже если участники их писали самостоятельно.
3. Как описать грань между "решения похожи" и "решения идентичны"?

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Обнаружение плагиата в сабмитах

Post by cher » 19 January 2012, 16:33

Я о секретности алгоритма. И да, все замечания vk справедливы.

vyahhi
Posts:28
Joined:15 September 2011, 15:03

Re: Обнаружение плагиата в сабмитах

Post by vyahhi » 24 January 2012, 01:08

Мне кажется, что должен быть какой-то стандартный алгоритм базовой проверки плагиата кода (без сверхсложных предположений). Странно держать его в секрете. Да и вряд ли много участников контестов будут смотреть исходники ejudge и специально изменять скопированное решение так, чтобы оно проходило проверку на плагиат :) Такие участники обычно могут и решение правильное написать сами.

Стандартный diff помогает, но нужно сравнивать каждую пару решений. Плюс от простого переименований переменных это не спасёт (каждая строчка будет разная).
Определитель плагиата может иногда ошибаться (например указывать два простых независимых решения как плагиат), это не страшно - всяко лучше, чем его полное отсутствие :)

Посмотрю, что можно сделать с http://imcs.dvgu.ru/works/work?wid=1225, спасибо.

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Обнаружение плагиата в сабмитах

Post by cher » 24 January 2012, 10:48

vyahhi wrote:Мне кажется, что должен быть какой-то стандартный алгоритм базовой проверки плагиата кода (без сверхсложных предположений). Странно держать его в секрете. Да и вряд ли много участников контестов будут смотреть исходники ejudge и специально изменять скопированное решение так, чтобы оно проходило проверку на плагиат :) Такие участники обычно могут и решение правильное написать сами.
Такие участники могут и за других участников сдавать решения. За различные формы вознаграждения :) Случаев такого поведения достаточно.
vyahhi wrote:Стандартный diff помогает, но нужно сравнивать каждую пару решений. Плюс от простого переименований переменных это не спасёт (каждая строчка будет разная).
Определитель плагиата может иногда ошибаться (например указывать два простых независимых решения как плагиат), это не страшно - всяко лучше, чем его полное отсутствие :)
Можно встроить обычный diff, сравнивающий все пары решений, но как Вы сами пишете, толку от этого немного. :)
vyahhi wrote:Посмотрю, что можно сделать с http://imcs.dvgu.ru/works/work?wid=1225, спасибо.
Попробуйте, но, поскольку это курсовая работа 3 курса, думаю, что с ней ничего толкового не сделаешь.

vk
Posts:165
Joined:24 August 2007, 13:44
Location:Ханты-Мансийск
Contact:

Re: Обнаружение плагиата в сабмитах

Post by vk » 26 January 2012, 20:05

cher wrote:Попробуйте, но, поскольку это курсовая работа 3 курса, думаю, что с ней ничего толкового не сделаешь.
Все же лучше, чем простой дифф, имхо.

Но опять же встает вопрос о попарном сравнении. Вот если придумать какую-нибудь хеш-функцию для решений ...

Post Reply