Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.70
0xDC
2 / 2 / 0
Регистрация: 15.09.2011
Сообщений: 104
#1

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

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

Всем привет. Кто-нибудь знает где в сети найти реализацию алгоритма Джонсона? Задача состоит в том, что даны детали и время обработки, нужно написать прогу при которой станки будут простаивать наименьшее время
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2012, 11:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Алгоритм Джонсона (C++):

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

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

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

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

Помогите алгоритм для char переделать в алгоритм для float - C++
char* DecToBin(char x, char* str) { int i; for (i = sizeof(x)*8-1; i>=0; i--) { str = (x&1 == 1) ? '1' : '0'; x = x >>...

Волновой алгоритм (алгоритм Ли) - C++
Здравствуйте! У кого-нибудь есть реализованный волновой алгоритм (алгоритм Ли) ? Дело в том, что я игрушку захотел написать (что-то...

2
qfisher
31 / 31 / 1
Регистрация: 24.05.2012
Сообщений: 156
09.06.2012, 11:29 #2
http://e-maxx.ru/algo/johnson_problem_2
0
0xDC
2 / 2 / 0
Регистрация: 15.09.2011
Сообщений: 104
09.06.2012, 21:02  [ТС] #3
Здравствуйте! Вобщем как видно из тему пишу алгоритм Джонсона. не знаю чачем заморочился с классами и векторами. Появились ошибки. Вобщем подскажите 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;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2012, 21:02
Привет! Вот еще темы с ответами:

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

Задача Джонсона для 2х станков - C#
Помогите решить проблему Код: private void timer_Tick(object sender, EventArgs e) { bool ina = false; ...

Модель 4-разрядного счетчика Джонсона на Verilog - Программируемая логика
Помогите разработать на Verilog модель 4-розр. счетчика Джонсона. Помогите пожалуйста

Задача Джонсона для 4 станков: нужны ссылки или литература - Алгоритмы
Подскажите необходимые ссылки или теорию, вообщем любую информацию для оптимизации по задаче Джонсона для 4 станков.


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru