AOE 네트워크 의 핵심 경 로 를 구하 세 요.
(2) 공 사 를 완성 하 는 가장 짧 은 시간: AOE 네트워크 에서 활동 이 병행 되 기 때문에 공 사 를 완성 하 는 가장 짧 은 시간 은 시작 점 에서 완성 점 까지 의 가장 긴 길이 이다.(3) 활동 최초 시작 시간 (earlist time) (e (i)): 시작 점 에서 정점 vi 까지 의 가장 긴 경 로 를 사건 vi 의 최초 발생 시간 이 라 고 합 니 다.
이 시간 은 vi 를 끝 으로 하 는 아크 로 표 시 된 활동 의 최초 시작 시간 을 결정 합 니 다. (4) 활동 의 가장 늦 은 시작 시간 (latest time) (l (i): 전체 공사 의 완성 을 미 루 지 않 는 전제 에서 활동 이 가장 늦게 시작 되 는 시간 (5) 활동 을 완성 하 는 시간 여 유량: 이 활동 의 가장 늦 은 시작 시간 에서 가장 빠 른 시작 시간 (6) 관건 적 인 경로 (critical path) 를 줄 입 니 다.: 경로 길이 가 가장 긴 경 로 를 관건 적 인 경로 (7) 관건 적 인 활동 (critical activity) 이 라 고 한다. 관건 적 인 경로 에서 의 활동 을 관건 적 인 활동 이 라 고 한다. 관건 적 인 활동 의 특징 은 e (i) = l (i) 이 관건 적 인 경 로 를 분석 하 는 목적 은 전체 공사 에서 어떤 것 이 관건 적 인 활동 인지 판별 하여 관건 적 인 활동 의 업무 효율 을 향상 시 키 고 전체 공사 의 공사 기한 을 단축 시 키 는 것 이다.
파일 "aoe. h"
#include
#include
#include
#include
using namespace std;
const int MAX_VEX_NUM=20;
int ve[20];//    ,             
class ArcNode //   
{
public:
	int adjvex;
	int info;//  
	ArcNode *nextarc;
};
class VNode //   
{
public:
	string data;
	int indegree; //     
	ArcNode *firstarc;
};
class ALGraph 
{
private:
	VNode vertices[MAX_VEX_NUM];
	int arcnum;
	int vexnum;
public:
	void Create_ALG()
	{
		//     		
		string v1,v2;
		int i,j,w;
		ArcNode *p=NULL;
		cout<>vexnum>>arcnum;
		cout<>vertices[i].data;
			vertices[i].firstarc=NULL;
			vertices[i].indegree=0;
		}
		for(int k=0;k                      :";
			cin>>v1>>v2>>w;
			i=Locate_Vex(v1);
			j=Locate_Vex(v2);
			while(i==-1 || j==-1)
			{
				cout<>v1>>v2;
				i=Locate_Vex(v1);
				j=Locate_Vex(v2);
			}
			p=new ArcNode;
			p->adjvex=j;
			p->info=w;
			p->nextarc=vertices[i].firstarc;
			vertices[i].firstarc=p;
			vertices[j].indegree+=1; //             1
		}
		cout<  ,        dut().      :
			/ e(i)=ve(j),   l(i)=vl(k)-dut();
			/     vj       ve(j)       vl(j)      :
			/ (1): ve(0)=0(    0    )  ,            
			/        : ve(j)=Max{ve(i)+dut()}   i j          
			/ (2) vl(n-1)=ve(n-1)  ,                   :
			/ vl(i)=Min{vl(j)-dut()}   j i        
			/                            ,    ve(j-1)
			/    vj                      。 vl(j-1)    
			/ vj                      ,            
			/         ve(j-1) vl(j-1).
			/                      vl ,            
			/          ,          ,            .
			/         ,                   .
			/----------------------------------------------------------------*/
	//            
	bool Topo_Order(stack &T)
	{
		stack s;
		ArcNode *p=NULL;
		for(int i=0;inextarc)
			{
				int w=p->adjvex;
				if(vertices[w].indegree)
					vertices[w].indegree--;
				if(!vertices[w].indegree)
					s.push(w);
				if(ve[k]+p->info>ve[w]) // ve[w]       
					ve[w]=ve[k]+p->info;
			}
		}
		if(count T;
		string cp[10];
		int c=0;
		if(!Topo_Order(T))
		{
			cout<nextarc)
			{
				int k=p->adjvex;
				int dut=p->info;
				if(vl[k]-dutnextarc)
			{
				int k=p->adjvex;
				int dut=p->info;
				int ee=ve[j];
				int el=vl[k]-dut;
				char tag;
				tag=(ee==el)?'*':' ';
				cout<";
		cout<               주 함수 "main. cpp"
#include"aoe.h"
int main()
{
	ALGraph G;
	G.Create_ALG();
	G.Critical_Path();
	cout<  입 출력 결과:
        :6 8
      :v1 v2 v3 v4 v5 v6
   ->                      :v1 v2 3
   ->                      :v1 v3 2
   ->                      :v2 v5 3
   ->                      :v2 v4 2
   ->                      :v3 v4 4
   ->                      :v3 v6 3
   ->                      :v4 v6 2
   ->                      :v5 v6 1
       
tail  head  weight  earliest time  latest time  tag
 v1    v3      2        0               0        *
 v1    v2      3        0               1
 v2    v4      2        3               4
 v2    v5      3        3               4
 v3    v6      3        2               5
 v3    v4      4        2               2        *
 v4    v6      2        6               6        *
 v5    v6      1        6               7
The critical activities are ended with *
So the critical path is :v1->v3->v4->v6
Press any key to continue  입력 에 따라 생 성 된 유방 향 망 은 다음 과 같다.
관건 적 인 경로 가 하나 밖 에 없 을 때 출력 관건 적 인 경로 가 옳 습 니 다. 관건 적 인 경로 가 하 나 를 모 를 때 틀 렸 지만 모든 관건 적 인 활동, 경로 출력 알고리즘 을 찾 을 수 있 습 니 다. 나중에 출력 할 수 있 기 때문에 관건 적 인 경 로 를 보완 할 수 있 습 니 다.
역 토폴로지 질서 서열 을 구 하 는 것 은 토폴로지 질 서 를 구 할 때 창고 에 들 어 가 는 것 을 제외 하고 DFS 로 이 방향 도 를 직접 옮 겨 다 닐 수 있다. 이 노드 의 모든 인접 노드 가 출력 될 때 까지 이 서열 은 역 토폴로지 질서 서열 이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
pandas 읽기 및 쓰기 Excelpandas 읽기와 쓰기 Excel은 중복된 데이터 가공 작업을 pandas에 맡기고 수동 노동을 절약하며 사용하기도 편리하지만 출력의 형식은 그다지 아름답지 않다.본고는 read_excel()과to_excel()의...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.