dr.Faust
Администратор

Offline
Пол: 
Расположение: Ростов-на-Дону
Сообщений: 1 340
|
На Access создано больше практических баз данных, чем на всех остальных вместе взятых.
Access не база данных, впрочем как и Base. Не понимаю товарищей советующих не использовать его, а использовать MySQL. Это всё равно, что советовать не смотреть телевизор, а смотреть НТВ.
|
|
|
Записан
|
Свобода информации - свобода личности!
|
|
|
RFJ
|
Неужели Бэйз загнется? Нормально он отработает. В этой задаче не нужны навороченные базы данных. Здесь главное - правильный алгоритм поиска решения (составления расписания). Я вообще о Калке сначала думал и макросах. Для этой задачи и Calc сойдет, а вот макросы - это и есть проблема, причем и для Calc и для Base - это одна и таже проблема, т.е. эффективный алгоритм поиска решения.
|
|
|
Записан
|
|
|
|
AcetonKZ
Форумчанин
 
Offline
Пол: 
Расположение: Караганда
Сообщений: 66
|
хотелось бы уточнить: проблема в алгоритме или в макросах(т.е. платформе)?
|
|
|
Записан
|
|
|
|
RFJ
|
Только в алгоритме. Платформа может быть любой (OOo Basic, VBa, C++, ...) Это просто задача с большим количеством "дополнительных условий" (типа "препод Иванов не может читать лекции по четвергам с 10 до 14, т.к. у него по четвергам заседание кафедры", и т.п.)
|
|
« Последнее редактирование: 22 Апрель 2011, 09:51 от RFJ »
|
Записан
|
|
|
|
AcetonKZ
Форумчанин
 
Offline
Пол: 
Расположение: Караганда
Сообщений: 66
|
Ну, тогда ладно. Это уже решаемо(надеюсь) Некие соображения уже наработаны(в т.ч. на Дельфи), поэтому займемся с реализацией на платформе ООо. типа "препод Иванов не может читать лекции по четвергам с 10 до 14, т.к. у него по четвергам заседание кафедры" Ну вот, на самую рану надавили  , если бы не это Aviability и possibility..... На самом деле самый г_мор именно в них, слава богу, в школе нет еще числителя/знаменателя.
|
|
« Последнее редактирование: 22 Апрель 2011, 09:57 от AcetonKZ »
|
Записан
|
|
|
|
RFJ
|
Держите нас в курсе, поскольку задачка очень интересная именно в плане разработки алгоритмов такого типа. А так как она еще и довольно сложная, то у многих руки не доходят до завершенного решения. (Типа "да ну её, проще мне все это сделать вручную".)
|
|
|
Записан
|
|
|
|
|
RFJ
|
Вообще говоря, эти задачи представляют собой задачи СОЗДАНИЯ БАЗЫ ДАННЫХ на основании УСЛОВИЙ.
|
|
|
Записан
|
|
|
|
AcetonKZ
Форумчанин
 
Offline
Пол: 
Расположение: Караганда
Сообщений: 66
|
Алгоритмизация "условий" может оказаться нетривиальной задачей. Вот, вот, все это допусловия и ломают алгоритмы(перебора, рекурсивного перебора, метод исключений,"пятнашки" - все!, пока что) Это мы еще не учитываем, что после физры, например,с точными науками сложно.... Но усложнять будем постепенно ,только решив предыдущийвариант. Не с помощью словесных рассуждений, а именно программно! Эту задачу решали в далеком 94, еще на борланд паскале, и чтоб вы думали , самый сложный момент - способ задания начальных условий, далее все идет как по маслу, например в "пятнашки" такая задача и была решена даже простым перебором, но долго (комп - ЕС1840 был), потом были "условные перестановки" - долго переделывали ,но работала программа считанные секунды. Но это был не алгоритм ,а скорее, комбинаторный перебор, попарное сравнение условий. НО сегодня задача сложнее, чем комбинаторные перестановки из 4 по 5-ти. Вообще говоря, эти задачи представляют собой задачи СОЗДАНИЯ БАЗЫ ДАННЫХ на основании УСЛОВИЙ. Ятоже до этого дошел ,чем "правильнее" изначально база начальных условий, тем проще алгоритм.
|
|
« Последнее редактирование: 22 Апрель 2011, 10:49 от AcetonKZ »
|
Записан
|
|
|
|
VlhOwn
Форумчанин
 
Offline
Пол: 
Расположение: Ростов-на-Дону
Сообщений: 1 076
|
Когда-то в 80-х годах мы решали очень близкую к задаче построения расписания на Прологе. Тогда это был классический Пролог, ограничения на применимость правил приходилось моделировать. Сейчас есть масса различных реализаций Пролога и его производных с ограничениями. Вторым, а может быть и первым, инструментом реализации таких задач, наверное является язык GPSS. К сожалению, я с ним знаком лишь на уровне решения простых задачек для дочек-студенток. В любом случае, Вам до начала реализации потребуется создать какую-то математическую модель, описывающую взаимоотношения между объектами. Чем строже Вы ее формализуете, тем проще потом будет выбрать адекватную реализацию. Вот пример такой формализации
|
|
|
Записан
|
|
|
|
VlhOwn
Форумчанин
 
Offline
Пол: 
Расположение: Ростов-на-Дону
Сообщений: 1 076
|
Не понимаю товарищей советующих не использовать его, а использовать MySQL. Это всё равно, что советовать не смотреть телевизор, а смотреть НТВ. Саша, OOo Base - это СУБД + интерфейс к этой (или иной, подключаемой) СУБД. Мой совет - не использовать СУБД HSQLDB, а использовать вместо нее, например, MySQL. Причины: ненадежность, неразвитость, неудобство.
|
|
|
Записан
|
|
|
|
|
AcetonKZ
Форумчанин
 
Offline
Пол: 
Расположение: Караганда
Сообщений: 66
|
Уточняю. Надо, чтоб любой юзер(читай - завуч) открыл ООо файл ,увидел таблицы со списками учителей, классов , нагрузки. Добавил свои данные, нажал "Генерировать Расписание" и шел пить кофе, обмывать результат  Про подключение по ОДБЦ, мускул или сиквэл, сиквел-сервер и т.д. не думаем!
|
|
|
Записан
|
|
|
|
RFJ
|
База данных (исходная) в этой задаче примитивная - набор таблиц (список учителей, список предметов, список классов, ...) Все дело в том, что мы не знаем как программно задать связи между этими таблицами на основании "условий", сформулированных изначально в словесном виде (например, "в 6-х классах 8 уроков алгебры в неделю", "в школе три(3) 6-х класса - 6А, 6Б, 6В", "математику преподают Иванова, Петрова, Сидорова", и т.д.) Этих условий просто огромное количество, попробуйте, для начала, хотя бы даже выписать их в столбик "словами". Одни условия накладывают ограничения на другие, т.е. ограничивают возможные связи в БД.
Кроме того, нельзя гарантировать, что при удовлетворении всех условий (установке всех связей в БД) решение будет существовать и будет единственным. Решения может не быть, или решений будет несколько.
Начинать, по-моему, нужно с самой простой модели, чтобы понять как эффективно алгоритмизировать программирование "условий" (связей БД).
|
|
|
Записан
|
|
|
|
AcetonKZ
Форумчанин
 
Offline
Пол: 
Расположение: Караганда
Сообщений: 66
|
Все дело в том, что мы не знаем как программно задать связи между этими таблицами на основании "условий", сформулированных изначально в словесном виде (например, "в 6-х классах 8 уроков алгебры в неделю", "в школе три(3) 6-х класса - 6А, 6Б, 6В", "математику преподают Иванова, Петрова, Сидорова", и т.д.) Нет, нет. Я уже кое что придумал, просто в двух словах не сказать, а развернуто сейчас нет времени расписать, может быть в воскресенье вечером выложу заготовку базы и критерии создания. В двух словах - нам надо обеспечить каждому учителю определенное число "часов в неделю" в каждом классе, не заморачиваясь ни на что более детальное, разве что чтоб у класса не было "окон" в расписании и один учитель одновременно не может вести урок в двух классах. А далее уже добавлять все условности ,фундамент для которых надо заложить изначально! Вот коммерческий триал вариант
|
|
« Последнее редактирование: 24 Апрель 2011, 20:42 от AcetonKZ »
|
Записан
|
|
|
|
|