тема диплома: как быть

Тема в разделе "WASM.HEAP", создана пользователем varnie, 7 фев 2008.

  1. varnie

    varnie New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2005
    Сообщения:
    1.785
    привет, дружыщща.

    ситуация такая:
    специальность: прикладная математика и информатика.
    на отлично сдал курсовую на тему "Реализация эффективного алгоритма сжатия данных на примере алгоритма Хаффмана". алгос написал на С++.
    теперь через 13 дней предзащита диплома. препод говорит что на основе курсовой надо диплом строить, причем он вполне даже доволен моей темой курсовой. а что еще к курсовой привинтить я не знаю. вроде бы все уже сказал в ней, что хотел. разве что вот для интереса на JAVA написал простенький GUI, и через него сделал возможность работать с C++ дллкой своей через нэйтив методы, в которой этот алгос, собссно, ранее и реализовал. т.е. теперь можно через GUI фейс кодить/декодить исходные файлы.
    но я жутко не уверен, что подобный винегрет сойдет за диплом.
    сейчас время еще немного есть, за неделю полторы можно чего-нибудь другое реализовать, но не знаю что.

    дружыщща, подсобите советом, как быть -- делать как говорит мой научный руководитель и расширять курсовую до диплома или же хвататься за голову и искать оригинальную _новую_ тему для диплома пока еще не поздно, т.к. вышеописанная штука в дипломы не годится?

    спасибо большое за любые комментарии и пояснения.
     
  2. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    [offtop]
    Странно, у нас в МГТУ требуется в качестве диплома выбирать нечто новое: новая проблема, новый подход к решению проблемы, или оригинальное применение метода для решения задач, для которых данный метод ранее не применялся. А тут Хаффман...
    [/offtop]

    Не вижу смысла использовать данную тему, по причине отсутствия новизны, но это ИМХО.

    Если уж интересуешься сжатием, попробуй себя в фрактальном сжатии или вейвлет-преобразовании без потерь. Но на это нужно время...
     
  3. Noble Ghost

    Noble Ghost New Member

    Публикаций:
    0
    Регистрация:
    28 апр 2004
    Сообщения:
    204
    Адрес:
    Russia
    слушай, что говорит руководитель, он скорее всего понимает, что нужно для защиты :)

    на этом хаффмане уже столько дипломов было защищено.. слабовата тема, но защититься можно.
     
  4. varnie

    varnie New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2005
    Сообщения:
    1.785
    Xerx
    я не из Москвы и не из МГТУ. это раз. как таковое программирование по сути я сам все изучил и мне этот универ с его дипломом просто для галочки, при всем при том что то что нам преподавали за все эти годы в плане IT - прошлый век. это двас. я ж не виноват что так:)
    отсюда, думаю и "плясать" соответствующе, т.е. не сильно мудря с темой, хотя, как я выше уже честно признался, мне данная тема не особенно импонирует. а что посерьезнее выбрать для диплома не знаю, а время работает уже против меня... в этом и проблема, собственно.
    с темами вообще дебилизм у нас кстати:
    если кто-то работает в промышленных организациях, то все поголовно взяли "оптимизации произодственных процессов". об этом я не имею ни малейших понятий, т.к. на производстве не работал. да и они тоже не знают, но темы взяли:))
    некоторые взяли (сейчас смеяться будете:) -- создание сайтофф на пхп.
    при том что никакой пхп в ходе учебы не изучался, его не было в программе. и потом, я не уверен что кто-нибудь из нашей группы напишет что-то толковое и нетривиальное.
    вот и выходит, что раз первое и второе мне не подходит, то надо взять что-то третье. кроме меня алгос Хаффмана вообще никто не взял и подобных "математически-ориентированных" тем очень мало, разве что некоторые взяли что-то связанное с линейной алгеброй у научного руководителя с кафедры геометрии и алгебры.
    но это уже другая история.
     
  5. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    varnie
    Я тоже не и Москвы, но из МГТУ :derisive:
    Про уровень института и предметов нужно было сразу уточнить.

    Насчет Хаффмана - его реализации достигают 30-50 строк на C. Соответственно, сам по себе в качестве диплома он вообще никак. Однако можно эту тему развить. Например реализовать программу обучения данного метода. Есть программа DESTutor (DES Algorithm Tutor by BlackWolf ), в ней очень оригинально поставлен процесс обучения данному алгоритму шифрования - пошагово рассказывается что и как, дается возможность выполнить мини-задания. Плюс она выполняет непосредственно шифрование. Можно сделать нечто подобное: пошагово, с построением визуального дерева, ну и т.д. Достаточно просто и точно оригинально.
    P.S. Само собой речь идет об адаптивном сжатии.

    DESTutor я выложил тут - http://atercattus.info/temp/destutor.rar
     
  6. slow_at_work

    slow_at_work New Member

    Публикаций:
    0
    Регистрация:
    6 ноя 2007
    Сообщения:
    64
    Новую тему реализовать по любому не успеешь. Предложение Xerx весьма оригинально, вполне можно попробовать.
     
  7. varnie

    varnie New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2005
    Сообщения:
    1.785
    Xerx
    да, уровни универов разные...

    DESTutor уже изучаю, и идея мне подобного рода нравится. осталось придумать, каким образом визуальное дерево строить, т.к. если его строить для любых исходных данных, то оно будет очень внушаемых размеров, а это визуально не смотрится.
    наверно стОит сделать так:
    сделать по подобию DESTutor-a: окошко и в нем неск кнопок.
    по первой осуществляем сжатие/расжатие указанного исходного файла. визуально ничего не отображаем, никаких деревьев.
    по второй кнопке предлагаем ввести исходные данные ограниченной небольшой длины. и здесь уже строим само дерево и все отображаем. наглядность типа.
    здесь же встраиваем как сжатие так и расжатие, как у DESTutora по нажатию кнопки "шифрование и дешифрование".
    хотя, для расжатия потребуется как-то ввести исходные "сжатые" данные и прочую информацию (веса текущих букв итд), а это будет громоздко имхо.

    вроде бы все четко! спасибо за идею, сейчас все продумаю еще...

    ps: осталось придумать каким образом дерево визуально представлять, чтобы это было негромоздко и смотрелось хорошо.
     
  8. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    varnie
    Вывод дерева - сделай со сворачиванием поддеревьев.
     
  9. varnie

    varnie New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2005
    Сообщения:
    1.785
    да, верно.

    еще вопрос - какие шаги визуально отображать? само построение дерева и только, или все промежуточные шаги по порядку: построение поддеревьев, подсчет весов исходных символов, а уже затем отрисовывать построенное дерево?
    если ограничиться вводом исходных данных через какой-нибудь Edit итд, то скорее всего данные будут очень маленькой длины, а следовательно, данный алгос Хаффмана будет неэффективным, т.к. таблица весов всех символов "перекроет" собой длину сжатой последовательности исходных символов.
    или это для наглядного процесса обучения не так важно, и здесь важно отобразить само построенное дерево и сам процесс его построения?
     
  10. varnie

    varnie New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2005
    Сообщения:
    1.785
    т.е. будет что-то в духе:
    окно для ввода исходных данных. пользователь вводит туда произвольный текст. жмет кнопку "далее". на след. состоянии окна отображается список всех различных символов введенных данных с их частотами. создаем начальные листья. сортируем их. отображаем их. жмем "далее". здесь по каждому нажатию кнопки "демонстрация" мы пошагово строим поддеревья, и обновляем их визуальные представления, покуда не придем к единому дереву. далее на след шаге мы создаем коды для всех символов. опять же, это все последовательно пошагово, на каждое нажатие кнопки "демонстрация" создаем один код на один символ. и так для всех символов.
    далее на след. состоянии формы по нажатию "демонстрация" пробегаемся по всему исходному тексту и кажд его символ заменяем на соотв. код. и это все опять же пошагово отображаем в поле для итогового результата.

    хм, больно шагов много получается. громоздко.
    а если еще предусмотреть такой же процесс и для наглядной демонстрации расжатия, то эта громоздкость умножается на 2. :)

    или же некоторые шаги неитерировать а сразу же выводить промежуточные результаты, а вверху формы предварить текущий шаг его описанием чтобы всем все было ясно. например, зачем жать 10 раз кнопку, чтобы последовательно построить 10 кодов? можно просто написать вверху текст о текущем шаге и все, предоставить построенные 10 кодов.
    или это не айс будет уже?

    как все утрясу в голове, так сразу попробую взяться за реализацию...
     
  11. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    Конечно все по шагам. Так, как бы ты это делал в ручную на листке бумаге.
    Важно именно показать сам процесс, а то что не особо сожмет - не тот класс данных (малая длина).
    На буфере символов в 20 самое оно. Просто заполнить его с реальным преобладанием 2-3 символов.

    По второму посту.
    Проще написать некоторое множество процедур, выполняющих по одному шагу. И потом реализовать все через конечный автомат.
     
  12. varnie

    varnie New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2005
    Сообщения:
    1.785
    Xerx
    все понял, спасибо еще раз.
    буду думать и пробовать.
     
  13. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    Пожалуйста.
     
  14. varnie

    varnie New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2005
    Сообщения:
    1.785
    еще небольшое уточнение хочу...

    с сжатием и визуальным его представлением все понятно.
    а вот как быть с расжатием? в таком случае пользователь должен будет ввести
    1. таблицу частот для текущего случая
    2. сжатые данные

    если и то, и другое вводить ему наобум, то при расжатии в большинстве случаев получится бессмысленый набор символов. а хочется ведь иметь осмысленный текст.
    или это уже мелочи и на них мне не стОит обращать внимания?
     
  15. slow_at_work

    slow_at_work New Member

    Публикаций:
    0
    Регистрация:
    6 ноя 2007
    Сообщения:
    64
    вероятно, стоит предоставить юзеру возможность выбрать сжатый файл из имеющихся, а таблица частот должна быть в сжатом файле вроде (хотя бы инициализация).
     
  16. varnie

    varnie New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2005
    Сообщения:
    1.785
    slow_at_work
    да, можно. я об этом уже тож думал. но получится что нужно будет нагенерить неск. сжатых файлов. для демонстрации сойдет.
    хотя такой подход и заставляет юзера работать с уже _кем-то_ сжатыми данными, и интерес поэтому ИМХО теряется. ну да ладно, фиг с ним, с интересом.
    больше вариантов я думаю никаких нету.
     
  17. slow_at_work

    slow_at_work New Member

    Публикаций:
    0
    Регистрация:
    6 ноя 2007
    Сообщения:
    64
    Ну он может сначала сжать файл, потом его же расжать. Как я понимаю, это наиболее интересный вариант.
    Т.е. грубо говоря будут у тебя 3 кнопки сжать, расжать, сжать и расжать
     
  18. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    varnie
    Пусть он расжимает то, что перед этим сжал :) Ну или пусть вводит произвольные данные, прога их быстро сжимает и выдает на вход "расжимальщика".
     
  19. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.242
    varnie
    я с СSC бился примерно два года; туеву кучу всякого бреда перемолоть пришлось и в конце я её своим дипломом сделал:)) добрый тебе совет: не меняй коней на переправе - твой ломак - препод доволен и забей, вот чисто для себя новые темы копай:derisive:)
     
  20. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    UbIvItS
    [offtop]
    Да мы вроде уже давно решили с автором, что не будем сочинять новую тему...
    А что за CSC? Просто интересно :derisive:
    [/offtop]