Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/56: Рейтинг темы: голосов - 56, средняя оценка - 4.96
3 / 3 / 1
Регистрация: 15.09.2011
Сообщений: 104

Алгоритм Джонсона

09.06.2012, 11:19. Показов 12988. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Кто-нибудь знает где в сети найти реализацию алгоритма Джонсона? Задача состоит в том, что даны детали и время обработки, нужно написать прогу при которой станки будут простаивать наименьшее время
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.06.2012, 11:19
Ответы с готовыми решениями:

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

Алгоритм Джонсона для графов
Подскажите, пожалуйста, где можно найти реализацию этого алгоритма или помогите с реализацией. Я так понял, что сначала там идёт алгоритм...

Перевод псевдокода алгоритма Джонсона на с++
Нашел сайт, где реализован данный алгоритм на псевдокоде, помогите перевести его в программу, заранее благодарен. вот он Нарушение...

2
33 / 33 / 3
Регистрация: 24.05.2012
Сообщений: 156
09.06.2012, 11:29
http://e-maxx.ru/algo/johnson_problem_2
0
3 / 3 / 1
Регистрация: 15.09.2011
Сообщений: 104
09.06.2012, 21:02  [ТС]
Лучший ответ Сообщение было отмечено 0xDC как решение

Решение

Здравствуйте! Вобщем как видно из тему пишу алгоритм Джонсона. не знаю чачем заморочился с классами и векторами. Появились ошибки. Вобщем подскажите 1) Как мне удалить после нахождения минимального элемента этот элемент из первоначального вектора,чтобы этот элемент уже не трогать.
Ну и вообще чтобы это все заработало)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
class Element{
public:
int op_a; //время операции а
int op_b; //время операции b
int num;  //номер детали
Element(int a,int b,int number):op_a(a),op_b(b),num(number){} //конструктор с 3мя аргументами
 
Element(): //конструктор без аргументов
          op_a(0), op_b(0),
              num(0){}
 
void get() {//ввод данных пользователем
    cout<<"\n Please enter information about Elemen (op_a,op_b,number)\n";
    cin>>op_a>>op_b>>num;
    
}
    int get_time1() const{return op_a;}
    int get_num() const{return num;}
    int get_time2() const{return op_b;}
     void display(){ //Вывод на экран
    cout<<op_a<<"\n"<<op_b<<"\n"<<num<<"\n"<<"\n";
          }
};
int main()
{
Element A;
char answer;
vector <Element> Evector;
vector <Element>::iterator iter1;
vector <Element> Avector;
vector <Element> Bvector;
vector <Element>::iterator iter2;
int min,max;
int num_element=0;
 
int j=1;
 int n=0;
 vector <int> Numbers;
   vector <int> Numbers2;
 
 
//*********Ввод с клавиатуры*********//
        
   do {
      A.get();
      Evector.push_back(A);
     
      ++n;
      cout<<"Continue (y/n)?";
      cin>>answer;
      
  } 
    while (answer != 'n') ;
    
//____________________________________//
 
   iter1=Evector.begin();
  while(iter1 != Evector.end())
      (*iter1++).display();
 
 
      do{
          //нашли мин
for(iter1=Evector.begin();iter1!=Evector.end();++iter1)
          {
          min=(*(iter1)).get_time1();
              if (min>(*(++iter1)).get_time1())
              {
                 min=((*(iter1)).get_time1());
                 num_element=(*(iter1)).get_num();
              }
              
         
          }
 
Numbers.push_back(num_element); //записали номера деталей
 
//Формирование нового списка,удаление из старого мин-ых эелемнтов
  for(iter1=Evector.begin();iter1!=Evector.end();++iter1)
 {
if (num_element == (*iter1).get_num())
    {iter2=iter1;
         Avector.push_back(*iter1);
        
        
        
     }
}
 
  for(iter1=Evector.begin();iter1!=Evector.end();++iter1)
          {
          min=(*(iter1)).get_time2();
              if (max<(*(++iter1)).get_time2())
              {
                 max=((*(iter1)).get_time2());
                num_element=(*(iter1)).get_num();
              }
  }
              Numbers2.push_back(num_element); //записали номера деталей
 
              //Формирование нового списка,удаление из старого макс-ых эелемнтов
  for(iter1=Evector.begin();iter1!=Evector.end();++iter1)
 {
if (num_element == (*iter1).get_num())
    {
         Bvector.push_back(*iter1);
        
        (*iter1).op_b=0;
        
     }
}
  (*iter2).op_a=100;
 j++; 
     }  while (j<(n+1)) ;
 
  
  
  cout<<num_element<<"\n";
   iter1=Avector.begin();
  while(iter1 != Avector.end())
      (*iter1++).display();
 
//   iter1=Evector.begin();
 // while(iter1 != Evector.end())
//    (*iter1++).display();
 
 
 
 
return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.06.2012, 21:02
Помогаю со студенческими работами здесь

Нужен алгоритм поиска пути в этом лабиринте (будь то волновой алгоритм или алгоритм правой/левой руки )
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; void lab () { int s1 = 0; int s2 =...

Волновой алгоритм поиска (Алгоритм A* / Алгоритм А стар)
Хочу разработать алгоритм для решения головоломки с подвижными дисками (перестановочная головоломка). Определение. Перестано́вочные...

Алгоритм Джонсона-Троттера
Здравствуйте, помогите пожалуйста доказать, что сложность алгоритма ДЖ-ТР это O(n!) Саму работу алгоритма я понимаю, а вот с приведением...

Алгоритм Джонсона для 3 станков
Здравствуйте, у нас в списке вопросов для защиты лабораторной по алгоритму Джонсона есть вопрос, где нужно объяснить, как из формулы (1)...

Распределения Джонсона
Как правильно в маткаде реализовать роспределения Джонсона ??


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru