알고리즘 일정. 과학은 일정을 만든다

그다지 많이 있다고 가정 해보십시오 엔.지정된 프로세서, 지정 및 M 개의 독립적 인 작업
실행됩니다. 프로세서는 동시에 작동 할 수 있으며 모든 작업을 수행 할 수 있습니다. 작업이 프로세서에로드되면 처리가 끝날 때까지 남아 있습니다. 작업 처리 시간 그것은 또한 알려져있다
가능한 한 빨리 전체 작업 세트가 완료되도록 작업 처리를 구성하십시오.

시스템은 다음과 같이 작동합니다. 첫 번째 릴리스 된 프로세서는 목록에서 다음 작업을 수행합니다. 두 개 이상의 프로세서가 동시에 해제되면 목록에서 다음 태스크가 가장 작은 숫자가있는 프로세서가됩니다.

...에 세 가지 프로세서와 6 가지 작업이 있으면 각각의 실행 시간이 있습니다.

초기 시간에 일정을 고려하십시오. t \u003d 0.프로세서 작업을 처리하기 시작합니다 프로세서 - 작업 프로세서 - 작업 ...에 CPU. 작업을 완료합니다 시간에
프로세서 여전히 원래 작업을 수행합니다. 에 대한 t \u003d 3.cPU. 다시 작업을 완료합니다 그리고 작업을 처리하기 시작합니다 그 당시는 끝납니다 t \u003d 4....에 그런 다음 그는 마지막 작업을 수행하기 시작합니다 ...에 프로세서 마침 작업 t \u003d 5.그러나 목록 이후 엘.비어 있고, 그들은 멈 춥니 다. CPU. 작업 실행을 완료합니다 ...에 대한 t \u003d 12....에 검토 된 일정은 그림 1에 설명되어 있습니다. 임시 다이어그램으로 알려진 다이어그램 gantta Scheme....에 분명히 일정은 최적이 아닙니다. 모든 작업을 완료 할 수있는 일정을 예를 들어 "픽업"할 수 있습니다. t * \u003d 8.시간 단위 (그림 2.).

이제 다른 유형의 작업 유형을 고려하여 다중 프로세서 시스템에 대한 일정을 작성하십시오. 고정 된 수의 프로세서로 설정된 설정을 가장 빠른 완료하는 문제 대신 이제는이 작업 세트 세트를 고정 된 시간에 완료하는 데 필요한 최소 프로세서의 문제를 해결합니다. ...에 물론 시간 시간이 많이 걸리는 작업의 시간 이상이 없을 것입니다.

이러한 제형에서, 일정을 도입하는 작업은 다음 패키징 문제와 동일합니다. 각 프로세서를 보내십시오 상자에 해당합니다 크기 ...에 각 작업을하십시오 크기의 크기에 해당합니다 작업 실행과 동일합니다 어디
이제 일정을 그리는 작업을 해결하기 위해 최소한의 상자 수에 모든 항목을 배치 할 수있는 알고리즘을 작성해야합니다. 물론 볼륨 위의 상자를 채우는 것은 불가능합니다. 및 항목을 부품으로 분쇄 할 수 없습니다.

문학

1. T. 코너, ch. Leiserson, R. Rivest

알고리즘 : 건물 및 분석. m .: McSnmo, 2000.

2. D.Knut 아트 프로그래밍, 볼륨 1. 기본 알고리즘. uch. POS. m. : 에드. 하우스 "Williams", 2000.

3. Wirth N. 알고리즘 및 데이터 구조. : 펜. 영어로부터 - M. : MIR, 2001.

4. Husainov B.S. 구조 및 데이터 처리 알고리즘. 예

si 언어. 연구. 이익. M : 금융 및 통계, 2004.

5. A. AHO, J. Chopcroft, J. Ulman, 데이터 구조 및 알고리즘 M : St. Petersburg : Kiev : Williams, 2001.

침묵은 자신을 바느질하는 봉합, 한숨을 쉬는 것 :
- ... 군 복무에서는 징계가 있어야합니다. 아무도 손가락으로 손가락으로 움직일 것입니다. 우리의 ober 중위 makovets는 항상 말했다 : "훈련, 괴상한, 필요합니다. 징계가되지 마라, 당신은 원숭이, 라 세리 나무를 원합니다. 당신의 군사 봉사, 브레인이없는 바보, 사람들은 할 것입니다! " 글쎄, 그렇지? 광장을 상상해보십시오, Karlova Square에서, 각 나무에서 하나의 징계없이 한 명의 병사가 앉아 있습니다. 그것은 나를 몹시 깜짝 놀라게합니다.
Yaroslav Gashek. 용감한 군인 Schweik의 모험

스케줄 클래스, 이것은 공간 (주제), 교사 (교사), 관객 및 그룹 (하위 그룹, 스트림) 학생의 공간과 시간을 조합 한 것입니다.

문제의 공식화

나는 간단하게 할 것이다.

  • 수업을 수행 할 때, 예를 들어, 부서 회의에서 학생들은 보통 오지 않거나 학생들이 갔다. 군사 부서 (그들은 자신의 일정을 가지고 있으며, 수업의 종류가 징계, 교사 및 청중이 없습니다.
  • 규칙적으로 필요한 요구 사항은 학생들의 연속성 (Windows 부재)이며 선생님 중에서 가깝습니다.
  • 일정은 2 주 동안, 2 주 및 분자 / 분모 (홀수 주 / 심지어 주)의 경우 수 주 동안 수주 / 절반에 대해 준비 될 수 있습니다. 한 달 동안 일정이 있습니다.
  • 클래스는 수동 모드에서 수행 할 수 있어야합니다 (다른 단어에서 편집기에서). 예를 들어 과학원회 또는 두 개의 Bolshoi 수석 및 교훈조차도 좋은 사람 일뿐입니다.
  • 수업의 모든 참가자에게 금지 시스템이 있어야합니다. 예를 들어, 거의 모든 교사들이 옆에 일하거나 (그렇지 않으면 당신이 살아가지 않을 것이라고) 감사 기금이 학부 사이에 나뉘어져 있으며 잠재 고객의 일부로 점심을 넣는 것은 불가능합니다.
  • 교사의 정교한 소원, 하루에 하루에 하나의 포즈를 취하고 하루에 두 쌍이 넘는 다른 5 명의 커플이 있습니다. 압도 당하지 않으며 강의가 한 쌍이되면 2 쌍의 경우 2 켤레 이상 2 ~ 3 개 이상입니다.
  • 클래스 간의 휴식 시간 이상을 요구하는 다양한 건물의 수업. 자연스럽게 그리고 변위를 최소화하는 조건.

산출. 제제에서 볼 수 있듯이 완벽한 편집 후에도 일정의 품질을 평가할 수 있습니다. 결과적으로 유전 알고리즘의 사용은 원하는 작업에 대한 해결책을 구축 할 수 있으며 심지어 그런 의미 중 하나를 얻을 수 있습니다. 이 경우, 유전자 알고리즘은 처음에는 최적의 최적으로 매우 빨리 수렴되고 입력 데이터의 양에 대한 제한이 거의 없음을 의미합니다.

그림이 여기에서 가져옵니다.

유전자 알고리즘

순수한 수사학, 나는 유전자 알고리즘의 주요 단계를 반복한다 :

  1. 인구의 개인을위한 대상 기능 (피트니스) 설정
  2. 초기 인구를 만듭니다
  3. (사이클 시작)
    1. 재생산 (횡단)
    2. 난요
    3. 모든 개인에 대한 목표 기능의 값을 계산하십시오.
    4. 새로운 세대의 형성 (선택)
    5. 정지 조건이 수행되면주기의 끝은 그렇지 않으면 (주기의 시작)입니다.

유전 알고리즘의 사용의 가장 특징적인 오류는 유전자를 선택하는 것입니다. 종종 용액은 종종 유전자로 선택됩니다. 유전자의 선택은 유전자 알고리즘을 만드는 가장 중요하지 않은 창조적 인 요소입니다. 개인적으로, 나는 유전자의 선택이 다음 두 가지 기본 요구 사항을 충족시켜야한다고 믿습니다.

  1. 유전자 세트에서 원하는 작업의 결정은 신속하고 모호하지 않게 지어 져야합니다.
  2. 횡단면, 자손은 부모의 특징을 상속해야합니다.

논평. 유전자 세트는 전체 세트 (최적의 최적) 솔루션을 제공해야합니다. 원칙적으로 상호 암협을 요구할 필요는 없으며, 유전자를 솔루션 공간에 매핑하기에 충분합니다. (inifying).

드로잉 일정 알고리즘

나는 그들 자신을 자신을 짓는 알고리즘, 교차 및 돌연변이를 묘사하는 알고리즘 만 묘사 할 것입니다.

숙련 된 디스패처의 일정으로 경험이 풍부한 단어는 디스패처가 이미 이미 있고 일정이 이미 때로는 이미 말하고 병목 현상을 알고 있습니다. 예를 들어 큰 스트리밍 시청 또는 컴퓨터 클래스가 부족합니다. 첫 코스는 컴퓨터 클래스의 하위 그룹에서 많은 스트리밍 강의를하고 동시에 컴퓨터 클래스의 하위 그룹에서 수업이 있기 때문에, 처음에는 첫 번째 코스가 Windows가 없어야합니다. 어쨌든. 그리고 하루에 두 개의 강의가 균일하게 적재되었습니다. 따라서 숙련 된 디스패처는 처음으로 "좁은 수업", 상사의 수요와 특히 성가신 교사들의 수업에 대해 상사의 수업을 둡니다. 그런 다음 정렬 된 클래스를 뼈대로 사용하여 스케줄을 빠르게 완료합니다. 이 과정에서 감각을 모방 해 보겠습니다.

수업의 일부는 이미 일정에 남아 있습니다. 원칙적으로 클래스의 순서만이 여기에 중요하지만 원칙적으로는 직업 번호의 배열이 게놈으로 간주됩니다. 일정을 구축하려면 일관되게 수업 수를 지속적으로 제거하고 선택한 요구 사항을 충족시키고 학생, 교사 및 관객을위한 목표 기능을 극대화하고 학생, 교사 및 관객을위한 대상 기능을 극대화합니다 (또한 고용 기준).
필요한 요구 사항이 충족되지 않으면 그러한 게놈을 가진 개인은 비주얼으로 폐기 될 수 있습니다. 일정이 작동하지 않으면 대상 기능에서 필요한 요구 사항을 잘 대체 할 수 있습니다.

교차점은 여러 가지 방법으로 구성 될 수 있습니다. 예를 들어, 그 중 하나입니다. 우리는 다음과 같은 유전자를 가질 수 있습니다

3 1 2 5 6 4 7
2 3 5 7 1 4 6

여기서는 직업 3이 두 유전자에서 2 개의 포괄적 인 위치에서 발견되며, 예를 들어, 위치 2에서 1 클래스에 대한 5 개의 간격으로 위치하는 것으로 나타났습니다. 우리는 다음 태블릿을 만들 것입니다

_ * * * * _ _ 1 클래스
* * * _ _ _ _ 2 클래스
* * _ _ _ _ _ _ _
_ _ _ _ _ * _ _
_ _ * * _ _ _ 5 클래스
_ _ _ _ * * * 6 수업
_ _ _ * * * * 7 수업

여기서 별표는 자손의 모양에 대한 가능한 위치를 표시했습니다. 하나 이상의 중에서 선택할 수 있습니다 가능한 해결책 이 부모의 자손이나 자손으로. 자손 유전자를 선택하기로 결정한 결정은 항상 부모님이 그를 만족시키는 것입니다. 가능한 많은 위치를 통해 테이블을 다시 작성하십시오

1 위치 (2, 3)
2 위치 (1, 2, 3)
3 위치 (1, 2, 5)
4 위치 (1, 5, 7)
5 위치 (1, 6, 7)
6 위치 (4, 6, 7)
7 위치 (6, 7)

솔루션을 구축하려면 다음 알고리즘을 사용할 수 있습니다. 먼저 우리는 덜 가능성이 적은 수업 수를 넣을 것입니다. 그들이 그들이 오름차순을 정렬하면, 우리는
1 시간 4.
2 번 3, 5.
3 번 2, 6.
4 번 1, 7.
결과적으로, 먼저 6 번째 위치에 4 \u200b\u200b개 수업을두고 위치 (1, 2) 또는 (3, 4)에서 3 또는 5를 각각 두십시오. 각 단계에서 일치하는 상자를 던질 수 있습니다. 결과적으로 횡단 알고리즘을 위해 다음 단계를 수행 할 수 있습니다.

* * * * * 4 *
3 * * * * 4 *
3 * * 5 * 4 *
3 * * 5 * 4 6
3 * 2 5 * 4 6
3 * 2 5 7 4 6
3 1 2 5 7 4 6

올바른 시퀀스를 구축 할 수 있으므로 알고리즘을 반복하기 위해 간단한 재귀 형태로 알고리즘을 구성하는 것이 좋습니다. 일부 보어 조직.

돌연변이는 직업 수의 간단하고 무작위 순열을 충분히 조직 할 수 있습니다.

결론

이것은 한테 계속되는 지속적이며, 대학의 수업 일정과 부서의로드 계산을 추출하는 게시물 프로그램입니다.

다음 솔루션 (스케치)을 다시 제안하십시오.

  • pyqt 또는 pyside에있는 gui
  • POSGRESQL DBMS (여기에 약 80 %를 할 수 있음) 또한 교사, 커리큘럼 및 훨씬 더 많은 신청 및 하중이 있습니다 (이 목적을 위해 하나 이상의 주제를 게시하십시오)
  • cherrypy + Cheetah의 웹 인터페이스 (그러나 논의 할 수 있음)
  • openDocument 형식의 모든 보고서 (일정, 커리큘럼 카드 등)의 수출 (GoSt R ISO / IEC 26300-2010) odfpy를 통해 @ 01.06.2011의 주 표준
  • 나의 컴파일 알고리즘을 예약하십시오 (이 항목은 이것에 관한 것입니다)
  • 나에게서 준비
  • 공통 코어에서 관심있는 일을 위해서
  • 자체 대학에 따른 관심있는 적응과 유연하게 모든 것을 변화시킬 수있는 기회를 얻으려면 인생이 간다. 공무원은 기숙하지 않습니다.

이 주제를 논의한 후에 응답 한 모든 사람 덕분에 정리할 수 있습니다.

일정 수업은 학생과 교사의 학교 생활, 일과 여가의 리듬을 조절합니다.
전체 교육 과정의 효과는 품질에 달려 있습니다.

수업 및 학교 일정 수용 가능성

학교 교과 과정은 학생들의 기능적 역량을 준수해야합니다. 볼륨, 콘텐츠 및 조직 교육 과정 피로가 나머지 기간 동안 완전히 사라질 것이라는 신체의 상태를 보장해야합니다.

학생의 기능 측면에서 수업을 추정하는 주요 기준 - 난이도 및 피곤함. Tedisality는 성능 변화와 주제의 어려움을 특징으로합니다. 학문 수준, 즉 동화의 정도 교육 자료...에 따라서 일정을 작성할 때는 두 요소를 똑같이 고려해야합니다.

법적 측면에서, 학교 일정을 만드는 문제는 정신 성과의 생체 주의학의 현대 과학 연구의 현대 과학 연구와 IG의 피험자의 어려움 테이블의 데이터를 기반으로하는 일정 준비를위한 새로운 위생 요구 사항에 반영되었습니다. ...에 Sivkova. 그러나 스케줄 인 학교의 부국장의 경우, 건강 상태에 특정한 주제에 대한 수업의 강도를 제공하는 것이 얼마나 어려운지 알고있는 것이 중요합니다. 불행히도, 표 난년도. Sivkova는 학습의 성분을 고려하지 않으며, 주로 학생의 건강에 영향을 미치는 물체의 성분으로 고려하지 않습니다.

현대의 연구는 일부 피험자에서는 이러한 지표가 크게 다르지만 어려움의 지루함의 의존성에 대한 의존성에 대한 아이디어를 제공합니다. 이러한 아이디어를 사용하면 두 개의 표시기를 주제의 수용성으로 결합 할 수 있습니다. 따라서 표 I.G. Sivkova는 대안을 제공 할 수 있습니다. 대상의 허용 가능성의 규모는 훈련의 어려움과 정성의 구성 요소와 각각의 특징을 고려할 수 있습니다. 교육 기관 각 클래스의 커리큘럼.

수용 규모는 항목이 이루어지는 "등급 항목"의 열로 구성되어 있으며, 그 순위는 방법에 의한 어려움과 수지의 진단 결과에 의해 얻어졌습니다. 전문가 견적 - 그들의 알고리즘은 부록 1. 구조, 제안 된 일정한 스케일 및 변수의 내용에 따라 (표 1 참조).

1 번 테이블

샘플 규모 수용 가능성

표 1에서 볼 수 있듯이 규모는 다섯 가지 어려움 그룹으로 구성됩니다. 각 그룹은 추정치를 추정합니다. 이것은 변화가없는 규모의 영구적 인 구성 요소입니다. 각 그룹의 콘텐츠 (즉, 일련의 항목)는 진단 결과에 따라 다를 수 있습니다. 그것은 규모의 변이 부분입니다.

세인트 피터스 버그 (St. Petersburg)의 중등 학교 No. 618에서는 물체의 허용 가능성의 다음 규모를 받았습니다 (표 2 참조).

표 2

객체 수용성 척도

일정을 그리는 알고리즘

각 교육 기관에서는 물체의 허용 가능성이 자신의 것입니다. 독자는 일대일 규모로 복사해서는 안됩니다. 전문가 평가에 의해 학교에서 아이템의 어려움과 정도를 진단하는 것이 좋습니다.

또한 일정을 작성할 때는 수업 주 동안 다양한 교훈에서 다양한 수업의 학생들의 작업 능력 수준의 순위표를 안내하는 것이 좋습니다 (부록 2 참조).

우리는 실제로 실제로 성취 된 위생 요구 사항을 고려한 생리적으로 합리적인 일정을 준비하기위한 알고리즘을 만들었습니다. 이 알고리즘은 두 번째 및 세 번째 단계와 상대적으로 작은 교육 기관에서 많은 수의 수업이있는 학교에서 교육 일정을 컴파일하는 데 사용할 수 있습니다. 알고리즘은 사용하지 않고 일정을 구성하는 전문가를 대상으로합니다. 컴퓨터 프로그램.

자동화 된 프로그램을 사용할 때 제안 된 알고리즘을 기반으로 한 단계에서 자동화 된 프로그램을 사용하여 항목의 정렬을 수행하는 것이 좋습니다. 실제로는이 프로그램은 다음을위한 보조 도구로 만 사용할 수 있습니다.

  • 후속 수동 마감재로 객체의 초기 배열;
  • 정보를 저장하고 인쇄 할 출력.

오브젝트의 자동 분포 (프로그램, 규칙, 40 ~ 70 %)의 자동화 된 배포 후에는 끊임없는 아이템을 제공 할 필요가 없으므로 수업 일정에 대한 위생 요구 사항이 거의 불가능합니다. 당신이 계획하는 경우에 "계획을 세우는 경우"아이템의 자동 정렬 (최대 60 %)을 크게 변경합니다.

따라서 실제 실현 가능한 위생 및 교육적 요구 사항을 고려한 Rational Schedule을 컴파일하기위한 컴퓨터 프로그램을 사용할 때는 위에 제안 된 알고리즘을 사용하여 스테이지를 수행하기 위해 교육 기관의 특성을 정렬해야합니다. 동시에, 그룹 그룹의 구성 단계의 각 단계는 위의 요구 사항에 대한 방향으로 수동으로 마무리되어야합니다. 이렇게하면 일정을 더 합리적으로 만들 수 있으며 가능한 경우 필요한 모든 조건을 고려하십시오.

일정 변경 절차

학교 일정 조정 알고리즘

필요한 경우 학년도에 일정을 변경하십시오.이 일정을 꽤 자주 발생하면 테이블 레이아웃에서 작업해야합니다. 일정을 변경하려면 다음 계산 및 순열을 수행해야합니다.

일정을 작성하는 제안 된 방법은 평소보다 시간이 걸리지 않지만 일정을 유능하게 만들 수 있습니다.

  • 더 합리적인 학교 일정을 더 컴파일하기 위해 객체 (어려움 및 피곤)의 자체 척도를 만드십시오.
  • 학교 부국장의 관점을 충분히 필요한 정보를 충분히 많이 사용해야합니다.
  • 매일 수업을 균등하게 분배합니다 (불필요한 수의 수업 수를 피하십시오).
  • 매일 학생들이 동시에 학교 수업을 시작할 수 있기 때문에 모든 수업을 첫 번째 수업에서 모든 수업을 하나의 리듬으로 교육을 제공 할 수 있습니다.
  • 학교의 주간 성과의 역학에 따라 학교의 복잡성 정도를 규제합니다.
  • 최소한의 금액을 유지하고 교사의 작업의 리듬을 유지하고 유리한 작업 모드를 만들 수있는 최소한의 금액을 유지할 수있는 수업을 표현합니다.
  • 다양한 초점의 합리적으로 대체 대체;
  • 필요한 이중 수업을 합리적으로 정리하십시오.
  • 생산 필요성으로 인해 스케줄을 신속하게 변경하고 조정하십시오.

또한이 방법을 사용하면 상당수의 종이 공백 (특히 두 번째 및 세 번째 단계의 많은 클래스가 30 개 이상의 클래스의 클래스가있는 경우 추가 테이블)이 필요하지 않습니다.

특정 교육 기관의 능력에 해당하는 고품질 일정을 준비하기 위해, 각 병렬에서 객체의 난이도 및 치수의 정도의 자체 진단을 수행해야합니다. 이 경우 전문가는 어떤 물건이 어렵고 지루한 물건을 말할 수 없기 때문에 학생이어야합니다.

학교 일정의 위생 평가 기준

1. 수업 수 초등학교 – ______.

2. 1 차 및 고등학교 수업의 수 - ___________.

3. 수업을 수행하는 데 사용되는 총 교실 - ___________.

4. 교육 기관에 대한 수용성 규모의 존재 :

5. 학교 일정의 객체의 숙소 규모의 계산 :

6. 학생들을위한 하루에 수업 분포 :

7. 모든 수업은 첫 번째 교훈에서 공부하기 시작합니다.

8. 다른 초점과 복잡성의 물체의 합리적인 교대 :

9. 학생 성과의 회계 준수 (주간 역학) :

10. 교사를위한 수업의 합리적인 정렬 :

11. 하루 교사로부터의 최대 수업 수 :

a)) 최대 4 개의 수업 - ____ 선생님 - ______ (%);

b) 5 및 6 레슨 - ____ 선생님 - _____ (%);

c) ____ 선생님 - ___ (%).

12. 체계적인 날짜가 가능합니다 (교사 수를 지정하십시오).

a) 일주일에 24 시간까지의 부하 - ____ 선생님;

b) 일주일에 25 ~ 30 시간의 하중 - ___ 교사에서;

c) 일주일에 30 시간 이상 부하가 있습니다. ___ 선생님.

  1. 5 학년에서 11 학년까지 아이템의 이름으로 설정을 준비하십시오.
  2. 학생들은 객체의 이름이있는 카드 세트를 배포하고 답변을 위해 나뭇잎입니다.
  3. 이 클래스에서 공부 된 주제의 이름으로 카드를 선택하십시오 (일기를 통해).
  4. "난이도"개체의 개념을 명확히하십시오.
  5. 순위에 따라 각 항목의 어려움을 독립적으로 결정하는 것이 좋습니다. 피사체의 어려움을 내림차순으로 하강하는 순서로 카드의 접는 (위의 첫 번째 장소에서 가장 어려운 대상이있는 카드가 덜 어려운 카드 등).
  6. 그 결과 품목의 결과 정렬은 답 그대로 기록됩니다.
  7. 그 후, 물체의 "타리 망"의 개념을 분해하고 명확히하십시오.
  8. 유사한 순위 절차를 수행하고 답안지에 결과 정렬을 씁니다.
  9. 수집 및 처리에 대한 답변이있는 시트 (아래의 연결 표의 형식 참조).

- 어디에서 : mk - 중간 점수 한 계급의 주제에;

n - 병렬 연구의 클래스 수;

또는 공식에 의해 :

- 여기서 : mk - 한 클래스의 주제에 대한 지점의 양;

n - 연구에 참여하는 학생의 수.

예를 들어, 7 학년의 유사점에서 5 개의 수업이 있으며, 130 명의 사람들이 진단에 참여했습니다. Parallels의 러시아어의 점수는 469입니다. 우리는 숫자의 공식에서 대체했습니다.

CF. 비. PR \u003d (469/130) \u003d 3.61 - 7 학년의 평균 언어의 평균 점수는 3.61이었고, 아이들은이 물체를 오히려 어렵 기 때문입니다.

같은 방식으로, 그것은 tedivation에서 각 대상의 평균 점수를 별도로 계산합니다.

그런 다음 각 주제에 대한 평균적인 허용점이 있습니다. 이를 위해 두 가지 지표가 있습니다 : 어려움의 평균 점수와 평균적 점수는 2로 나뉘어져 있습니다. 따라서 대상의 평균 수용성의 평균 포인트를 밝힙니다.

획득 된 데이터를 기반으로, 각 병렬에 대한 특정 교육 기관의 항목을 수용 할 수있는 개별 테이블이 작성됩니다.

응답 처리를위한 요약표 양식

부록 2.

일주일 동안 다양한 공부 시계
다른 수업의 학생들의 작업 능력 수준에 따라

1 - 가장 유리한 시간; 10 - 가장 불리한 것.

6-7 - 성능 수준 감소 (수업을 수행하는 소형 클럭).

8-10 - 낮은 성능 (수업을 수행하는 불리한 시간).

교사의 주간 하중 분배 표

부록 3.

수업 일정표 레이아웃 기술

레이아웃을 수행하려면 요리해야합니다.

  • 골판지의 4 개의 쓰레기 (두께 1-2 mm, 높이 - 42cm, 너비 - 22cm; 행의 높이가 0.8cm이고, 컬럼 폭은 1cm) *;
  • 컬러 용지 4 장 (더 나은 가벼운 톤) 밀도 200 g / cm 및 판지 시트의 크기와 유사한 크기;
  • 넓은 투명한 스카치;
  • 골판지를 폴더로 접착시키는 로커 (BoomVinyl) (넓은 4 ~ 5cm, 길이 49-50cm 길이);
  • pVA 접착제 (충분히 강하고 "silac")).

알고리즘 실행 레이아웃

1. "CLAMSHELL"에서 판지 시트를 접착하려면 :

2. 한 장의 컬러 용지에서 일정 준비에 필요한 모든 정보를 놓습니다 (판지 1 번 시트에 배치). 예 : 표의 표. 27.

3. 다음 두 장의 컬러 용지에서 각 시트에서 3 일 동안 그리드를 그리드, 매일 7 셀 (두 번째 및 3 차판 시트에 넣습니다).

4. 4 번째 시트에서 일시간 분열없이 단단한 메쉬를 그립니다 (셀 - 유사한 크기).

5. 완성 된 그려진 시트는 스카치로 덮여 있으므로 컷 동안 휴식이 없게됩니다.

6. 0.5-0.6cm의 세포에서 슬롯을 만듭니다.

7. 완성 된 "조개 껍질"의 판지 시트의 측면 부분에있는 종이 시트를 낀 채로. 모의가 준비되었습니다.

8. 별도로 문학 (5 번째 "A", 7 "G"등)을 사용하여 여러 가지 빛깔 된 태그를 만듭니다. 그 금액은 일주일 + 5 일 또는 6 일의 하중을 기반으로합니다. 클래스가 분할 된 수업에 추가로 하위 그룹. 태그 크기 : 너비 - 8 mm; 높이 - 15 mm.

9. 각 교사의 주간 하중을 계산하기 위해 리터너 클래스없이 모든 색상의 태그를 준비하십시오. 치수 : 폭 5mm; 높이 12-14 mm.

이 레이아웃은 모든 필수 정보가 항상 부국장의 눈 이전에 있기 때문에 작동 중에 편리합니다. 그것은 폴더로 접혀서 휴대가 쉽게 만들 수 있습니다. 동시에 태그가 슬롯에 보관됩니다.

일정에 필요한 정보

___________ * 판지 시트 치수는 개인이기 때문에 각 학교에서 다른 수의 교사 인 다른 수술 모드 (5 일 및 6 일 학년 학문). 우리는 50-55 명의 선생님이 일하는 6 일간의 학교 주와 학교를 기반으로 일정에 맞게 크기를 제공합니다.

여기서 당신이 읽은 것은 대부분 말도 안되는 것입니다. 그럼에도 불구하고, 어떤 곳에서는 나의 의견으로는 불행하게도 그러한 좌석이 그렇게 많이 일어나지 않았고, 일정 이론의 문제가 심각한 문제가있는 곳에서 그것을 가져갈 것으로 생각하지 않는다고 생각하지 않는다. 더 뭔가를 더 잘 쓰고 싶어하는 사람들은 HU 책을 읽는 것이 좋습니다. T. "네트워크의 정수 프로그래밍 및 스레드"를 통해 최적화 N.M.의 이론에서 NMIC의 강의를 읽을 가치가 있습니다. Novikova (인터넷에있는 곳, 나는 기억하지 않습니다). 이제 최적화 이론의 문제에 적극적으로 참여하므로 누군가 가이 주제에 관심이 있으므로 그는 항상 의사 소통을 기쁘게 생각합니다. 쓰다 [이메일 보호]

소개 여덟

1. 기술 영역에 대한 설명. 10.

1.1. 일정을 작성하는 작업의 표현. 10.

1.1.1. 일정을 작성하는 작업의 일반적인 공식. 10.

1.1.2. 신청서에서 훈련 세션 일정에 랩핑을 작성하는 작업의 표현. 열한

1.2. 기존의 분석. 12.

1.3. 문제의 공식화. 열 다섯

2. 수학적 모델의 개발 및 자동 스케줄링 시스템의 실제 구현. 16

2.1. 고등학교에서 일정의 수학적 모델입니다. 16

2.1.1. 지정. 16

2.1.2. 변수. 십팔

2.1.3. 제한 사항. 십구

2.1.4. 대상 기능. 21.

2.2. 작업을 해결하는 방법. 22.

2.2.1. 완전히 정수 알고리즘. 23.

2.2.2 정수 프로그래밍을위한 직접 알고리즘. 28.

2.2.3. 초기 허용 기준을 얻는 기술. 32.

2.3. 풍모 실용적인 구현 시스템 .. 36.

2.3.1. 모델을 선택하십시오. 36.

2.3.2. 입력 정보에 대한 설명. 39.

2.3.3. 정보 지원 개발. 41.

2.3.4. 일정을 끌어 올리는 작업의 수학적 모델의 제한을 형성하는 기능. 44.

2.4. 프로그램 결과 .. 45.

2.5. 얻은 결과의 분석. 49.

결론 .. 50.

문학. 51.

부록 1. 스케줄링 시스템의 소프트웨어 제품 기능. 52.

부록 2. 일정 자동 설계 작업을 해결하기위한 프로그램 모듈을 나열합니다. 61.

소개

대학의 교육 전문가의 품질과 특히 과학적 및 교육적 잠재력을 사용하는 효율성은 교육 과정의 조직 수준에 따라 어느 정도까지 의존합니다.

이 프로세스의 주요 구성 요소 중 하나는 수업 일정이 노동 리듬을 조절하고 교사의 창의적인 수익에 영향을 미치므로 제한된 노동 자원의 사용을 최적화하는 요인으로 볼 수 있습니다. 일정 개발 기술은 컴퓨터를 사용한 기계화 및 자동화뿐만 아니라 최적의 제어의 작용으로 노동 집약적 기술 프로세스, 기계화 및 자동화의 대상으로뿐만 아니라, 따라서 이것은 명백한 경제적 효과를 가진 대학에서 최적의 훈련 일정을 개발하는 문제입니다. 교육 과정의 참가자의 이익이 다양하기 때문에 일정을 작성하는 작업은 멀티 문질입니다.

일정을 작성하는 작업은 그 (프로그램)가 사용하고 끝나는 학기 초기에 수업의 기계적 분포의 기능을 구현하는 특정 프로그램으로만 고려되어서는 안됩니다. 노동 자원을보다 효율적으로 사용하는 경제적 효과는 이러한 노동 자원의 관리에 관한 진취적인 작업의 결과로 만 달성 될 수 있습니다. 여기서 일정은 그러한 관리를위한 도구 일뿐이며 가장 완벽한 사용은 프로그램이 최적 일정을 컴파일 할뿐만 아니라 일부 입력에서 변경되는 경우 최적질을 유지하는 도구를 결합 할 필요가 있습니다. 일정 시점에있는 데이터는 영구적으로 간주됩니다. 또한 시스템에서 발생하는 프로세스에 대한 통계 정보를 축적하지 않고 복잡한 시스템의 최적 관리가 불가능합니다. 따라서 최적 일정을 끌어 올리는 작업은 복잡한 학습 프로세스 관리 시스템의 일부일뿐입니다.

이 작업의 다중 기준과 개체의 복잡성 수학적 모델또한 모델을 상당한 합병증없이 스케줄 컴파일 알고리즘의 기능을 늘리기 위해 객체에 대한 심각한 수학적 연구를 결정하고 결과적으로 사용 된 메모리 양과 문제를 해결할 시간을 증가시킵니다.


1. 기술 영역에 대한 설명 1.1. 도면의 과제의 공식화

일반적인 제제의 일정 이론 이론의 임무는 솔루션에 대한 작은 진행 상황조차도 거대한 어려움을 지닌 규칙으로 만료되는 것으로 나타 났지만 매우 매력적이라고 \u200b\u200b간주됩니다. 많은 매우 자격을 갖춘 전문가들이 일정 이론의 업무에 종사하고 있기 때문에 지금까지 아무도 중요한 결과를 얻을 수 없었습니다. 규칙적으로 그러한 결과를 얻으려는 실패한 시도는 공개되지 않으며이 작업이이 작업이 생산 단순성을 추구하는 많은 연구자의 관심을 계속 끌어 들이기를 부분적으로 결정합니다.

1.1.1. 작업 편집 문제의 일반적인 공식화

가장 일반적인 공식화에서 일정을 작성하는 작업은 다음과 같습니다. 특정 리소스 또는 서비스 장치 세트를 사용하면 일부 고정 작업 시스템을 수행해야합니다. 목표는 작업 및 리소스의 속성 및 이들에 부과 된 제한이 효율성 측정 값을 최적화하거나 최적화하거나 노력하는 작업을 구성하는 효과적인 알고리즘을 찾는 것입니다. 주요 효율성 측정으로 일정 길이가 연구되고 시스템의 작업의 평균 거부 시간 시간이 있습니다. 이러한 작업의 모델은 주문에 대해 어떤 결정에 대한 결정이 이루어지는 모든 정보가 미리 알려져 있다는 사실을 결정적으로 결정합니다.

1.1.2. 신청서에서 훈련 세션 일정에 랩핑을 작성하는 작업의 표현.

전반적인 스케줄 이론은 모든 서빙 장치 (또는 프로세서)를 수행 할 수 없다고 가정합니다. 이 순간 두 가지 이상의 작업의 시간은 교육용 청중을 수락 할 작업을 배포 할 때 프로세서로서의 교육 세션 일정이 충분하지 않다는 것입니다. 따라서 한 청중의 경우에는 동시에 둘 이상의 그룹이있는 수업이있을 수 있습니다 (예 : 다중 스레드의 일반적인 강의).

따라서 일정 이론 이론을 훈련 세션을 예약 할 때 다음 가정이 이루어졌습니다.

모든 프로세서 (즉, 교육 일정 - 관객에게는 관객)의 용량 - 숫자 c ≥ 1. 프로세서의 용량이 순간에 동시에 "프로세스"할 수있는 작업 수를 정의합니다 (과 관련하여 프로세서의 부적당성은 관객이 프로세서가 아니라 선생님이 아니라 작업으로서의 작업으로 옵션을 고려하는 것이 흥미로울 것입니다. 그러나 작업으로서 하나 이상의 교육 그룹의 스트림);

분포에 대한 일련의 일련의 일련의 일련으로 훈련 그룹을 가진 교사의 훈련 활동이 연기되고 있습니다.

시스템의 시간 모델은 이산입니다. 모든 분포는 시간 간격 전체에서 주기적으로 반복되는 것으로 가정합니다.

모든 작업은 시간 간격의 샘플링 단위당 채택되는 동시에 동시에 수행됩니다.

작업은 훈련 그룹 및 교사가 받아 들여지는 객체에 속한 것입니다.

결과적으로 훈련 세션 일정을 도입하는 작업의 표현은 "주어진 교육 감사원 세트 (이 경우 교육 관객 하에서 훈련에서 광범위한 객실이 개최됩니다) 세션은 (컴퓨터 관객에서 스포츠 홀에 이르기까지)) 및 주어진 시간 간격 (즉, 본질, 수업 또는 교육 쌍)의 모든 개체 (교사 및 교육 그룹)에 대한 교육 세션 배포를 구축합니다. 선택한 최적의 기준이 가장 좋습니다. "

1.2. 기존 PA의 분석

현재, 수업 일정 디자인을위한 시장 분야는 많은 수의 소프트웨어 제품으로 표시됩니다. 표 1. 나에게 알려진 그 중 일부만 제시됩니다.

객관적인 이유로 인해 대학에서 담보를 묘사하는 시스템 (대부분의 대학을 의미 함)은 여러 가지 기본 기능을 구현해야합니다.

교사의 소망을 설명합니다.

필수 관객의 통합;

바람직한 관객의 표시;

군단 간의 전환의 회계;

분야의 모든 총성에 관한 그룹을 결합한 그룹을 결합합니다.

하위 그룹으로 나누기;

일정을 끌어 올린 후 필요한 경우 교사를 교체하거나 수업 시간을 변경하십시오.

또한 각 대학의 소프트웨어 제품의 기능 기능에 대한 특정 요구 사항도 있습니다.

기회 내 의견 러시아 소프트웨어 제품에서 가장 인기있는 것은 부록 1에 나와 있습니다.

목록의 목록에서 아마도 메서드 시민 프로그램만이 대학의 일정 준비 일정의 필수 기능을 더 적합합니다. 이 현황은 학교 교육이 오늘날 학교 교육 (교육 과정 조직의 조직)보다 더 많은 "표준화"라는 사실에 의해 쉽게 설명됩니다. 이러한 표준화는 상대적으로 낮은 가격으로 제품의 많은 수의 복사본을 판매하여 소프트웨어 판매 및 소프트웨어 판매 및 보급을위한 많은 양의 잠재적 시장을 유도합니다.

대학의 경우 스케줄링 시스템에 대한 수요는 아마도 학교보다 훨씬 훨씬 훨씬 큽니다. 그러나 사건은 각 개인 대학의 교육 과정 조직의 위대한 세부 사항에 의해 복잡합니다. 통합 소프트웨어 생성은 불가능할 것이며 타사 개발자에서 전문화 된 제품을 만드는 비용은 부당하게 큽니다. 또한 전제 조건은 선생님이나 수업 시간을 대체 할 수있는 능력을 의미하는 "확립 된"일정이 존재하는 일정입니다. 지금까지 소프트웨어 제품은이를 충분히 할 수 있습니다 ( "어떤 가능성은"정책자 "에 있지만"

1.3. 문제의 공식화.

이 작품의 목적은 대학의 일정 수학적 모델을 만드는 것이 었습니다. 이는 자동 스케줄링의 작업을 해결하기 위해 효율적으로 (주어진 시간 및 주어진 최적의 최적)을 허용합니다 (사소한 변화 입력 정보의 변화의 경우) 특정 실용적인 작업 내에 시스템을 적용합니다. 디자인 초기 설계에서 작업을 몇 가지 단순화하기 위해 몇 가지 가정이 이루어졌습니다.

일정은 하루에 2 쌍 이어도 2 쌍을 넘는 비율로 구성됩니다 (저녁 학습 양식의 경우에 상당히 적합합니다).

모든 쌍은 한 경우에 개최됩니다.

이 작업은 선형 프로그래밍 측면에서 배치됩니다.

모델의 추가 분해는 생성되지 않습니다.

모든 모델 계수 및 원하는 변수가 통합됩니다.

작업은 정수 선형 프로그래밍의 정수 선형 프로그래밍의 보편적 인 (계수의 정수 값과 독립적 인 값)에 의해 해결되어야합니다.


2. 수학적 모델의 개발 및 자동 일정 컴파일 시스템 2.1의 실제 구현. 고등학교에서 일정의 수학적 모델

우리는 선형 프로그래밍 측면에서 대학에서 수학적 모델을 구성합니다. 표기법을 소개하고 변수와 제한을 정의합니다.

2.1.1. 지정

대학은 N 훈련 그룹이 R 유량으로 결합되어 있습니다. r은 흐름 번호, r \u003d 1, ..., r, kr - 스트림 r, kr \u003d 1, ..., g r의 연구 그룹의 수이다.

흐름에 대한 그룹의 분열은 원리에 기초하여 수행됩니다.

1. 강의를위한 동일한 감사 기금의 두 그룹을 사용하면 자동으로 1 개의 스트림에서 이들의 건물을 가정합니다 (훈련 그룹의 모든 강의가 함께 유지된다고 가정합니다).

2. 대학에서의 교육 과정 단위로 그룹 (또는 그 일부)은 서로 다른 스트림을 입력 할 수 있지만 한 번만 한 번에만 입력 할 수 있습니다.

3. 스레드 수는 제한되지 않습니다.

수업은 하프 - 시장 간격으로 근무일에 개최되며, 이는 쌍이라고합니다.

다음을 나타냅니다.

t - 주의 주 수, T є T KR, 여기서

T KR - 그룹 K r에 대한 많은 영업일 수;

j - 쌍 번호, j \u003d 1, ..., j;

j - 쌍의 총 수.

각 연구 그룹 K R 흐름 r은 일주일 동안, 커리큘럼에 따르면, W KR 클래스가 수행되며, 그 중에서도 S R 강의 및 Q KR은 실용적이다. 다음을 나타냅니다.

s r은 스트림 r, s r \u003d 1, ..., s r의 강의 클래스 목록의 훈련의 수입니다.

q KR - K R, Q KR \u003d 1, ..., Q KR 그룹에 대한 실용적인 훈련 목록의 징계 수.

강의는 한 청중에서 동시에 모든 스트림 그룹에서 수행된다고 가정합니다. 그런 다음, 일주일 동안 하나 이상의 직업이 수행되는 경우,이 분야는 각 흐름이나 그룹의 커리큘럼이 제공하는 강의 또는 실용적인 수업 목록에서 언급됩니다.

교사들

P를 교사의 숫자 (이름)로 가라. P \u003d 1, ..., P. 우리는 고려 사항에 대한 가치를 소개하고 :

교사의 학습 부하는 수업 일정 에서이 수량 의이 단계에서 지정된 것으로 간주 될 수있는 결과로 클래스 일정을 끌기 전에 계획됩니다. 각 선생님 P에 대해 p, p \u003d 1, ..., p, 그 감사 부하는 또한 일주일에 n p 시간입니다.

감사 기금

각 흐름은 특정 관객에서만 수행 할 수 있습니다 (예 : 컴퓨터 과학에 대한 실제 정보는 디스플레이 등급에서만 수행 할 수 있음). 보자 :

(A 1 r) - 스트림 r의 강의에 대한 많은 관객;

(A 2 R) - 스트림 r에 대한 실제 훈련을위한 많은 관객;

1 r은 세트 (1 r)의 요소의 수의 수입니다.

2 r은 세트의 요소 수 (2 r);

1 R + A 2 r은 세트 (1 r) ∩ (2 r)의 원정을 아기 횟수입니다.

감사 기금은 일정을 시작하기 전에 결정되므로 설정을 지정할 수 있습니다.

2.1.2. 변수

일정을 만드는 작업은 아래에서 구성된 제한 사항의 구현을 고려하여 일주일의 요일과 실제 수업 (스트림)과 실제 수업 (그룹)을 결정하는 것입니다. 일부 대상 기능.

우리는 다음과 같은 원하는 부울 변수를 소개합니다.

=

저녁 학습 양식의 일정 일정이 발생한 경우 j \u003d 2. 모든 형태의 학습을위한 모델의 일반화, 669 번 참조.

2.1.3. 제한 사항

각 그룹 K r에 대해, 모든 종류의 감사 작업은 일주일 동안 수행되어야합니다.

각 강의 S R과 모든 스트림 R 및 모든 그룹 K r에 대해 각각 Q KR의 실질적인 직업은 언제든지 T :

변수가 모든 종류의 클래스를 묶는 시간과 함께 링하는 경우 교사의 이름으로 시간을 바인딩하십시오.

매일 T와 각 쌍에서 j에서 P는 한 번의 스트림 또는 한 그룹에서 한 분야에서 하나 이상의 직업을 이끌 수 있습니다.

마지막으로, 매일 각 쌍에서, 강의 및 실제 세션 수는 대학에서 사용 가능한 감사 기금을 초과해서는 안됩니다 :

또한 모든 교차 세트 (1 R) 세트 및 (A 2 R) 조건이 충족되어야합니다.

표현 된 관계는 스케줄이 준비 될 때 항상 고려되는 무조건적 인 제한에 의해 다릅니다. 그러나 먼저 특정 조건이 될 수 있으며, "맨 위"또는 "하부"주 (즉, 일주일에 한 학업 시간)에서 특정 유형의 작업을 수행 할 수 있습니다. 다른 특수 조건은 제외되지 않지만 모델을 단순화하는 것으로 간주되지 않았습니다.

2.1.4. 대상 기능

과학적, 교육적 일을 완전히 유지하기 위해 수업 준비, 대학 선생님이 있어야합니다. 자유 시간...에 이 상태는 불충분하지만 필요합니다. 분명히 자유 시간을 보내면 "찢어진"모드가 없어야합니다. 예를 들어 학생들과의 수업 간의 "창"이지만 완전히 무료 근무일에 가능합니다. 이는 해당 시대의 감사 부하를 극대화하는 것과 동일합니다 ((5)). 그러나 동시에 교사의 자유 시간의 주장은 다른 창조적 인 잠재력을 가지고 있기 때문에 불평등합니다. 따라서 교사의 해당 상태가 고려해야하는 가중 계수를 도입해야합니다 - 그 과학 학위, 직위, 점유 위치, 과학적 및 사회 활동 등을 고려해야합니다. 경우에 따라 전문가 평가에 기초하여, 다른 요인을 고려한 개별 가중 계수를 사용할 수 있습니다.

따라서 모든 교사의 감사 작업에서 무료로 가중 수의 일정을 최대화하는 형태로 품질 기준을 선택하십시오. 감사 부담의 총 압축.

교사 P의 하루에 감사 부하의 크기에 대한 표현을 고려하십시오.


여기서, m은 임의의 긍정적 인 큰 수이다. - 원하는 boulev 변수.

(10)에서,이면, then \u003d 1 및 if, then \u003d 0을 의미한다.

위에서 언급 한 의미를 고려하여 추가 제한 사항 (10)의 최적화 기준뿐만 아니라 교사의 체중 계수를 입력하는 것뿐만 아니라 원하는 최적 기준을 얻습니다.


도입 된 대상 기능은 유일한 것이 아닙니다. 다른 목표 기능의 도입은 수학적 모델의 한계와 문제를 해결하기위한 방법의 한계를 변경하지는 않지만 계산 결과에 크게 영향을 줄 수 있습니다.

2.2. 작업을 해결하는 방법

주어진 제한 시스템에서 선형 목표 기능을 최대화하는 작업은 모든 제한 계수가 문제의 소스 데이터의 인사로 인해 모든 제한 계수가 의도되기 때문에 선형 정수 프로그래밍 부울의 작업입니다. 또한 수학적 모델의 원하는 변수는 두 가지 값만 사용할 수 있습니다. 현재이 종류의 작업에 대한 몇 가지 가능한 해결책이 있습니다.

원래 모델의 LAGRangian 분해에 기초한 인덱싱 및 수정 된 마크의 메소드는 인덱싱 또는 수정 된 마크를 주문하는 방법에 따라 해결 된 수의 단일 행 작업에 대해 설명합니다. 불행히도, 각 방법의 조작 수는 다항식 평가를 허용하지 않습니다. 또한, 해결되는 문제의 차원을 증가시킴으로써 방법의 세트 (중간 값)의 치수가 급격히 증가함에 따라 우리의 경우에 받아 들일 수 없습니다. 특정 수학적 모델에 대한 분해 알고리즘의 변경이 테이블의 치수를 줄일 수 있지만, 지금까지는 그러한 알고리즘이 없습니다.

이와 관련하여, 정수 선형 프로그래밍 작업의 경우에 대한 단면 방법의 수정에 기술 된 솔루션 방법으로서 선택되었다. 일반적인 경우, Simplex 메서드의 동작 수는 다항식 추정치 (작업 클래스가 O (en) 인 경우, 우리의 작업의 경우, 평균 번호의 경우, 작동의 다항식 추정치 : O (n 3 m 1 / (n-1)) (n - 변수의 수는 제한의 수)입니다).

2.2.1. 완전 정수 알고리즘

소스 테이블이 정수 요소로 구성된 경우 알고리즘의 작동 중에 얻은 모든 테이블은 정수 요소 만 포함되기 때문에이 알고리즘이 완전히 정수입니다. 듀얼 Simplex 메서드와 마찬가지로 알고리즘은 이중 값 테이블에서 작동하기 시작합니다. i 0 (i \u003d 1, ..., n + m; i 0은 대상 함수 계수) - 음수가 아닌 정수 인 경우 태스크가 해결됩니다. 일부 행의 경우 i 0

정수 선형 프로그래밍 작업이 지정되도록하십시오.

최대화

조건에서

조건 (12)은대로 기록 될 수 있습니다


t \u003d 0 (즉, 원래 테이블의 경우)에 대해 모든 IJ는 정수 및 열 (J \u003d 1, ..., n) - 사전 판술 적으로 긍정적이라고 가정합니다. 그런 다음 계산에 대한 모든 열은 사전 결정적으로 긍정적입니다.

생성 문자열에서 추가 제한을 얻는 방법을 설정하기 전에 새로운 숫자 표현을 도입합니다. [x]가 x를 초과하지 않는 가장 큰 정수를 나타냅니다. 모든 y (양수 또는 음수)와 양의 긍정적 인 경우 :

여기서 (r y는 고정 된 요의 아닌 균형이 아닙니다). 특히, ...에 따라서, 그 다음 r \u003d 1이면 r \u003d 0이면.

부속 된 추가 불평등은 문제의 모든 솔루션에서 수행되어야한다 (12). 0의 방정식을 고려해야 할 테이블 (라인 인덱스를 낮추기)을 0으로 생각해보십시오.


여기서 x는 벡터의 해당 구성 요소와 현재의 비 구속력이있는 변수입니다. 위에 도입 된 표현을 사용하여 X, 0 및 J를 표현할 수 있습니다 (14).

(16) 및 (16) 및 (17) (15)에서 회원을 양조하고, 우리는 얻을 수 있습니다 :

변수 X 및 비 부정성 요구 사항 및 수학 식 18의 왼쪽 부분은 항상 아닌 부분이 아닙니다. 곱슬 괄호 안에서 오른쪽에있는 표현을 고려하십시오. 이 표현식의 계수는 정수이며 변수는 정수의 요구 사항에 따라 달라질 수 있습니다. 따라서 괄호 안의 모든 표현식은 정수 여야합니다. S, I.e.e.

.

정수 약한 변수 s는 음수가 아닙니다. 실제로, S가 음수 였다면, 즉. 그것은 -1, -2, ... 값을 취할 것입니다. 그런 다음 왼쪽은 왼쪽이 아닌 반면 식 (18) 음의 오른쪽을 곱하게 만듭니다.

두 가지 경우를 고려하십시오. 그리고 그리고. (15)에서 식 (19)에서 식 (19)으로 X에 대한 발현을 대체하고, 우리는 얻을 수 있습니다 :

방정식 (21)은 문제의 정수 솔루션에 대해 수행되어야합니다 (12). 방정식 (21)의 0이면 따라서, 방정식 (21)은 SIMPLEX 메소드의 마스터 문자열로 사용될 수있다. 특히 라인 (21)의 선행 요소가 -1과 같으므로 항상 꽤 큰 선택할 수 있습니다. 이는 정수 테이블을 보존합니다. 적절한 선택은 알고리즘의 융합 비율에 영향을 미칩니다. 우선, 우리는 알고리즘 자체를 설명합니다. 초기로서, xn + m + 1 \u003d m-x 1 - ... - xn 0의 한계를 첨가하여 얻을 수있는 이중 허용 솔루션을 가져갈 필요가있다. 여기서 m은 충분히 큰 일정하다, 및 추가 라인과 함께 및 조직 적으로 최소한의 열을 이끌어 낸다. 알고리즘은 다음 단계로 구성됩니다.

단계 0 단계 (13)에서 두 배 허용 매트릭스 A 0으로 시작하십시오. 요소는 정수 인 요소 (매트릭스 A0는 Neuroble 항목을 포함 할 수 있으며, 306 페이지를 참조하십시오).

1 단계 1. I 0 0 (i \u003d 1, ..., n + m)의 행 중에서 작업이 해결됩니다.)

단계 2. 선택 (선거 규칙은 추가로 설명합니다) 및 테이블 바닥에 추가 라인을 씁니다.

이 줄은 납으로 선택됩니다.

3 단계. 이중 단면 방법의 단계를 누르고 추가 행을 삭제하고 1 단계로 돌아갑니다.

알고리즘의 사지 증명, p.303-304.

선거 규칙은 다음과 같이 공식화됩니다.

v 번호가 생산 될 수있게 해주십시오.

1 단계. VJ가있는 열 사이의 조명 중 최소한의 열

2 단계. 각 A VJ - 가장 위대한 정수 (사실상 적으로 적은).

3 단계. 그리고 (라인 V - 생산). 그때

.

4 단계. VJ를 넣으십시오

위에서 설명한 선택 항목의 요소를 사용하면 -1과 같은 선행 요소를 만들 수 있지만 테이블의 이중 허가가 보존되고 동시에 0 컬럼이 가능한 한 많이 줄 수 있습니다.

2.2.2 정수 프로그래밍을위한 직접 알고리즘

정수 프로그래밍 알고리즘에 "스트레이트"라는 용어는 연속적으로 "개선 된"솔루션을 수신하여 최적의 솔루션을 유발하는 방법을 나타냅니다. 이러한 각 솔루션은 선형 제한과 정수의 상태를 만족시키는 의미에서 허용됩니다. 알고리즘의 가능한 이점 중 하나는 최적의 용액이 얻어지기 전에 계산을 방해하는 능력이며 대략적인 것으로 얻은 솔루션을 가장 잘 사용할 수 있습니다. 또한 이중 알고리즘을 사용하여 화합물의 직접 알고리즘을 사용하여 듀얼 처 할 수없는 솔루션을 직접 허용 할 수있는 솔루션을 제공하는 위상으로 진행할 수있는 다양한 복합 알고리즘을 얻을 수 있습니다.

직접 알고리즘에 대한 자연스러운 선례는이 알고리즘의 공정에서 이중 허용 정수 용액의 순서가 얻어지기 때문에 완전히 정수 알고리즘입니다. 호모 리의 완전히 정수 알고리즘이 이중 심플 렉스 방법의 수정이라는 것을 상기시켜야합니다. 이 알고리즘의 주요 차이점은 마스터 라인이 -1과 같은 선행 요소로 호모리를 자르는 데 사용되는 것입니다. 이 클립은 듀얼 SIMPLEX 메서드에서 가능한 선도적 인 행 중 하나로 정의 된 생성 문자열에서 얻습니다. 선행 회선으로서의 그러한 컷오프를 사용하면 이중 허용 및 정수 테이블을 반복 한 후에 저장합니다.

테이블의 직접적인 유효성과 인텔리전스를 유지하는 알고리즘을 얻는 알고리즘을 얻는 방식으로 단위로 수정 될 단면을 수정할 수 있다는 것이 밝혀졌습니다. 계산 절차를 설명하려면 다음과 같은 정수 프로그래밍 작업을 고려하십시오.

최대화

컬럼이 마스터 및 문자열 V로 선택된다고 가정 해보십시오. 즉, Simplex 메서드의 반복의 마스터 라인, 즉. 모든 행의 경우 i가\u003e 0입니다. Simplex 방법에서 Gauss 제거 절차를 수행하기 전에 행 V에서 얻은 테이블에 핸들을 추가하십시오.

여기서, j는 (22) (22)에서의 비 abase 변수의 복수의 인덱스, 새로운 (기본) 약한 변수 및 - 무기한 (일시적) 양성 상수.

\u003d A VS를 넣으면 클리핑 (23)은 두 가지 중요한 속성을 갖습니다. 첫째,

즉, 클립 (23)을 선행 선로 사용하면 테이블의 직접적인 유효성이 저장됩니다. 둘째, I.E. 드라이브 요소는 1 (클립이 선행 라인으로 사용되는 경우)입니다. 단일 드라이브 요소로 단순 테이블을 사용하여 단면 테이블의 정수 요소를 저장하는 것은 (기본 변수를 변경하기위한 수식을 연구함으로써) 확인하기 쉽습니다.

이러한 아이디어는 정수 프로그래밍의 직접 알고리즘의 기초로서 작용했습니다.

단계 0, I 0 0 (i1) 및 모든 요소가 0 j, ij 및 i 0이 정수 인 열 테이블에서 시작하십시오.

단계 1. 조건의 실행을 0 J 0 (J 1) 확인하십시오. 완료되면, 종료, 현재 기반 솔루션은 최적입니다. 그렇지 않은 경우 2 단계로 이동하십시오.

단계 2. 0 S 0으로 발표자 열을 선택하십시오.이 문자열은 호모리를 차단하는 데 사용됩니다.

3 단계. 생산 문자열에서 homorie 조각을 가져 와서 테이블 바닥에 추가하십시오, 즉. 문제 방정식 (23)의 한계에 추가하십시오.

단계 4. 클립 (23)을 사용하여 테이블의 변환을 마스터 문자열로 수행하십시오. (23)의 약한 변수 s k는 분리되지 않습니다. 1 단계로 돌아 가기.

알고리즘의 사지 증명, p. 346-353.

생산 현악기의 선택은 아직 중요하지 않은 작업이므로, 분명히 생산하는 것처럼 여러 줄이어야합니다. 예비 인수에서는 SimpleX 메소드의 미리보기 라인이 생산 라인으로 사용되었습니다. 이 선은 항상 클립을 제공합니다. 이는 선행 요소가 하나와 같은 선행 문자열입니다. 분명히, 테이블에 다른 라인이 있으며, 동일한 특성을 가진 절단을 얻을 수 있습니다. 수식에 의해 절단이 얻어집니다.

조건에서 결정됩니다

우리는 설정된 V (S)를 만족스러운 조건 (25) 세트로 정의합니다.

다음 두 가지 규칙은 생성 문자열을 선택하기위한 허용 규칙의 예입니다.

규칙 1.

1. 각 행의 인덱스가 적어도 한 번 입력되도록 각 행의 인덱스가 입력되도록 문자열 인덱스 목록을 만듭니다. 2로 가십시오.

2. 목록이 비어 있거나 v (s)에서 단일 인덱스가 포함되어 있지 않으면 1로 돌아가십시오. 그렇지 않으면 목록에서 첫 번째 인덱스 v v (s)를 찾습니다. 생산과 같이 문자열 v를 선택하십시오. 인덱스 v 및 모든 이전 인덱스를 표시합니다. 3로 가십시오.

3. 2. v v (s)와 같은 생산과 같이 2로 찍은 문자열 V를 순차적으로 선택합니다. v v (s)가 자마자 2로 돌아갑니다.

규칙 2.

1. v t (s)가 t-th 테이블에 해당하는 set v (s)가되도록하십시오. v t (s)가 하나 이상의 요소를 포함하는 경우 : vt (s) \u003d (v1, v 2, ..., vk +2), 그런 다음 세트 집합을 선택하는 문자열을 선택하는 것입니다. (S 1), v 2 (s 2), ..., v t (s) 나머지 부분의 앞부분 (나중에) 등장 한 다음 v t (s)까지 지속됩니다. 2로 가십시오.

2. 문자열 V를 순차적으로 선택하여 1에서 촬영 한 것입니다. 한 번, 다시 1로.

2.2.3. 기술을 초기 허용 기준으로 얻는 기술

선형 프로그래밍 작업이 직접 또는 이중 허용 가능한 경우에만 위의 방법에 대한 해결책을 수행 할 수 있습니다. 이러한 허용 가능성은 원래 작업에서 초기 허용 기지의 존재를 의미합니다. 작업이 허용되고 직접적으로 그리고 두 배가되면 얻어진 솔루션이 최적입니다. 대부분의 경우 작업이 설정된 후에는 직접 또는 이중적으로 허용되지 않는다는 것을 밝혀냅니다. 따라서 우리는 초기 허용 가능한 기초를 얻기위한 알고리즘을 제공합니다.

선형 프로그래밍 문제가 표준 형식으로 기록되도록하십시오.

최소화

조건에서

모든 B는 필요할 경우 -1에 해당하는 방정식이 아닌 음성을 곱하고 있습니다. 그런 다음 초기 변수가 초기 변수를 형성 할 수 있도록 인공 변수 (인공 변수가 아닌 인공 변수가 아닌 인공 변수가 아닌 인공 변수가 아닌 경우)에 추가 될 수 있습니다.

방정식의 불평등을 변환하는 데 사용되는 약한 변수에서 인공 변수를 얻을 수 있습니다. 실제로 선형 프로그래밍 문제의 초기 제한이 불평등의 형태로 주어지면 :

각 불평등에 약한 변수를 추가하면 다음과 같습니다.

B i 0이면 S는 초기 기본 변수로 사용할 수 있습니다.

인공 변수와 약한 변수의 차이는 다음과 같습니다. 문제의 최적의 해결책에서 원래 작업에는 그러한 변수가 없기 때문에 모든 인공 변수가 0이어야합니다. 반면에 최적의 해결책에서 약한 변수가 양수 값을 갖는 것이 가능합니다. 인공 변수가 0과 같을 수 있으므로 다음과 같이 대상 함수를 표시 할 수 있습니다.

m은 상당수의 양수입니다. 이 방법의 아이디어는 인공 변수가 고의적으로 많은 가격에 부착되어 있다는 사실에 해당합니다. 이 방법은 최적의 솔루션에서 인공 변수의 0 값을 초래합니다.

초기 허용 기지를 얻는 또 다른 방법이 있습니다. 이 방법에서는 첫 번째에서와 같이 인공 변수가 초기 기본 변수로 사용됩니다. 새로운 목표 기능이 고려됩니다. 이는 인공 변수의 양입니다. Z- 방정식을 한계 중 하나로 사용하여 최소화해야합니다. 방정식의 초기 시스템에 허용 가능한 솔루션이있는 경우 모든 인공 변수가 0이되어야합니다. 결과적으로 최소값은 0이되어야합니다. IF, 방정식의 초기 시스템에 허용 가능한 솔루션이없는 경우. 그렇다면 Z를 최소화하기 위해 대상 기능을 낮추고 최적의 기본 형식을 초기 허용 기준으로 사용하십시오. 문헌에서, 이러한 방법을 2 상 단면 방식이라고합니다. 방법의 첫 번째 단계에서는 두 번째 - Z가 최소화되고 최적의 기준이 최소화되어 최소화하여 허용 가능합니다.

다음 선형 프로그래밍 작업 예를 들어보십시오.

최소화

조건에서

모든 b는 부정적이지 않습니다.

인공 변수와 새로운 대상 기능을 입력하면 다음과 같이됩니다.

최소화

,

조건에서

B i를 포함하는 모든 방정식을 거부하면 - 폼에서 우리는 다음을 얻습니다.

-지.

시스템 (26)이 비교적 대각선 인 경우 심플 렉스 방법의 첫 번째 단계는 조건 하에서 최소화됩니다 (26). Z 사인에서 제한 사항은 겹쳐지지 않습니다. 컴퓨팅 과정에서 인공 변수가 무단포가되고 그 계수가 양수가되면 변수 자체 및 추가 계산에서 해당 벡터 열 열이 제외됩니다.

2.3. 시스템의 실질적인 구현의 특징

실제로 수학적 모델에서 정의 된 형식의 정보로 작업하는 것이별로 편리하지 않습니다. 따라서 먼저 데이터 또는 데이터 모델 구성 방법으로 정의합니다.

2.3.1. 모델을 선택하십시오

데이터 모델은 메소드에 대한 합의 및 시스템 프로세스의 자동화와 관련된 개체에 대한 공식화 된 설명의 공식화 된 설명의 일련의 계약입니다. 모델 유형 및 이들이 사용되는 데이터 구조의 유형은 모델을 지원하는 DBMS 또는 프로그래밍 언어로 사용되는 데이터의 조직 및 처리 또는 응용 프로그램 처리 프로그램을 만듭니다.

이 작업의 솔루션의 일환으로, 지원 정보의 양이 최소화되는 양의 멀티 플레이어 액세스의 근본적인 가능성이 있으며, 데이터 모델을 생성해야합니다. 높은 레벨 데이터 보호.

현재 데이터 모델의 형성에 대한 세 가지 주요 접근 방식이 있습니다 : 계층 적, 네트워크 및 관계형.

계층 적 조직 조직

계층 적 데이터베이스는 정렬 된 나무 집합으로 구성됩니다. 하나의 유형의 목재의 여러 인스턴스의 정렬 된 집합에서보다 정확하게 가질 수 있습니다. 나무의 유형은 하나의 "루트"유형의 녹음 유형과 0 이상의 유형의 지원 (각 유형의 나무 유형)으로 구성된 정렬 된 세트로 구성됩니다. 전체적으로 나무 유형은 계층 적으로 조직 된 녹화 유형 세트입니다.

조상과 자손 간의 참조의 무결성을 자동으로 유지합니다. 주요 규칙 : 부모가 없으면 자손이 없을 수 없습니다. 하나의 계층 구조에 포함되지 않은 레코드 간의 링크 간의 유지 보수와 유사한 것은 지원되지 않습니다.

네트워크 메소드

데이터 조직에 대한 네트워크 접근 방식은 계층 적 확장입니다. 계층 적 구조에서 자손 기록은 정확히 하나의 조상이 있어야합니다. 데이터의 네트워크 구조에서 자손은 임의의 수의 조상을 가질 수 있습니다.

네트워크 데이터베이스는 레코드 집합과 이러한 레코드 간의 연결 집합으로 구성되며, 데이터베이스 유형의 데이터베이스 집합에서 각 유형의 인스턴스 세트 및 주어진 각 유형의 인스턴스 세트에서 더 정확하게 말합니다. 통신 유형 집합입니다.

통신 유형은 두 가지 유형의 녹음에 대해 결정됩니다. 조상 및 자손. 통신 유형의 인스턴스는 조상 기록 유형의 한 인스턴스와 유형 녹화 유형의 주문 된 인스턴스 집합으로 구성됩니다. 이러한 유형의 통신 L에 대해 다음 두 가지 조건으로 수행해야합니다.

1. 유형 p의 각 인스턴스는 하나의 인스턴스 L에서만 조상입니다.

2. 각 인스턴스 C는 한 인스턴스 L에서보다 많은 자손이 아닙니다.

관계형 조직의 방법

계층별 및 네트워크 유형 데이터 모델의 주요 단점은 다음과 같습니다.

1. 사용하기가 너무 어렵습니다.

2. 실제로 물리적 조직에 대한 지식이 필요합니다.

3. 적용된 시스템은이 조직에 따라 다릅니다.

4. 논리는 데이터베이스에 대한 액세스의 세부 정보와 함께 과부하됩니다.

관계형 데이터 모델에 대한 가장 일반적인 해석은 거의 모든 책에서 그것을 재현하는 데있어 데이트에 속합니다 (다양한 설명). 데이트에 따르면, 관계형 모델은 관계형 접근법의 다른 측면을 설명하는 세 부분으로 구성됩니다. 구조 부품, 조작 부 및 전체 론적 부분.

모델의 구조적 부분에서 관계형 데이터베이스에서 사용되는 데이터의 유일한 구조가 정규화 된 N-AROUS 태도로 인해 고정되어 있습니다.

모델의 조작에서, 관계 데이터베이스 조작을위한 두 가지 기본 메커니즘은 관계형 대수 및 관계형 미적분을 승인합니다. 첫 번째 메커니즘은 주로 세트의 고전 이론에 기초하고 있으며, 두 번째는 1 차 술 사양의 계산의 고전적 논리 장치에 있습니다. 관계형 모델의 조작 부분의 주요 기능은 관계형 데이터베이스의 특정 언어의 관계를 보장하는 것입니다. 언어는 관계형 대수 또는 관계형 미적분보다 덜 표현력이 있거나 전력이없는 경우 관계형이라고합니다.

마지막으로 관계형 데이터 모델의 필수적인 부분에서는 관계형 DBMS에서 유지되어야하는 두 가지 기본 무결성 요구 사항이 기록됩니다. 첫 번째 요구 사항을 무결성 무결성의 요구 사항이라고합니다. 두 번째 요구 사항은 링크의 무결성 요구 사항이라고합니다.

소프트웨어 시장 (조직의 계층 적 및 네트워크 메소드)에서 사용할 수있는 시스템 및 데이터 조직의 수학적 모델 및 데이터 조직의 수학적 모델 및 데이터 조직의 수학적 모델의 예비 분석을 수행 한 후, 데이터 조직에 대한 오브젝트 명령 접근 방식을 가정합니다. 그러한 DBMS (예 : Jasmin 또는 Informix Dynamix Server)이지만, 사용 가능성의 개발 순간에는 동시에 "강력한"관계형 DBMS (예 : Oracle 8i))가 동시에 선택 사항이 아닙니다. 데이터 저장을 구성하는 관계형 방법에 유리하게 만들어졌습니다.

2.3.2. 입력 정보에 대한 설명

태스크를 해결하는 데 필요한 모든 정보는 일정 작업을 해결하기위한 방법의 반복까지 설정됩니다. 단순화하기 위해 지정된 정보가 일정이 작성된 기간 동안 일정하다고 믿어집니다.

특정 정도의 공통 과제를 잃지 않고, 제한의 형성 및 문제를 해결하는 데 필요한 특정 입력 데이터 세트를 결정할 수 있으며, 시스템의 모든 종류의 실제 구현에 대해 동일한 시간에 공통적으로 공통적으로 수행 할 수 있습니다. 특정 대학에서 실질적인 구현의 경우에 대한 수학적 모델의 상대적으로 쉽게 적응할 가능성이 있기 때문에 입력 정보의 문서의 형태가 개발되지 않았습니다. 입력 세부 사항은 표 2에 설명되어 있습니다.

표 2. 입력 세부 사항 설명

필수 이름의 이름 특징적인 요구 사항

입력 문서

유형 최대. 길이 정확성

성, 이름, 선생님의 후원자;

연락처 전화 교사;

학업 학위;

장학금;

그룹 이름;

그룹의 수치 조성;

읽을 수있는 코스의 이름;

감사 시간 수;

청중 번호;

청중에 대한 정보;

교사가 읽는 주제의 이름;

피사체가 읽는 그룹의 수;

피사체가 읽는 대상에 대한 정보.

이러한 데이터 외에도 수학적 모델에 대해서는 프로그래밍 방식으로 입력 정보를 분석 한 후에 얻을 수있는 다른 추가 데이터가 필요합니다.

2.3.3. 정보 지원 개발

우리는 정보 및 논리 데이터 모델 (ILM)의 후속 공식화 및 구조에 대한 정보의 구성 및 구조를 결정하기 위해 소스 정보를 분석 할 것입니다. 위의 수학적 모델뿐만 아니라 주제 영역의 설명으로부터 추가 정보는 문서에 포함 된 상호 관련 정보에서 세부 정보의 역할을 결정할 수있게합니다. 이러한 분석을 토대로 우리는 데이터 정규화의 권고 및 요구 사항에 따라 세부 사항의 기능적 의존성을 확립 할 것이며, 이후에는 정규화 자체를 수행합니다. 정규화의 목표는 데이터 중복성을 줄이는 것입니다. 그러나 때때로 일부 데이터 중복성은 프로그램의 효율성을 높이기위한 것입니다. 세 가지 형태의 데이터베이스 정규화의 정의를 알려주십시오.

테이블은 첫 번째입니다 정상적인 양식 (1NF) 기본 키가있는 경우 모든 속성은 간단한 데이터 유형이며 반복적 인 속성이 없습니다. 1NF를 일치 시키려면 속성 도메인은 원자 값이어야하며 속성 그룹을 반복해서는 안됩니다. 모든 반복 속성 그룹은 새 테이블로 전송되어야합니다.

테이블은 제 1 정상적인 형태이고, 각각의 중성 산속 속성은 제 1 정상적인 형태 (2NF)에 있고, 각각의 Nexian 특성은 기본 키 필드에 완전히 의존해야한다.

테이블은 2NF에있는 경우 세 번째 정상 양식 (3NF)에 있으며 전이 종속성을 포함하지 않습니다. 전이 종속성은 비 선택적 속성 간의 기능적 관계입니다. 동일한 테이블의 다른 비 선택적 속성에 기능적으로 의존하는 비 선택적 속성은 전하 의존성을 생성하며 다른 테이블로 이동해야합니다.

결과적인 기능적 종속성은 매우 사소하고 분명히 수학적 모델에서 분명히 흐르기 때문에 향후에 그들이 주어지지 않은 것을 설명합니다. 또한 추가의 프리젠 테이션에서 중간 정도의 정규화가 낮아진다. 따라서 데이터베이스의 최종 Infoological 모델 만 제시합니다 (그림 1 참조).


그림 1. InfoLogical 모델 데이터베이스 작업 구성 작업




2.3.4. 일정을 끌어 올리는 작업의 수학적 모델의 한계 형성의 특징

제한 제한 (1) - (7) 일정 도면 문제의 수학적 모델의 경우 간단한 SQL 요청을 사용하여 해결 된 충분한 사소한 작업이며 입력 정보의 사전 분석을 요구하지 않습니다. 따라서 우리는 양식의 한계에만 집중할 것입니다 (8).

시스템의 수학적 모델에서 읽을 수있는 객체는 특정 실시 대상이 아니라 몇 가지 여러 관객에게는 "묶여"입니다. 특정 잠재 고객 번호의 정렬은 작업을 해결 한 후에 수행됩니다. 양식 (8)의 한계는 관객 집합이 교차 할 때만 의미가 있습니다. 시스템의 수학적 모델에서는 모든 독특한 교차 쌍을 제한 형태로 고려해야합니다. 이러한 교차점의 수는 크게 될 수 있으며, 이는 최적화 알고리즘의 속도에 부정적인 영향을 미치는 많은 추가 제한이 발생할 수 있습니다. 그러나 추가 제한 수를 크게 줄일 수 있습니다.

교차 세트의 선형 배열의 경우를 고려하십시오 (그림 2 참조).

그림 2. 선형 교차 세트

수업을 수행하기위한 그러한 관객의 일련의 세트의 경우 총 수 형태 (8)의 한계는 n-1이고, 여기서 n은 세트 수입니다. 동일한 시간에 N 개의 교차 세트가 라인에 위치하기 때문에 전술 한 교차 세트의 배열은 선형이라고 할 수있다. 세트가 서로 십자들이 임의의 방식으로 교차 할 때 사례를 고려할 수 있습니다 (그림 3 참조).

그림 3. 임의로 교차 세트

이 경우 형태 (8)의 제한 수는 세트의 선형 배열의 경우와 비슷한 이들의 제한의 형성을 수행함으로써 감소 될 수있다. 이를 위해서는 예를 들어, A가 하나의 세트로 교차하는 세트 B와 D가 설정 한 세트의 교차 영역을 결정한다고 가정해야합니다. 생성 된 교차 구역으로

이것에 대해 자세히 알아보십시오, 210.

2.4. 프로그램의 결과

시스템의 실제 구현으로 "핵심"시스템을 작성하는 작업에 특별한주의가 납부되었습니다. 제한의 형성에 대한 문제 및 절차를 해결하는 방법. 업무는 완전한 기능을 갖춘 상용 제품을 작성하기 위해 설정되지 않았으므로 인터페이스 부분은 핵을 테스트하고 알고리즘의 적용 가능성의 한계를 결정하기 위해 작성되었으므로 최소한의 기능을 포함하며 입력 사전 정의가 포함되어 있지 않습니다. 모듈.

시스템의 핵심 및 인터페이스 부분은 Delphi 6.0에서 작성되었습니다. 제한의 형성을위한 해결 및 알고리즘을 해결하는 방법은 객체 지향 기술을 사용하여 작성되어 다양한 알고리즘의 상호 작용의 무결성을 위반하지 않고 시스템의 추가 수정으로 쉽게 캡슐화 할 수 있습니다. 문제 해결 방법의 객체의 텍스트는 부록 2에 나와 있습니다. 데이터베이스가 Oracle 8i DBMS에서 구현되었으며 요청이 PL / SQL에서 수행됩니다.

작업의 소스 데이터는 요청 양식을 사용하여 데이터베이스 테이블에 기록됩니다. 이들 형태 중 하나는도 1에 도시되어있다. 삼.

그림 3. 초기 데이터의 형태

문제를 해결 한 결과로 얻은 데이터는 문제를 해결 한 직후의 클래스 일정을 출력하는 것이므로 데이터 사후 처리 모듈이 기록되었습니다. 클래스의 최종 시간표는 테이블로 표시됩니다. 네.

무화과. 4. 수업의 예제 일정

문제 해결 알고리즘은 소스 데이터의 다양한 샘플에서 테스트되었습니다. 테스트가 Intel Pentium 350 MHz 프로세서가있는 컴퓨터에서 수행되었으며 Oracle 8i DBMS는 2 프로세서 서버에 설치되었습니다 : 2 CPU Intel Pentium II 350 MHz, RAM 384 MB; 최대 100Mbps의 링크 용량이 통신 채널로 사용되었습니다. 소스 데이터를 테스트하는 것으로, 그룹의 실제 데이터로 1999/2000의 CHSU의 저녁 학습의 교사 및 읽을 수있는 주제 학술년및 무작위로 형성된 소스 데이터 (읽을 수있는 피사체가 클래스를 수행하기위한 청중을 무작위로 결정). 평균적으로 소스 데이터의 각 테스트 크기에 대해 5 ~ 10 개의 테스트에서 2 단계로 생산되었습니다. 결과적으로 표 2에 표시된 데이터는 읽을 수있는 항목의 수와 그룹 수에서 문제를 해결할 수있는 평균 시간의 그래프가 제공됩니다.

2.5. 얻은 결과의 분석

획득 된 데이터를 분석하면 솔루션 알고리즘의 기능과 수학적 모델, 단점 및 응용 프로그램의 기능에 대한 몇 가지 결론을 내릴 수 있습니다.

첫째, 사용 된 수학적 모델은 "추가"한계가 포함되어 있으며, 이는 선형 정수 모델로 인해 스트림 (스트림이 하나의 그룹으로 구성 될 수 있음)이 다음과 같습니다. 변수의 사례의 경우, 각각은 부울 변수입니다. 둘째, 입력 데이터가 증가함에 따라 문제를 해결할 시간이 급격히 증가합니다. 이것은 어레이의 차원이 증가하고 문제를 해결할 때까지 모델의 변수 및 제한 수가 급격히 증가 할 것입니다. 셋째, 수학적으로 공식화 된 수학적으로 공식화 된 것은 대단사 간의 전환을 고려하지 않고 저녁 훈련의 학생들을위한 일정을 끌어 들이는 일에만 다루고 있습니다. 회계 추가 요구 사항 그것은 솔루션 알고리즘의 속도에 부정적인 영향을 미치는 문제의 한계 수를 증가시킵니다.

우리는 문제의 차원이 증가함에 따라 문제를 해결하는 문제의 최소 및 평균 값 사이의 최소한의 차이를 증가시키는 것에 관심을 끌게합니다. 이 차이점은 "성공적인"(가장 가깝게 최적)의 초기 허용 기본 솔루션을 어떻게 발견하는 방법에 해당합니다. 따라서 문제를 해결할 시간은 초기 기준 허용 솔루션을 찾는 "웰"를 현저히 줄일 수 있습니다. 이러한 해결책을 검색하려면 휴리스틱 및 분해 알고리즘을 사용하는 것이 가장 좋습니다.


작업 중 결론은 인클로저 간의 전환없이 저녁 훈련의 경우 대학의 일정 수학적 모델을 구축했으며, 작업의 작업을 해결하는 방법이 선택되었고 소스 데이터를 저장하는 모델이 선택되었습니다. 작업이 개발되었습니다. 소스 데이터 저장 모델, 수학적 공식화 모델 모델 및 솔루션 방법은 소프트웨어 모듈로 구현되었습니다. 알고리즘의 작동 속도는 알고리즘의 적용 가능성과 분야의 가능성과 영역이 결정된 결과로 소스 데이터의 이기종 세트에서 테스트되었습니다.

테스트 결과를 바탕으로 작동 속도에 의해 문제 해결 알고리즘은 입력 정보의 양과 초기 허용 기준 용액의 양에 따라 크게 의존하고 따라서 휴리스틱 및 붕괴가 크게 열등합니다. 그러나 IT (솔루션)의 경험적 솔루션의 경우, 최적 (또는 글로벌 최대 값을 달성)은 가능한 모든 옵션을 완벽하게 검색하는 것만으로 만 입증 될 수 있습니다 (이 경우 알고리즘의 개방 시간은 매우 큰) 따라서 휴리스틱 알고리즘의 반복은 일부 최대 (할 수 없으며, 로컬 또는 전역) 가치에 도달하면 종료됩니다. 이러한 알고리즘의 해결책은 최적의 것이지만 최적이 아닌 최적의 것일 수 있습니다. 이 경우, 전역 최대 값을 달성하기 위해서는, 기술 된 솔루션 방법의 몇몇 반복에서 최적의 반복으로 최적의 것을 얻을 수 있기 때문에, 작업에서 고려되는 솔루션 방법을 사용할 수있다.


문학

1. Lagosa B.a., Petropavlovskaya A.V. University // 경제 및 매트에서 수업 일정을 최적화하기위한 모델 및 방법의 복잡성. 행동 양식. 1993. T. 29. Vol. 네.

2. HU T. 정수 프로그래밍 및 네트워크의 스레드. M.: Mir, 1979.

3. Lebedev S.S. Benders 방법의 수정은 부분적으로 정수 선형 프로그래밍 / 경제 및 매트입니다. 행동 양식. 1994. T. 30. Vol. 2.

4. Lebedev S., Zaslavsky A.a. 정수 일반화 된 전송 문제 // 경제 및 매트를 해결하기 위해 분기 및 테두리의 특별한 방법을 사용합니다. 행동 양식. 1995. T. 31. Vol. 2.

5. Zaslavsky A.a. 변수의 전략 전략을 사용하여 일반적인 작업 정수 선형 프로그래밍 / / 경제 및 매트. 행동 양식. 1997. T. 33. 이슈 2.

6. Lebedev S.S. 인덱싱 정수 선형 프로그래밍 // 경제 및 매트를 주문하는 방법 행동 양식. 1997. T. 33. 이슈 2.

7. Lebedev S., Zaslavsky A.a. Boolean 작업 프로그래밍을위한 수정 된 방법 방법 // 경제 및 매트. 행동 양식. 1998. T. 34. Vol. 네.

8. Zaslavsky A.A. 배낭 // 경제 및 매트의 문제를 해결하기위한 결합 된 방법. 행동 양식. 1999. T. 35. Vol. 하나.

부록 1. 스케줄링 시스템의 소프트웨어 제품 기능.

에서status Author-2 +는 학년의 일정을 빠르고 편리하게 준비하고 전체 학년도에 동행합니다.
그러나2 차 2 + - 유니버설 시스템...에 어떤 교육 기관을 위해 설계된 프로그램의 여러 버전이 있습니다.

학교, Lyceums, 체육관의 실행 및 전문화 (수학, 언어, 등);

기술 학교, 대학 및 칼리지;

하나의 교육 건물을 가진 대학;

몇 가지 교육 건물이있는 대학교 (하우징 간 이동 고려).

그러나두 번째 +는 일정의 문제를 쉽게 쉽게 자동화 할 수있게 만들 수있게 만들 수있게 만들 수있게 만들 수 있습니다. 이 시스템은 편리하고 시각적 인 문서의 형태로 쉽게 멈추고, kopect 및 눌러도줍니다.

Pascript 클래스 클래스 (교육 그룹);

흑백 일정;

청중의 일정 (캐비닛);

교육 계획;

관세.

그러나두 번째 +는 비둘기 디자인과 DPU를 가지고 있습니다. 이 프로그램은 쉽게 배우기가 쉽습니다. 프로그램과 함께 작동하는 모든 가능성과 방법을 설명하는 자세한 설명서가 있습니다.
rOGRAGE는 4MB RAM (WRWERD)으로 486dx부터 시작하여 하드 디스크에서 약 1MB가 소요됩니다. 운영 체제 : MS DOS 또는 Windows 95/98.
workfire는 교육 기관의 크기와 컴퓨터의 힘에 달려 있습니다. 중형 학교 일정 (30 개 수업, 60 명, 교대, 두 교대)의 전체 계산 및 최적화는 Celeron-400 컴퓨터에서 약 15 분이 걸립니다.

rogram은 일정을 구축하고 최적화하기위한 독특하고 강력한 알고리즘을 특징으로합니다. 결과적으로 자동 일정은 실질적으로 수동 정제가 필요하지 않습니다. 즉, 매우 복잡하고 단단한 제한이 있더라도 모든 가능한 클래스가 자동으로 배치됩니다. 소스 데이터에 불용성 모순이있는 경우 특별한 분석 장치를 사용하여 감지하고 제거 할 수 있습니다.

그러나두 번째 -2 +는 다음을 허용합니다.

일정에서 "Windows"를 최적화하십시오.

수업과 교사 모두에게 필요한 요일 / 시간을 고려하십시오.

교실 수업 (관객)을 통해 클래스, 항목, 플렉시계 및 캐비닛의 용량의 특성을 고려하여 교실 수업 (청중)을 고려합니다.

풀 타임 전문가와 파트 타임 멤버 모두의 이용과 소원을 고려해야합니다.

쉽게 연결하기 쉽습니다 ( "스프링어") 여러 클래스의 연락처의 여러 수업 (훈련 그룹);

페이지 수업은 모든 수의 하위 그룹 (최대 10 개)에 대한 친구 언어, 물리적 문화, TPU, 정보학 (및 기타 주제)의 수업 수업;

특수 펌프 및 선택 과목을 입력하십시오 (주요 성직자 외에).

일정의 균일 성과 힘을 최적화하십시오.

2. 시스템 "일정"Ver 4.0 Moscow - Lintech

"스케줄"이 학교 일정의 편집에 초점을 맞추는 것이 즉시 일부 예약만으로 대학 및 대학의 사용이 가능하다는 점에 유의해야합니다. 스케줄링은 초기 데이터 입력 단계에서 결정되는 조건의 조건의 프레임 워크 내에서 이루어집니다. 가능한 조건의 전체 목록은 다음과 같습니다.

- 최대 레슨 번호는 바인딩됩니다. - I.E. 수업의 수, 최대 허용 가능;

- 아르 자형스케줄 일 사이의 교사의로드의로드 뮤티티 분포;

- 아르 자형일정 일 사이의 수업 클래스의 부하의 avtomerity;

- 선생님 일정에있는 onrop windows;

- rogram은 클래스가 임의로 단결되고 분쇄 될 수 있으며 (클래스가 스트림으로 결합되거나 더 작은 하위 그룹으로 결합 될 수 있으며,이 하위 그룹이 더 큰 그룹으로 결합되는 기준으로 작용할 수 있다는 사실을 고려합니다. 예 : 학교에서 1859 년 2 명의 고등학자가 있지만, 각 수업에는 전문화에 대한 두 개의 하위 그룹이 있습니다. 일반 교육 과목의 수업은 전체 수업에 즉시 수행되며 전문화 항목은 별도로 수행됩니다. 그러나 전문화에 대한 하위 그룹이 너무 작기 때문에 및 일부 주제에 따라 교사가 누락되어 있습니다. 서브 그룹 (예 : 인민폐)을 결합 할 수도 있습니다 (예 : 인민스에서) - 클래스의 일정의 연속성을 보장하는 복잡합니다 (일정의 연속성을 보장해야합니다. 각 하위 그룹);

- 엔.몇 가지 교대의 성능 -이 경우 개별 클래스는 첫 번째 이동 그룹보다 늦어야합니다.이 경우 교사가 모두 작동하는 선생님이있는 경우 교사의 일정에서 윈도우 컨트롤에 의해 복잡합니다. 이 교사들의 일정에서, 그들의 수업은 교차로 변화를 "당기는"해야합니다.

- 습득관객에게 교사들의 바인딩의 말씀 - 개별 교사는 모든 수업이 수행되는 "그들의"관객을 "그들의"시청자가 있습니다.

- 엔.아니스 "떠 다니는"시프트 - 첫 번째 수업의 시작 시간이 확실히 정의되지 않을 때 관련 클래스, 교사, 관객의 출시에 따라 동적으로 형성됩니다.

- ontrol 객관적인 일정 항목 (클래스, 교사, 청중) 허용 작업 범위 (임시 한계 카드에서)로. 예를 들어, 임시 제한 맵에서 교사의 경우 방법 론적 일은 일반적으로 표시되며, 때로는 일부 수업 번호가 짧게 지시되므로 이러한 위치는이 객체의 참여와 함께 수업을 설치하는 것이 불가능하다는 것을 나타냅니다.

- 엔.결합 된 아이템의 Aisia - "Inm. Informatics" "Informatics / Labor"등을 입력하십시오. - 클래스가 하위 그룹으로 나눌 때;

- 습득개별 피사체의 클래스를 수행하는 바인딩 객체의 단어는 엄격하게 정의 된 잠재 고객이나 관객 목록에서만 가능합니다 (체육, 작업 등).

- 에서일정을 남겨두면 상황을 고려하십시오. 일부 주제에서는 전체 수업이 아니라 그 하위 그룹이 아닙니다. 이 시간에 또 다른 하위 그룹이 학교에서 걷지 않았습니다. 그러한 수업은 수업 일정에서 첫 번째 또는 마지막 수업 만 엄격하게 넣을 수 있습니다.

- “parallels를 유지하려면 "일부 교사의 경우, 수업 (예 : 화학 수업)에 장기간의 교육이 필요하다는 사실을 고려해야합니다.이 경우 교사의 날 일정은 병렬 블록을 제공하려고합니다. 예, 첫 번째 등급, 7 등, 또는 일을 배포 할 때 다른 날에 대한 다른 평행선으로 클래스를 보급하십시오.

- nordod, 일정을 작성할 때 일정이 사전에 알려져있는 일부 주제에서는 이러한 클래스가 일관성없는 (고정)으로 도입되는 경우에도이를 고려해야합니다.

- onropol은 1 급 수업 당 물체의 금단 조합 - 예를 들어, 그것은 " 체육 교육"그리고"노동 "은 같은 날에 수행되었습니다.

- 클래스가 특정 순서로, 물리학 - 천문학 등, 예를 들어, 물리학 - 천문학 등의 클래스 그룹을 설치 해야하는지 확인 해야하는 경우 필요한 객체의 조건을 충족시킵니다.

- 엔.청중에게 묶여있는 아니스 수업 - 그러한 수업을위한 수업의 대부분은 전문 관객이 필요로하는 수업을 제외 하고이 관객에서 수행됩니다.

- 엔.행 ( "커플", "작가")의 개별 주제에 대한 수업 배열의 끝은 (클래스의 "작가"를 부러 뜨리지 않아도)가 없을 수도 있고, 선호 될 수 있습니다. (두 가지 클래스를 움직일 수없는 경우 "스파크"가 부러 질 수 있습니다.

어떤 피험자에서는 정렬이 단일 직업에 의해서만 허용되는 경우에 상황이 고려됩니다.

3. 시스템 "감리교"

두 가지 버전으로 생산됩니다.

버전 가상.

자동 스케줄 컴파일 모듈없이 릴리스하십시오. 기능 버전 가상 :

교사, 관객, 수업 (그룹), 분야, 인클로저 목록에서 빠른 검색;

각 발견 된 목록 항목 (대상 용량, 모든 AUD)에 대한 참조 정보를 획득하는 것은 교사, 교사,학과 목록, 징계의 시간 수, 연구 부하 교사와 mn. Dr.);

어떤 훈련 계좌에서 몇 주 사이의 시간을 재분배 할 수있는 통제 가능성. 여러 떼;

가능한 데이터 입력 오류 자동 확인 (총 시간 및 수업 유형, 하위 그룹의 교사의 할당, 그룹 및 교사의 예산, 흐름 그룹 및 Mn의 클록 불일치). 기타 );

체계화 된 스토리지 (및 빠른 검색) 추가 (일정 컴파일하기위한 필수) 추가 정보 : 교사의 사진, 교육 그룹의 큐레이터 ( 멋진 지도자들, 부모위원회, 게시물, 과학 학위 및 관객을 책임감있는 제목의 대표자의 자료, ...

요인의 조합 (모든 흐름 그룹, 교사 X의 모든 분야, 분야의 하중을 나타내는 모든 분야의 모든 분야, 분야가 컴퓨터 클래스에서 수행 될 수 있는지, 어떤 선생님의 직업 인 시리아 그룹과 Mn의 축제 날짜 목록이 있습니다. Dr.);

변경 사항의 정확성 (AUD, Pre., 그룹 / 하위 그룹, ...)의 변경 사항을 확인하여 완성 된 일정을보고 인쇄하고 편집 할 수 있습니다.

언제든지 준비된 데이터에 대한 일정 형성 모듈을 주문할 수 있습니다.

설정, 제어, 편집 등을 변경할 수있는 컴퓨터에 일정이 형성됩니다. (시간, 분야, 교사, ...)의 가능성없이 ...);

소스 데이터 (오류, 급격히 추가가 감지되는 오류)에서 미성년자 (최대 10 %)의 필요성이 변경되면 작은 수수료를위한 일정 형성 모듈을 다시 주문할 수 있습니다.

언제든지 표준의 버전으로 이동할 수 있습니다.

감리교 - 표준.

가상의 기능 외에도 다음을 포함합니다.

자동 일정 컴파일 모듈;

훈련 하중의 배포 및 제어;

훈육의 서열을 구조화 (강의 - 2 시간, 실용 - 4 시간, 실험실 ...);

모든 유형의 교육 기관에 대한 일정을 묘사하십시오 : 주간 또는 학기 (1에서 23 주까지);

스트림에서 그룹 (클래스)을 결합하여 서브 그룹으로 분할하는 회계.

특수 관객 (컴퓨터 클래스, 카테고리, 수영장, ...)의 통합;

교사와 관객 취업 회계 (공통 훈련 기지의 사용);

선체 사이의 전환 시간 회계;

주말과 휴일은 일반적이며 개별 훈련 단체 (국가, 종교, 공휴일)를 위해;

수업의 "실패한 약속"의 이유를 지정하는 이유를 지정하는 이유는 "수동"수정의 가능성으로 인해 원치 않는 요일에 임명됩니다.

일정의 여러 자동 "개선"가능성;

스케줄의 준비에서 고려 된 요인의 중요성을 변화시킬 수있는 가능성;

교사 우선 순위를 도입 할 가능성 - 개인 소원의 학위;

"감리교의 기능"에 대한 제한 사항 :

다중 일정은 하루 최대 수업 수 (7)로 제한됩니다.

클래스는 항상 첫 번째 레슨 / 쌍으로 시작합니다 (필요한 경우 첫 번째 클래스 "의 첫 번째 쌍을 임명 할 수 있습니다).

변경 시간은 고려되지 않습니다 (예 : 선체 간의 전환 가능성을 확인하십시오).

일주일의 합리적인 배포를위한 수업의 "복잡성 수준"은 고려되지 않습니다 (간접적으로 수행 할 수 있지만).

직업의 지속 시간은 일정합니다 (30 분 동안 일정을 초래할 수 없습니다. 고등학교에서는 젊은이와 45 분의 교훈).

부록 2. 자동 일정 컴파일을 해결하기 위해 소프트웨어 모듈 솔루션을 나열합니다.

유형 myArray \u003d 실제 배열 배열;

myArray_x \u003d 롱 핀란드;

절차 step_dual_simplex (var a : myArray; m, n, i1, j1 : 정수);

(이중 심플 렉스 방법의 한 단계를 생성합니다.

리드 요소 - a)

var i, j : 정수;

b, B1 : 진짜의 배열;

setlength (b, m); setLength (b1, n);

i : \u003d 0 ~ m-1 do b [i] : \u003d a;

i : \u003d 0 ~ n-1 do b1 [i] : \u003d a;

i : \u003d 0 ~ m-1 do

j : \u003d 0에서 n-1의 경우 시작

if (i \u003d i1) 및 (j \u003d j1) 다음 a : \u003d 1 / b

if (i \u003d i1) 다음 A : \u003d b1 [j] / b

if (j \u003d j1) 다음 A : \u003d - b [i] / b

else a : \u003d a-b [i] * b1 [j] / b;

i : \u003d 0 ~ n-1은 A : \u003d 0; a : \u003d - 1;

마무리 (B); 마무리 (B1);

함수 lexikogr_few (A : myArray; m, n : 정수; i, i1 : 정수) : 부울;

(첫 번째 열 조사가 두 번째 미만이라는 첫 번째 열이 적습니다)

lexikogr_few : \u003d false;

동안 (a \u003d a)와 (J.

함수 find_nu (a : myarray; m, n : 정수; i, i1 : 정수) : longint;

(i - 사전 결정 최소한의 컬럼의 인덱스)

동안 (a \u003d a)와 (J.

if (j 0) 다음 find_nu : \u003d round (int (a / a));

프로 시저 full_integer_simplex (var x : myArray_x; a : myarray; m, n : 정수);

(선형 정수 문제의 완전 정수 알고리즘

프로그램 작성,

hU T. "네트워크의 정수 프로그래밍 및 스레드", p. 300-309,

a - 매트릭스 크기 m + n + 2 * n + 1, 비유 :

최대를 찾아야합니다

z \u003d - 10x1 - 14x2 - 21x3.

2x1 + 2x2 + 7x3\u003e \u003d 14.

8x1 + 11x2 + 9x3\u003e \u003d 12.

9x1 + 6x2 + 3x3\u003e \u003d 10,

이 절차는 벡터 X를 반환하고, 첫 번째 M 구성 요소는 원하는 솔루션 인 경우,

vector \u003d 1의 마지막 구성 요소가 있으면 해결책이 존재하지 않거나 무한대 \u003d 무한대)

var i, i1 : 정수;

동안 (i \u003d 0)은 INC (i); (문자열 생산)

while (j \u003d 0) do inc (j);

i1 : \u003d 1 ~ n-1은 (a

최소 열)

(알파의 선택)

(WRITELN (I, "", J); READLN;)

i1 : \u003d 1 ~ n-1은

j1 : \u003d find_nu (a, m, n, j, i1);

if (j1\u003e 0) 및 (-a / j1\u003e alfa) 다음 alfa : \u003d - a / j1;

(WRITELN (ALFA, ", I, I," ", J); READLN;)

(컷 오프 호모리 획득)

i1 : \u003d 0 ~ n-1은 a\u003e 0이면 A : \u003d ROUND (int (int (a / agfa))

a : \u003d 둥근 (int (int (a / afa));

fRAC (A / A / AFA) 0이면 A : \u003d A-1;

step_dual_simplex (a, m, n, m-1, j);

(i\u003e \u003d m-1) 또는 (j\u003e \u003d n)까지;

i : \u003d 0 ~ m-1 DO X [i] : \u003d 둥근 (a);

j\u003e \u003d n이면 x : \u003d 1 else x : \u003d 0;

절차 step_one_simplex (var a : myarray; m, n, i : 정수);

var i1, i2 : 정수;

(직접 정수 메서드의 한 단계 (문자열 생성 - 마지막

i - 생성 컬럼)))

i1 : \u003d 0 ~ m-2는 A : \u003d a / (- a);

i2 : \u003d 0 ~ n-1 do

i1 : \u003d 0에서 m-2의 경우

i2i 그런 다음 a : \u003d a + a * a;

프로 시저 direct_integer_simplex (var x : myArray_x; a : myarray; m, n : 정수);

(정수 선형 프로그래밍 작업에 대한 직접 정수 알고리즘,

hU T. "Networks의 정수 프로그래밍 및 스레드", p. 344-370,

a - 매트릭스 크기 M + N + 3 * N + 1 비유 :

그것은 최대화해야합니다

z \u003d x1 + x2 + x3.

4x1 + 5x2 + 2x3.

그런 다음 매트릭스와 함께 보일 것입니다 :

10 1 1 1 -이 라인에서 첫 번째 숫자는 비 베이컨 변수의 거친 최대 합계입니다.

0 0 0 0 - 고모리 컷오프 문자열

알고리즘은\u003e \u003d 0에서만 작동합니다

벡터 x를 반환합니다. 단일 매트릭스의 사이트에서 원하는 솔루션을 반환합니다.

마지막 구성 요소 단위에 계산 중 오류가 발생하면)

var i, j, i1, j1 : 정수;

b, B1, B2 : 바이트의 배열;

setlength (b, m); setLength (b1, m);

i : \u003d 0 ~ m-1 DO B1 [i] : \u003d 0;

(최적 조건 검증)

j : \u003d 1 ~ N-1은

bOOL이 시작하는 동안

(생산 열 검색)

bool : \u003d false; j1 : \u003d 0;

j : \u003d 1 ~ N-1의 경우 시작

a\u003e 0이면

i : \u003d 0 ~ M-3 DO A : \u003d A / A;

bOOL이 아닌 경우 j1 : \u003d j; bool : \u003d true; lexikogr_few (a, m, n, j, j1)

(생산 문자열 검색)

j : \u003d 1에서 n-1의 경우

a\u003e 0이면

i : \u003d 0 ~ m-3 DO : \u003d a * a;